NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Weil mir ja langweilig ist und ich nix besseres zu tun habe, ist die Freizeit der letzten Tage dafür drauf gegangen Grafana umzustellen. Mit der aktuellen meckert er nun jedes Panel schon an das unter anderem Angular nutzt.
Also alles von "Blendstat" nach "Stat" migriert. Na danke, das Blendstat war um Längen besser. Ich habe zwar schon fast alles wieder hinbekommen, zwei Sachen gehen aber nicht:- die Deckkraft der Sparklines ändern (die sind sehr durchsichtig)
- jedes benötigt eine meines Erachtens zu große Mindestgröße um überhaupt Sparklines anzuzeigen
-
@el_rob
Nein, du kannst nur einstellen, welcher Wert an den Server gesendet wird. Entweder Piezo oder Kipphebel. -
Vielen Dank für eure Antworten @SBorg und @boronsbruder, dann werde ich es mal mit dieser Kombi versuchen.
-
hello,
Edit: Kommando zurück - Fehler gefunden und behoben
ich bin am verzweifeln. Es hat ewig gedauert, bis ich das Skript zum Laufen bekommen habe. Letztlich lag es daran, dass ich den docker auf nem NAS laufen lasse und immer den Netzwerkmodus Host anstatt Bridge verwendet habe. Nachdem ich einige Daten empfangen habe, wollte ich meine Altlasten beseitigen und habe einen neuen Docker aufgesetzt. Gleichzeitig wurde mir ein Update der GW-2000A angeboten (V. 3.1.2), was ich auch gestartet hatte. Nachdem Aufsetzen des neuen Dockers mit anderer IP bekomme ich nun wieder keine Verbindung und ich weiß einfach nicht, was ich falsch mache. Liegt es an dem Update?
Protokoll zeigt:
parse error: Invalid numeric literal at line 1, column 7
(standard_in) 1: syntax error
(standard_in) 1: syntax error
/opt/wetterstation/wetterstation.sub: line 849: [: : integer expression expected -
Hey hey,
da ich mich jetzt ein wenig mehr mit dem Script beschäftigen kann. Wenn ich das richtig verstanden habe kann das Script die Daten direkt an influxdb übergeben. Kann mir wer erklären, wo der Vorteil ist, wenn man es direkt macht anstatt über den iobroker? Schneller? Weniger Rechenleistung?
Danke -
@easytj
Wenn ich das richtig im Kopf habe, dann benutzt das Skript die Verbindung zur Influx um Daten auszulesen, für Statistik bzw. z.B. Min/Max/Durchschnittswerte.
Das Logging erfolgt über den Influxfluxadapter im Iobroker. -
@SBorg
Arbeit für dichSeit kürzerem (anscheinend FW 3.0.8) sendet das GW2000 die Rohwerte der Bodenfeuchtigkeitssensoren mit (soilad):
soilmoisture1=31&soilad1=187
Und er neue Ecowitt WH51L Bodenfeuchtesensor (mit Sensor an 1m Leitung zur tieferen Messung bzw. dass der Sender zur Reichweitenvergrößerung höher angebracht werden kann ) sendet das selbe wie ein WH51 bzw DP100 (wobei ich die 1,7v aus einer 1,5v-Zelle mal anzweifeln will / die 99% weil er gerade in einem Wasserglas liegt... )
&soilmoisture2=99&soilad2=383&&soilbatt2=1.7
Kann somit in die unterstützten Sensoren eingefügt werden!
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@easytj
Wenn ich das richtig im Kopf habe, dann benutzt das Skript die Verbindung zur Influx um Daten auszulesen, für Statistik bzw. z.B. Min/Max/Durchschnittswerte.
Das Logging erfolgt über den Influxfluxadapter im Iobroker.Vollkommen richtig. Ich schreibe nichts in die Influx. Eigentlich will man seine Werte ja im ioB haben, dann kann man sie auch dort komfortabel loggen. Ich muss nicht das Rad neu erfinden
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Arbeit für dich
Bin dann mal weg...
Was soll denn "soilad=187" eigentlich sein?
Die 1.7V könnten sogar bei einer neuen Alkaline-Batterie mit etwas Messtoleranz hinkommen.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
soilad=187" eigentlich sein?
der Wert des AD-Wandlers
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Dank des GitHub-Users "dan1-de" eine Kurzanleitung zur Installation unter Docker mit passendem Composer-File
hab ich gesehen,
allerdings bin ich aktuell mit iobroker (Proxmox VM) umgezogen auf docker in Unraid.
Nun hab ich da leider eine Verständnisfrage, kann man das in den bestehenden iobroker integrieren oder braucht man da einen separaten docker für die Wetterstation?Vllt kann mir das auch jemand anders beantworten/Hilfestellung geben
Mit docker composer und co leider noch keine Erfahrung, bisher nur fertige Unraid docker installiert.
(zudem kommt auch noch dazu, das immer noch eine Uralt Version des Wetterscripts bei mir läuft, also ne Menge Arbeit )
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vllt kann mir das auch jemand anders beantworten/Hilfestellung geben
Eigentlich muss...
leider eine Verständnisfrage
... denn da sind wir schon zwei
Meine ganze Docker-Erfahrung ist ein Container auf meiner Synology in dem bei mir die InfluxDB läuft.
So wie ich das sehe brauchst du aber keinen extra Container und du kannst es im ioB-Container einfügen.das immer noch eine Uralt Version des Wetterscripts bei mir läuft
Mit ein Grund es als Skript publiziert zu haben. Da wäre dir mittlerweile bestimmt schon zigmal JS/NPM auf die Füße gefallen. Über einen RAM-Verbrauch von <15MB brauchen wir erst gar nicht reden, CPU-Last konnte ich nie feststellen, ist zu schnell fertig. Aber seit zig Versionen gibt es den "ws_updater". Den ruft man nur auf und der erledigt alles (bei installierter Rest-API sogar das anlegen von DPs im ioB).
-
@sborg ich hab vorhin mal nen docker wetterstation in unraid angelegt, die Dateien reinkopiert, die. conf soweit ich sehen konnte angepasst, auch den Port in der yaml. In der App entsprechend die IP geändert.
Im iobroker das Script zum Datenpunkte anlegen ausgeführt. Leider kommen da noch keine Daten an.Ps
Hab gesehen, der Wetterstation docker hat error im LOG, muss ich heut abend nach der Arbeit nochmal in Ruhe ran, hab das jetzt nur mal auf die schnelle probiert.Mal sehen, Vllt bekommt ichs auch direkt in den iobroker
Rest-API nutz ich noch nicht, hatte noch keinen Bedarf
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Rest-API nutz ich noch nicht, hatte noch keinen Bedarf
Ist halt der Nachfolger des Simple-API, und über den kann ich von extern keine DPs im ioB anlegen.
Port ist größer 1024? Darunter braucht man normalerweise root-Rechte, um darauf zuzugreifen. Dürfte bei Docker identisch sein.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Port ist größer 1024?
Ja, hab ja alles aus der alten conf soweit übernommen
Ich teste heut abend oder morgen weiter, jetzt ruft erstmal die Arbeit
-
@sborg also bin gerade nochmal am probieren, jedoch bekomme ich das nicht zum laufen, hab auch schon mit ecowitt probiert, allerdings denke ich passt schon von vorn herein etwas am docker nicht
update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/nc.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist update-alternatives: warning: skip creation of /usr/share/man/man1/netcat.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist
das docker compose steht noch mit einem veralteten image: ubuntu:xenial-20210611in github
hab es auch schon mit einem neueren ubuntu:jammy-20240227 probiert, führt beides zum selben ErgebnisConnection to 10.1.1.10 8087 port [tcp/*] succeeded! Preparing to unpack .../33-gpg-wks-client_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpg-wks-client (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gpg-wks-server. Preparing to unpack .../34-gpg-wks-server_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpg-wks-server (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gpgsm. Preparing to unpack .../35-gpgsm_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpgsm (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gnupg. Preparing to unpack .../36-gnupg_2.2.27-3ubuntu2.1_all.deb ... Unpacking gnupg (2.2.27-3ubuntu2.1) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../37-libonig5_6.9.7.1-2build1_amd64.deb ... Unpacking libonig5:amd64 (6.9.7.1-2build1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../38-libjq1_1.6-2.1ubuntu3_amd64.deb ... Unpacking libjq1:amd64 (1.6-2.1ubuntu3) ... Selecting previously unselected package jq. Preparing to unpack .../39-jq_1.6-2.1ubuntu3_amd64.deb ... Unpacking jq (1.6-2.1ubuntu3) ... Selecting previously unselected package libldap-common. Preparing to unpack .../40-libldap-common_2.5.17+dfsg-0ubuntu0.22.04.1_all.deb ... Unpacking libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ... Selecting previously unselected package libsasl2-modules:amd64. Preparing to unpack .../41-libsasl2-modules_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ... Unpacking libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libksba8:amd64 (1.6.0-2ubuntu0.2) ... Setting up libpsl5:amd64 (0.21.0-1.2build2) ... Setting up apt-transport-https (2.4.11) ... Setting up libbrotli1:amd64 (1.0.9-2build6) ... Setting up libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ... Setting up libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libnghttp2-14:amd64 (1.43.0-1ubuntu0.1) ... Setting up libnpth0:amd64 (1.6-3build2) ... Setting up libassuan0:amd64 (2.5.5-1build1) ... Setting up libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up gnupg-l10n (2.2.27-3ubuntu2.1) ... Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2build4) ... Setting up sudo (1.9.9-1ubuntu2.4) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libssh-4:amd64 (0.9.6-2ubuntu0.22.04.3) ... Setting up nano (6.2-1) ... update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group editor) doesn't exist update-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/pico.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group pico) doesn't exist Setting up libmd0:amd64 (1.0.4-1build1) ... Setting up openssl (3.0.2-0ubuntu1.15) ... Setting up libbsd0:amd64 (0.11.5-1) ... Setting up readline-common (8.1.2-1) ... Setting up publicsuffix (20211207.1025-1) ... Setting up libonig5:amd64 (6.9.7.1-2build1) ... Setting up pinentry-curses (1.1.1-1build2) ... Setting up libjq1:amd64 (1.6-2.1ubuntu3) ... Setting up libreadline8:amd64 (8.1.2-1) ... Setting up netcat-openbsd (1.218-4ubuntu1) ... update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/nc.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist update-alternatives: warning: skip creation of /usr/share/man/man1/netcat.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist Setting up bc (1.07.1-3build1) ... Setting up libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ... Setting up ca-certificates (20230311ubuntu0.22.04.1) ... debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.) debconf: falling back to frontend: Teletype Updating certificates in /etc/ssl/certs... 137 added, 0 removed; done. Setting up jq (1.6-2.1ubuntu3) ... Setting up gpgconf (2.2.27-3ubuntu2.1) ... Setting up libcurl4:amd64 (7.81.0-1ubuntu1.15) ... Setting up curl (7.81.0-1ubuntu1.15) ... Setting up gpg (2.2.27-3ubuntu2.1) ... Setting up gnupg-utils (2.2.27-3ubuntu2.1) ... Setting up gpg-agent (2.2.27-3ubuntu2.1) ... Setting up gpgsm (2.2.27-3ubuntu2.1) ... Setting up dirmngr (2.2.27-3ubuntu2.1) ... Setting up gpg-wks-server (2.2.27-3ubuntu2.1) ... Setting up gpg-wks-client (2.2.27-3ubuntu2.1) ... Setting up gnupg (2.2.27-3ubuntu2.1) ... Processing triggers for libc-bin (2.35-0ubuntu3.6) ... Processing triggers for ca-certificates (20230311ubuntu0.22.04.1) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. (standard_in) 1: syntax error /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error Runtime error (func=(main), adr=3): Parameter number mismatch (standard_in) 12: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 12: syntax error /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error Runtime error (func=(main), adr=3): Parameter number mismatch (standard_in) 12: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 12: syntax error /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error
EDIT
es kommen jetzt doch Daten im iobroker an, sehr merkwürdigedit
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dc: command not found
dc
fehlt in der docker compose, das hatte ich übersehen -
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dc fehlt in der docker compose, das hatte ich übersehen
Habe ich gerade so beim herunter scrollen gelesen und dachte dann noch, hm "Werte kommen".
Ja, aber längst nicht alle. "dc" ist eine Art Taschenrechner für die bash, da diese nur mit Ganzzahlen (oder integer) rechnen kann.
Hast du außer dem alten Image noch was ändern müssen? Dann passe ich später die yaml mal an. -
@sborg ne, nur ein neues image und dc hinzugefügt
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ja, aber längst nicht alle. "dc" ist eine Art Taschenrechner für die bash,
ja das hat ich schon gelesen, anfangs kamen allerdings überhaupt keine Werte, vllt hat da auch etwas anderweitig gesponnen, da zu Beginn die Station bei ecowitt auch auf offfline stand nach dem Wechsel, bzw keine Werte ankamen. (hatte ja bis dato wunderground laufen)
jetzt ist nur noch die große Hürde, Grafana/Influx, da ich da ebenfalls noch auf 1.x bin. Hab auch jetzt alles neu in userdata angelegt
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
jetzt ist nur noch die große Hürde, Grafana/Influx, da ich da ebenfalls noch auf 1.x bin.
Da hoffe ich inständig, dass hier zukünftig Updates einfacher werden. Influx 1 --> 2 ist schon "Mist". Mit der aktuellen Grafana 10.4.x ist nun alles was "Angular" betrifft ab gekündigt. Ich habe natürlich fast überall "Blendstat" als Panel im Einsatz und das nutzt Angular. Migrieren von Blendstat --> stat geht natürlich auch wieder nicht immer ganz so einfach
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.
Hallo @Boronsbruder
funktioniert bei dir das Skript noch da bei mir nur noch Fehler kommen.javascript.0 2464124 2024-04-01 13:20:34.292 error at processTicksAndRejections (node:internal/process/task_queues:95:5) javascript.0 2464124 2024-04-01 13:20:34.292 error at get_data (script.js.Wetter.Luftqualität:148:54) javascript.0 2464124 2024-04-01 13:20:34.291 error script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-04-01 12:00:00') javascript.0 2464124 2024-04-01 13:20:34.193 error at processTicksAndRejections (node:internal/process/task_queues:95:5) javascript.0 2464124 2024-04-01 13:20:34.193 error at get_data (script.js.Wetter.Luftqualität:148:54) javascript.0 2464124 2024-04-01 13:20:34.193 error script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-04-01 12:00:00')