NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hallo zusammen,
Aktuell besteht meine "Wetterstation" aus einer selbstgebastelten Arduino Lösung. Allerdings möchte ich jetzt etwas Verlässlicheres und überlege mir daher ein Ecowitt GW2000 Gateway in Kombi mit einem WS90 "Wittboy" 7-in-1 Sensor zu holen. Die Regenmessung des WS90 soll allerdings nicht so prickelnd funktionieren, weswegen in den einschlägigen Foren empfohlen wird, zusätzlich einen WH40 (= Froggit DP80) Regenmesser zu verwenden. Der WH40 wird hier allerdings nicht unter den kompatiblen Zusatzsensoren aufgeführt. Heisst das, es werden nur die Regenwerte des WS90 an iobroker übergeben oder gibt es eine Möglichkeit, auch den WH40 einzubinden? Hat jemand die Kombi WS90 und WH40 im Einsatz und kann berichten ob das funktioniert?
-
@el_rob
Es besteht die Möglichkeit im WebIf des GW2000 auszuwählen, welcher Wert an den Server gesendet werden soll. Somit sollte der WH40 auch funktioneren. -
@boronsbruder Ah, okay. Das heisst, ich kann im Gateway einstellen, dass für den Wert "Regenstatus" der Wert des WS90 gesendet wird (da dieser aufgrund seines Piezo-Sensors schneller reagiert) und für die restlichen Regen-Werte (Menge etc.) die Daten des WH40 genommen werden?
-
@el_rob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
für den Wert "Regenstatus" der Wert des WS90 gesendet
In dem Fall egal, denn der kommt vom Skript, nicht vom Sensor
Ich kann nicht direkt auf den Wert verlinken, aber in der Liste steht es drin: https://github.com/SBorg2014/WLAN-Wetterstation/wiki
Fehlende Sensoren kann ich in aller Regel implementieren, ich brauche dann nur den Datenstring. An den komme ich ohne Hardware nicht dran und Herstellersupport bekomme ich nicht.
-
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