NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
aber warst du das mit der Klemsia bei Andy?
jup, das war meinereiner. das erste mal, daß ich was gewonnen habe.
wollte die klemmsis eh schon seit einiger zeit testen. jetzt kann ich ohne kosten... -
Vielen Dank für die ausführlichen Antworten.
Das wichtigste ist erst einmal, dass es überhaupt funktioniert.
Ich würde dann die entsprechenden Daten liefern, sobald ich sie habe, damit die Sensoren eingebaut werden können.
Das Thema curl Aufruf vs. Shell-Kommando habe ich verstanden, im Endeffekt wahrscheinlich ein Performance Thema und somit begründet.
Bzgl. der MySQL Anbindung, das wäre eine nice-to-have, weil ich es eh schon nutze, aber im Notfall muss ich eben noch eine InfluxDB aufsetzen, wäre jetzt auch nicht so dramatisch -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
jup, das war meinereiner. das erste mal, daß ich was gewonnen habe.
Ich habe letzte Weihnachten auch das 1. mal gewonnen, dann aber gleich den Hauptpreis. Kpl. Arbeitskleidung von Nitras mit div. Arbeits-Hosen, Jacken, Mütze, Arbeitshandschuhe, Sicherheitsschuhe...
Ich mache aber nicht um des Gewinnenswillen mit, sondern nur wenn ich es auch wirklich brauchen kann. So freut sich bestimmt einer mehr bspw. über die Forstnerbohrer, als wenn sie bei mir im Regal verstauben...@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Bzgl. der MySQL Anbindung, das wäre eine nice-to-have, weil ich es eh schon nutze, aber im Notfall muss ich eben noch eine InfluxDB aufsetzen, wäre jetzt auch nicht so dramatisch
Da würde ich aktuell vom Notfall ausgehen, denn eine Umsetzung sehe ich eher Mittel- denn Kurzfristig, da du auch aktuell der Einzige bist. Somit steht es auf der Prioliste nicht ganz oben
Bei den Sensoren sieht das dann anders aus, da ja ev. noch weitere Nutzer nachkommen (oder sie bereits halt nicht unterstützt nutzen) und das auch in 1-2 Stunden normalerweise umgesetzt ist. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
jup, das war meinereiner. das erste mal, daß ich was gewonnen habe.
Ich habe letzte Weihnachten auch das 1. mal gewonnen, dann aber gleich den Hauptpreis. Kpl. Arbeitskleidung von Nitras mit div. Arbeits-Hosen, Jacken, Mütze, Arbeitshandschuhe, Sicherheitsschuhe...
Ich mache aber nicht um des Gewinnenswillen mit, sondern nur wenn ich es auch wirklich brauchen kann. So freut sich bestimmt einer mehr bspw. über die Forstnerbohrer, als wenn sie bei mir im Regal verstauben...arbeitskleidung ist mir schnuppe. wenn, dann mach ich nur bei dem mit, was ich brauchen kann. genau darum hab ich nur auf die klemmsis mich beworben. das andere war für mich nicht wichtig. so gesehen, sind wir ja eh am selben level. andere sollen das gewinnen, was sie brauchen zu glauben.
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Bzgl. der MySQL Anbindung, das wäre eine nice-to-have, weil ich es eh schon nutze, aber im Notfall muss ich eben noch eine InfluxDB aufsetzen, wäre jetzt auch nicht so dramatisch
Da würde ich aktuell vom Notfall ausgehen, denn eine Umsetzung sehe ich eher Mittel- denn Kurzfristig, da du auch aktuell der Einzige bist. Somit steht es auf der Prioliste nicht ganz oben
Bei den Sensoren sieht das dann anders aus, da ja ev. noch weitere Nutzer nachkommen (oder sie bereits halt nicht unterstützt nutzen) und das auch in 1-2 Stunden normalerweise umgesetzt ist.@viper4iob ich würde sagen, steig um auf influx. einfach, weils mit grafana einfacher ist und da auch mehr hilfe zu erwarten ist.
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Bzgl. der MySQL Anbindung, das wäre eine nice-to-have, weil ich es eh schon nutze, aber im Notfall muss ich eben noch eine InfluxDB aufsetzen, wäre jetzt auch nicht so dramatisch
Da würde ich aktuell vom Notfall ausgehen, denn eine Umsetzung sehe ich eher Mittel- denn Kurzfristig, da du auch aktuell der Einzige bist. Somit steht es auf der Prioliste nicht ganz oben
@da_woody said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob ich würde sagen, steig um auf influx. einfach, weils mit grafana einfacher ist und da auch mehr hilfe zu erwarten ist.
Das mit Grafana habe ich auch schon mitbekommen, das ist mit MySQL etwas umständlich.
Und ja, der generelle Support in Verbindung mit influx ist einfach besser.
Ach ja: die InfluxDB läuft seit gestern und ich lasse auch schon testweise ein paar Datenpunkte aus iobroker rein schreiben -
Direkt umsteigen braucht man nicht zwangsweise. Influx ist recht ressourcenschonend, man kann es also auch einfach parallel zu MySQL laufen lassen. MySQL habe ich zwar keine, bei mir läuft aber auch noch eine MongoDB für meinen Unifi-AP, da sich hier wegen eines einzelnen APs ein CloudKey nicht wirklich lohnt.
...OK, und nu zu spät. Warum müsst ihr immer posten während ich tippe
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Direkt umsteigen braucht man nicht zwangsweise. Influx ist recht ressourcenschonend, man kann es also auch einfach parallel zu MySQL laufen lassen. MySQL habe ich zwar keine, bei mir läuft aber auch noch eine MongoDB für meinen Unifi-AP, da sich hier wegen eines einzelnen APs ein CloudKey nicht wirklich lohnt.
...OK, und nu zu spät. Warum müsst ihr immer posten während ich tippe
Läuft jetzt beides parallel. iobroker kann ja auch mit beidem parallel umgehen, ist also kein Problem.
MySQL kann ich auch gar nicht abschalten, da hängen noch so paar Dinge wie z.B. Nextcloud, Wordpress und Roundcube dran -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
...OK, und nu zu spät. Warum müsst ihr immer posten während ich tippe
schneller tippen?
-
Jetzt hätte ich doch nochmal eine Frage.
Bei mir läuft jetzt InfluxDB 1.8.10. Ich habe gesehen, dass es aber schon Version 2.x gibt.
Und es gibt seit August auch einen iobroker Adapter 2.x, auch wenn der scheinbar nicht im stable Repository angeboten wird.
D.h. iobroker-seitig würde das wahrscheinlich funktionieren.
Da im Shell-Skript die InfluxDB HTTP API direkt angesprochen wird, wäre nun die Frage, ob das Wetterstations-Skript damit klar kommen würde?InfluxDB 2.0 ist ja jetzt eine Art Komplettpaket inkl. WebUI, ich weiß also nicht, was sich da noch so alles geändert hat.
Es scheint aber in V2 eine Kompatibilität zu V1 zu geben :
https://docs.influxdata.com/influxdb/v2.0/reference/api/influxdb-1x/Da ich nun quasi auf der grünen Wiese anfange, hätte ich da schon Interesse auf die 2.0 zu gehen, auch weil die eine Admin WebUI enthält.
Hier noch paar Infos zu V2:
https://www.influxdata.com/blog/introducing-the-next-generation-influxdb-2-0-platform/EDIT:
Die sendTo Aufrufe haben sich im iobroker Adapter für InfluxDB V2 geändert:
https://github.com/ioBroker/ioBroker.influxdb#influx-2x
Beim direkten InfluxDB HTTP API Zugriff bin ich mir nicht so sicher.
Die V2 API nutzt keine SQL basierte Sprache mehr, sondern Flux. Wenn ich aber oben den Link zur V1 Kompatibilität ansehe, dann stehen da noch SQL Befehle.
Auf jeden Fall müssten aber die sendTo Aufrufe im Statistik Skript für V2 angepasst werden, damit es funktioniert. -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
...OK, und nu zu spät. Warum müsst ihr immer posten während ich tippe
schneller tippen?
Zu meiner Zeit nix Computer(-Tastatur), nur Schreibmaschine und einen Kurs habe ich bis dato nicht besucht. Also 6-Finger-Eigensystem und meist eh immer viel Text...
@viper4iob Das Shell-Skript sollte bereits mit V2 laufen, da habe ich schon Anpassungen dafür vorgenommen. Hier ist es auch nebensächlich ob V1 oder V2.
Beim JavaScript geht das nicht ganz so einfach. Ich finde es vom Handling (auch zeitintensiv) aber nicht gerade prickelnd dann mit zwei unterschiedlichen Skriptversionen zu arbeiten. Das derzeitige KO-Kriterium für einen V2-Support ist aber, dass der ioB selbst noch nicht die V2 im stable unterstützt. Eine Beta die auf einer Beta aufbaut... Da ist Ärger und Arbeit vorprogrammiert. Wer will kann es aber gerne probieren und die Abfragen anpassen. Ich habe aktuell dafür wenig Zeit, meine eigenen privaten Baustellen haben da Vorrang (hat ja nur 5 Tage gedauert bis ich hier wieder mal Online bin...)
-
@sborg
OK, danke für die Info.
Dann bleibe ich erst mal auf der InfluxDB V1. -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
./wetterstation.sh --data
Ich habe jetzt mal die Wetterstation in Betrieb genommen.
Nochmal zur Info, ich habe die Froggit HP1000SE Pro Single Sensor Edition. D.h. dabei ist:- das Display mit dem Innensensor (Temp, Luftfeuchte, Luftdruck)
- DP300 Anemometer, UV-/Lichtsensor
- DP80 Regensensor
- DP40 Temperatur/Luftfeuchte Sensor für außen
Die Station sendet nun die Daten im Ecowitt Format.
Ich habe dann das Skript runtergeladen und mit ./wetterstation.sh --data ist erst einmal nichts passiert. Habe dann noch --debug angehängt, keine Änderung. Danach habe ich in der config mal IPP auf 127.0.0.1 gesetzt, wo die Simple RESTful API zu erreichen ist. Und dann kam etwas mehr, aber leider nicht genug
Wenn ich dann ./wetterstation.sh --data --debug ausführe, kommt zwar scheinbar das Paket an, zeigt aber keine Daten:Connection to 127.0.0.1 8087 port [tcp/*] succeeded! Warte maximal 66 Sekunden auf Datenpaket der Wetterstation... Listening on 0.0.0.0 1080 Connection received on 192.168.0.100 26435 POST / HTTP/1.1
Es wird nur der Pfad "/" angezeigt
Ich habe jetzt einfach mal nc -lv 1080 ausgeführt und bekomme diesen Content (den PASSKEY habe ich mal abgeändert):PASSKEY=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&stationtype=EasyWeatherV1.5.9&dateutc=2021-10-21+12:03:15&tempinf=71.6&humidityin=60&baromrelin=28.733&baromabsin=28.733&tempf=70.7&humidity=60&winddir=280&winddir_avg10m=299&windspeedmph=11.9&windspdmph_avg10m=8.5&windgustmph=15.9&maxdailygust=22.8&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.000&yearlyrainin=0.000&solarradiation=176.16&uv=1&wh68batt=1.88&wh25batt=0&wh26batt=0&freq=868M&model=HP1000SE-PRO_Pro_V1.7.4
Innen- und Außentemperaturensor liegen zur Zeit im gleichen Raum, also nicht wundern, warum die fast das Gleiche anzeigen.
Die Batteriewerte machen nicht so viel Sinn, wobei ich jetzt auch nicht weiß wie die Sensornamen DP zu WH zu übersetzen sind.Reichen die Infos so erst mal aus, um die Sensoren in das Skript einzubauen?
-
Moin Leute. Etwas OT, aber wo soll ich Fragen, wenn nicht hier? Seit einigen Tagen liefert meine Wetterstation WH3000SE weder die Außentemperatur noch die Außenluftfeuchtigkeit mehr. Alle andere Werte werden weiterhin übermittelt.
Hat jemand ähnliche Ausfälle? Wer kennt den internen Aufbau der Station? Ich gehe davon aus, dass das ein Sensor ist, der die beiden Werte liefern soll und der jetzt tot ist. Kann das einer bestätigen?
Ich habe noch Garantie auf das Gerät und werde morgen den Support kontaktieren. Für Hinweise wäre ich trotzdem dankbar.
PASSKEY=AAAAA&stationtype=GW1000A_V1.6.8&dateutc=2021-10-21+13:46:20&tempinf=69.1&humidityin=62&baromrelin=29.453&baromabsin=29.453&winddir=328&windspeedmph=0.67&windgustmph=1.12&maxdailygust=3.36&solarradiation=88.45&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.012&weeklyrainin=0.012&monthlyrainin=0.031&yearlyrainin=16.579&totalrainin=16.579&temp3f=66.56&humidity3=63&wh65batt=1&batt3=1&freq=868M&model=GW1000_Pro
Kein tempf und kein humidity
-
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Es wird nur der Pfad "/" angezeigt
Das ist "normal" und mir bis dato nicht aufgefallen. Not a feature, that's a bug
--data
funktioniert aktuell nur beim WU-Protokoll --> eben beiläufig gefixt; funktioniert in der nächsten Version dann auch korrekt mit dem Ecowitt-Protokoll
--data
und--debug
sind exklusiv, also entweder oder, nicht beide gleichzeitig.
./wetterstation.sh --data
(geht aktuell beim Ecowitt nicht) oder./wetterstation.sh --debug
(der sollte funktionieren)Eigentlich solltest du Daten bekommen, nur die Batteriestände fehlen.
Allerdings kann ich die Batterien nicht zuordnen. Du müsstest mal nacheinander die Batterien entfernen und dann schauen welcher whxxbatt zu welchem Sensor gehört....und noch einen Fehler gefunden: beim --debug und Ecowitt-Protokoll wird der PASSKEY nicht ausge-x-t (glatt übersehen...)
-
@a200 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wh65batt=1
Ich mag ja nicht so recht dran glauben, aber "1" ist eigentlich eine leere oder zumindest schwache Batterie.
Da aktuell (wohl) auch wenig Sonne, wird die Solarzelle/GoldCap ev. nicht mehr genügen.
Gerade Temp + Humi brauchen aber Saft, die anderen sind ja mehr oder minder nur Impulsgeber. -
@sborg Tja, das wollte ich auch nicht glauben, denn früher ist die Übertragung der Daten abgebrochen wenn die Batterien leer waren, aber die Temp. wurde bis zu Ende übermittelt. Aber jetzt! HUT AB! Du hast es wieder mal geschafft. Neue Batterien und plötzlich läuft wieder alles!
Vielen Dank!
-
@sborg
Wenn ich auf WU-Protokoll umstelle, dann kommt bei./wetterstation.sh --data
auch was an, ist aber genau das Gleiche wie ein nc -lv.
Im WU-Protokoll sind allerdings auch keine Batteriewerte drin.
Bei den Batteriewerten bin ich mir nicht so sicher, was mir die sagen sollen.
Im Ecowitt-Format waren die 3 Werte enthalten:wh68batt=1.88 wh25batt=0 wh26batt=0
3 Werte bei 4 Sensoren (Innentemp. mit 2 x 1,5V, Außentemp. mit 2 x 1,5V, Regensensor mit 1 x 1,5V, Windsensor/Lichtsensor mit 1 x 1,5V)
Bei Ecowitt habe ich auf der Webseite gesehen, dass ein WS68 dem DP300 Wind-/Lichtsensor entspricht.
wh68 könnte also dieser sein, aber was soll der Wert 1,88 bedeuten, die Spannung?
Die Batterie ist 1,5V, gestern erst eingelegt. Und dann hat das Teil noch eine Solarzelle als Stromversorgung. Ich habe auch gerade eben nochmal den Wert ausgelesen als es dunkel war, da war er sogar auf 1.90
wh25 und wh26 konnte ich erst mal nirgends finden, was das sein soll. Da es aber 2 aufeinander folgende Nummern sind, hätte ich auf die Innen- und Außentemp.-Sensoren getippt.
Da werde ich wohl mal die Batterien nacheinander heraus nehmen müssen.
Dann wäre aber auch da die Frage, was der Wert 0 bedeudet. Ist das nur ein boolean mit 0 für Batterie Ok und 1 für Batterie schwach?
Und dann fehlt ein Sensor komplett.Wenn ich es richtig verstanden habe, kann ich das Skript verwenden und müsste bis auf die Batteriestände alle Daten bekommen, auch wenn in der conf die Sensortypen nicht existieren, richtig?
UPDATE
Nach etwas googlen bin ich auf das gestoßen: https://github.com/merbanan/rtl_433/blob/master/src/devices/fineoffset.c
Fine Offset Electronics WH25 / WH32B Temperature/Humidity/Pressure sensor protocol.
wh25 ist also der Innen-Temp-Luftfeuchte-Luftdruck Sensor, der auch keine DP-Bezeichnung hat
Und dann habe ich noch folgende interessante Seite gefunden:
https://www.wxforum.net/index.php?topic=40730.0
the predecessor model of the WH32 is the WH26 which is no longer built.
Und WH32 ist wiederum der DP40, also der Temp-Luftfeuchte Sensor für außen.
Wenn man sich bei dem Forum anmeldet, kann man auch noch ein Bild sehen, wo diese ganzen Infos zusammengefasst sind.
Ich hänge es mal hier an.
Damit ist dann auch klar, dass der Regensensor DP80 bei der Batteriemeldung fehlt, warum auch immer.
-
Ich habe jetzt mal das Skript soweit in Betrieb genommen, dass ich den ersten Aufruf mit
./wetterstation.sh --debug
wie in Teil 2 der Anleitung beschrieben, ausgeführt habe.Das sieht soweit ganz gut aus, ich bekomme Werte und die werden auch in den iobroker geschrieben:
Temperatur Innen : 22.22 °C Temperatur Aussen : 10.22 °C Taupunkt : 2.35 °C Gefühlte Temperatur : 9.50 °C Luftfeuchte Innen : 57 % Luftfeuchte Aussen : 58 % Windgeschwindkeit : 6.92 km/h Windböengeschwindkeit : 9.33 km/h max. Windböe : 23.81 km/h Windrichtung : 291 ° Windrichtung : WNW Luftdruck absolut : 981.81 hPa Luftdruck relativ : 1021.84 hPa Regenrate : 0 mm/h Regenstatus : kein Regen Regen seit Regenbeginn : 0 mm Regen Stunde : 0 mm Regen Tag : .1 mm Regen Woche : 1.2 mm Regen Monat : 1.2 mm Regen Jahr : 1.2 mm Regen Gesamt : mm Sonnenstrahlung : 452.64 W/m² UV-Index : 4 Zeitstempel : 22.10.2021 12:40:50 Firmware : EasyWeatherV1.5.9 Batteriestand: : Gateway-Modell : HP1000SE-PRO_Pro_V1.7.4
Nur am Anfang kommen folgende Fehlermeldungen:
... Connection to 127.0.0.1 8087 port [tcp/*] succeeded! Listening on 0.0.0.0 1080 Connection received on 192.168.0.100 1662 /opt/wetterstation/wetterstation.sub: Zeile 559: printf: »%d Std, %d Min«: Ist kein gültiger Bezeichner /opt/wetterstation/wetterstation.sub: Zeile 559: printf: »%d Std, %d Min«: Ist kein gültiger Bezeichner /opt/wetterstation/wetterstation.sub: Zeile 559: printf: »%d Std, %d Min«: Ist kein gültiger Bezeichner /opt/wetterstation/wetterstation.sub: Zeile 559: printf: »%d Std, %d Min«: Ist kein gültiger Bezeichner [ { "id": "javascript.0.Wetterstation.Innentemperatur", "val": 22.22 }, ...
Kann ich die ignorieren?
Da gehts scheinbar um das Sonnenschein-Textformat.UPDATE
Ich hatte jetzt das Skript etwa 2 Stunden als Dienst laufen und habe jetzt zusätzlich den Zugriff auf die InfluxDB-API in der conf hinterlegt.
Nach einem erneuten./wetterstation.sh --debug
kamen die Fehlermeldungen jetzt nicht mehr.
Wahrscheinlich hat nur irgendein Wert gefehlt, wodurch printf in einen Fehler läuft. -
@a200 Zumindest kann man sich also wohl auf die Batterie-Anzeige verlassen
-
@viper4iob Bei den Batteriewerten gibt es keine einheitliche Linie. Bisher gibt es drei Möglichkeiten:
- digital [quasi true/false] : 0 und 1, wobei 0 = Ok und 1 = schwach ist (bei "leer" kommen auch keine Daten mehr )
- Zählerbereich "0-5": könnte in 20% Schritten sein
- Messwert: hier wird ein ungefährer Wert der Batteriespannung angezeigt
Die Batteriemessung ist mehr eine Schätzung. Zwar ist es nicht sonderlich schwer eine Spannung zu messen, man braucht aber eine Referenzspannung dazu. Beim Multimeter übernimmt dies die Batterie des Messgerätes. Die 1.88/1.9 (Volt) sind dann auch erklärbar, da sie wohl die Gesamtspannung messen, also was das Gerät an kompletter Spannung hat inkl. des GoldCaps und der Batterie. Obwohl es dann im dunklen mehr war, liegt es einfach daran, dass er bei Tageslicht bereits geladen wurde.
So ergäbe sich dann aktuell:
wh68batt = DP300 / WS68, Solar unterstütztes Anemometer mit UV-Licht-Sensor wh25batt = WH25, Innen-Temp-Luftfeuchte-Luftdruck Sensor wh26batt = DP40 / WH32, Temp-Luftfeuchte Sensor Außen
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wenn ich es richtig verstanden habe, kann ich das Skript verwenden und müsste bis auf die Batteriestände alle Daten bekommen, auch wenn in der conf die Sensortypen nicht existieren, richtig?
Jepp, du kannst damit produktiv arbeiten, nur die drei Batterielevel fehlen dann aktuell.
Wenn der Regensensor allerdings auch nicht im Datenstring beim Ecowitt-Protokoll auftaucht, wird er, warum dann auch immer, vom Sensor nicht übertragen.Die Umsetzung der Batterielevel wird aber nicht so ganz easy wie üblich. Da muss ich mir erst was Neues dazu einfallen lassen. Bisher hatte jeder Sensor immer zusätzliche Werte geliefert, nicht quasi bestehende und einen Batterielevel.
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich hatte jetzt das Skript etwa 2 Stunden als Dienst laufen und habe jetzt zusätzlich den Zugriff auf die InfluxDB-API in der conf hinterlegt.
Nach einem erneuten ./wetterstation.sh --debug kamen die Fehlermeldungen jetzt nicht mehr.
Wahrscheinlich hat nur irgendein Wert gefehlt, wodurch printf in einen Fehler läuft.Sollte eigentlich nicht, da die Pakete aber extrem in ihrer Datenmenge schwanken, kann es genau eines gewesen sein was mal so gar nicht völlig valide war: