NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@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 ;)
--datafunktioniert aktuell nur beim WU-Protokoll --> eben beilÀufig gefixt; funktioniert in der nÀchsten Version dann auch korrekt mit dem Ecowitt-Protokoll
--dataund--debugsind 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...)
@sborg
Wenn ich auf WU-Protokoll umstelle, dann kommt bei./wetterstation.sh --dataauch 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=03 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.
-
@sborg
Wenn ich auf WU-Protokoll umstelle, dann kommt bei./wetterstation.sh --dataauch 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=03 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 --debugwie 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.4Nur 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 --debugkamen die Fehlermeldungen jetzt nicht mehr.
Wahrscheinlich hat nur irgendein Wert gefehlt, wodurch printf in einen Fehler lÀuft. -
@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!
@a200 Zumindest kann man sich also wohl auf die Batterie-Anzeige verlassen :)
-
@sborg
Wenn ich auf WU-Protokoll umstelle, dann kommt bei./wetterstation.sh --dataauch 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=03 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.
@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:

-
@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:

@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
... 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.
In der Theorie wĂ€re das plausibel, allerdings habe ich den Wert gerade nochmal geprĂŒft. Die Sonne ist zwar schon vor einer Stunde aufgegangen, aber es ist komplett bedeckter Himmel und bei der Sonnenstrahlung waren wir jetzt gerade bei 20 W/mÂČ.
Und der Batteriewert istwh68batt=1.90
Ich kann mir jetzt nicht vorstellen, dass der Kondensator da schon wieder voll geladen ist.
Ich weiĂ aber auch nicht wie lange die Ladung reichen wĂŒrde, da gestern den ganzen Tag die Sonne gescheint hat.
Ich werde das nochmal prĂŒfen, sobald mal lĂ€nger schlechtes Wetter ist. -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
... 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.
In der Theorie wĂ€re das plausibel, allerdings habe ich den Wert gerade nochmal geprĂŒft. Die Sonne ist zwar schon vor einer Stunde aufgegangen, aber es ist komplett bedeckter Himmel und bei der Sonnenstrahlung waren wir jetzt gerade bei 20 W/mÂČ.
Und der Batteriewert istwh68batt=1.90
Ich kann mir jetzt nicht vorstellen, dass der Kondensator da schon wieder voll geladen ist.
Ich weiĂ aber auch nicht wie lange die Ladung reichen wĂŒrde, da gestern den ganzen Tag die Sonne gescheint hat.
Ich werde das nochmal prĂŒfen, sobald mal lĂ€nger schlechtes Wetter ist.@viper4iob UnterschĂ€tze da mal nicht die kleine Solarzelle/den Cap ;)
Mein Batteriesatz wird demnÀchst 2 Jahre alt. Ist halt alle ~30 Sekunden "nur" Funk. -
Da keine offensichtlichen Fehler zu verzeichnen sind:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.9.0
- + Min-/Max-Aussentemperatur des heutigen Tages
- ~ Ănderung bei DatenĂŒbertragung per Simple-API wg. InfluxDB 2.x
- + Meteorologischer Sommer Durchschnittstemperatur und Regenmenge
- + neuer Shell-Parameter --metsommer (zur manuellen Berechnung der Werte des meteorologischen Sommers)
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh und wetterstation.sub ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgefĂŒhrt werden (neue Datenpunkte "Info.Regenmenge_Met_Sommer" und "Info.Temp_Met_Sommer_avg")
- nun mittels
sudo systemctl restart wetterstationden Service neu starten - (ws_updater.sh ist diesmal nicht nötig, da es keine Ănderungen in der wetterstation.conf gibt)
Wer bereits die Beta-Version der V2.9.0 nutzt sollte ggf. trotzdem updaten (hier genĂŒgt der Tausch der "sub" und den Service neu zu starten). Das Beta-Release ist mit dieser Release-Version nicht identisch. Beim Beta-Release fehlt die "Nullung" der beiden Werte des meteorologischen Sommers zum 01.01.
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.10.0
(Beta-Releases lassen sich nicht! ĂŒber den ws_updater installieren, nur die *.conf lĂ€sst sich damit patchen [s.u.])
- ~ Bugfix Option '--data' bei Ecowitt-Protokoll
- ~ Passkey bei Nutzung des Ecowitt-Protokolls maskieren
- + logging des Datenstrings der Wetterstation in eine Datei
- + UnterstĂŒtzung fĂŒr DP40/WH32 (bzw. WH26) Sensor
- + UnterstĂŒtzung fĂŒr DP300/WS68 Sensor
- + UnterstĂŒtzung fĂŒr WH31 (bzw. WH25) Sensor
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.sh ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgefĂŒhrt werden (neue Datenpunkte der BatteriestĂ€nde); nicht zwingend nötig wenn man keine der neuen Sensoren einsetzt
./ws_updater.sh --patchim Installationsverzeichnis ausfĂŒhren- nun mittels
sudo systemctl restart wetterstationden Service neu starten
Hinweis:
In der *.conf kann (temporĂ€r) nun das Logging der Datenstrings (raw) der Wetterstation aktiviert werden. Dies legt im Installationsverzeichnis dann eine Datei im Format YYYYMMTT_station.log an und schreibt den Raw-String der Station fortlaufend durch eine Leerzeile separiert.Da Frogitt offenbar bei neueren Sensoren sich von seiner DPxxx-Bezeichnung verabschiedet und zur Ecowitt WHxxx-Bezeichnung umschwenkt, ist der Interne Zusatzsensor sowohl als DP50/WH31, sowie als reiner WH31 zu finden. Eigentlich sollten hier bis zu 8 Sensoren möglich sein, der passende Datenstring liefert dafĂŒr aber aktuell keinen Hinweis ( typisch xyz[1-8]; die Nummerierung fĂŒr die Sensoren fehlt aber aktuell?!? ). Hier hilft nur probieren welcher den beiden Typen korrekte Werte liefert ;)
-
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.10.0
(Beta-Releases lassen sich nicht! ĂŒber den ws_updater installieren, nur die *.conf lĂ€sst sich damit patchen [s.u.])
- ~ Bugfix Option '--data' bei Ecowitt-Protokoll
- ~ Passkey bei Nutzung des Ecowitt-Protokolls maskieren
- + logging des Datenstrings der Wetterstation in eine Datei
- + UnterstĂŒtzung fĂŒr DP40/WH32 (bzw. WH26) Sensor
- + UnterstĂŒtzung fĂŒr DP300/WS68 Sensor
- + UnterstĂŒtzung fĂŒr WH31 (bzw. WH25) Sensor
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.sh ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgefĂŒhrt werden (neue Datenpunkte der BatteriestĂ€nde); nicht zwingend nötig wenn man keine der neuen Sensoren einsetzt
./ws_updater.sh --patchim Installationsverzeichnis ausfĂŒhren- nun mittels
sudo systemctl restart wetterstationden Service neu starten
Hinweis:
In der *.conf kann (temporĂ€r) nun das Logging der Datenstrings (raw) der Wetterstation aktiviert werden. Dies legt im Installationsverzeichnis dann eine Datei im Format YYYYMMTT_station.log an und schreibt den Raw-String der Station fortlaufend durch eine Leerzeile separiert.Da Frogitt offenbar bei neueren Sensoren sich von seiner DPxxx-Bezeichnung verabschiedet und zur Ecowitt WHxxx-Bezeichnung umschwenkt, ist der Interne Zusatzsensor sowohl als DP50/WH31, sowie als reiner WH31 zu finden. Eigentlich sollten hier bis zu 8 Sensoren möglich sein, der passende Datenstring liefert dafĂŒr aber aktuell keinen Hinweis ( typisch xyz[1-8]; die Nummerierung fĂŒr die Sensoren fehlt aber aktuell?!? ). Hier hilft nur probieren welcher den beiden Typen korrekte Werte liefert ;)
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.sh ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgefĂŒhrt werden (neue Datenpunkte der BatteriestĂ€nde); nicht zwingend nötig wenn man keine der neuen Sensoren einsetzt
./ws_updater.sh --patchim Installationsverzeichnis ausfĂŒhren- nun mittels
sudo systemctl restart wetterstationden Service neu starten
Erst einmal danke fĂŒr das Update.
Aber irgendetwas mache ich falsch. Mein erster Anlauf des Updates ging schief. Ich habe dann meine Sicherung zurĂŒck gespielt und den ganzen Ordner erst mal kopiert, um dort weiter zu testen. Allerdings immer mit dem gleichen Ergebnis.Ich habe die 3 Dateien wie beschrieben ausgetauscht und dann
./ws_updater.sh --patchausgefĂŒhrt.
Den bestÀtige ich mit "J", das Skript lÀd die patch-Datei, legt eine Sicherung der conf an, fragt dann komischerweise nochmal, wo ich aber nichts mehr eingeben kann und dann kommt Abbruch. Die Datei hat weiterhin den alten Stand. Habe es auch als root probiert, gleiches Ergebnis.
Irgendeine Idee?
Ich könnte jetzt natĂŒrlich die conf manuell anpassen, die Infos dazu kann ich aus der patch-Datei ziehen, aber das wĂ€re ja nicht im Sinne des Erfinders ;-)
Das Ganze lĂ€uft ĂŒbrigens unter Ubuntu 20.04 LTS.PS: Bitte nicht ĂŒber die 2 log Dateien wundern, die man da im Screenshot sieht. Ich lasse das Log ĂŒber den systemd Service da hin schreiben, damit ich im Syslog nicht alle 30 sek die Meldungen "Connection received" und "Listening" im syslog vom netcat error output bekomme. Das wĂ€re eventuell nochmal ein feature request, den Error Output vom netcat default wegzuschmeiĂen (
nc -nlvw 1 -p ${WS_PORT} 2>/dev/null) und nur in den syslog schreiben zu lassen, wenn die neue logging Option aktiviert ist oder auch nochmal eine extra Option oder generell in ein anderes Logfile schreiben lassen wie es beispielsweise der Apache oder Samba machen (da mĂŒsste man aber auch wieder das logrotate konfigurieren und dann ist man wieder beim Problem, dass das versch. Linux-Distributionen evtl. unterschiedlich handhaben) .UPDATE zum Patcher
Ich glaube ich habe einen Fehler im ws_updater.sh gefunden, das Skript legt die Datei "patch" an und versucht dann "patch.dat" anzuwenden:#Patch Version V2.8.0 auf V2.10.0 PATCH2100() { backup echo -e "\n Patche wetterstation.conf auf V2.10.0 ..." patch_2100 && patch ./wetterstation.conf < patch.dat rm patch.dat echo -e " Fertig...\n" echo -e " ${GE}Eventuelle Zusatzsensoren DP300/WS68, DP40/WH32 oder WH25/WH31 mĂŒssen eingetragen werden!\n" } -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.sh ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgefĂŒhrt werden (neue Datenpunkte der BatteriestĂ€nde); nicht zwingend nötig wenn man keine der neuen Sensoren einsetzt
./ws_updater.sh --patchim Installationsverzeichnis ausfĂŒhren- nun mittels
sudo systemctl restart wetterstationden Service neu starten
Erst einmal danke fĂŒr das Update.
Aber irgendetwas mache ich falsch. Mein erster Anlauf des Updates ging schief. Ich habe dann meine Sicherung zurĂŒck gespielt und den ganzen Ordner erst mal kopiert, um dort weiter zu testen. Allerdings immer mit dem gleichen Ergebnis.Ich habe die 3 Dateien wie beschrieben ausgetauscht und dann
./ws_updater.sh --patchausgefĂŒhrt.
Den bestÀtige ich mit "J", das Skript lÀd die patch-Datei, legt eine Sicherung der conf an, fragt dann komischerweise nochmal, wo ich aber nichts mehr eingeben kann und dann kommt Abbruch. Die Datei hat weiterhin den alten Stand. Habe es auch als root probiert, gleiches Ergebnis.
Irgendeine Idee?
Ich könnte jetzt natĂŒrlich die conf manuell anpassen, die Infos dazu kann ich aus der patch-Datei ziehen, aber das wĂ€re ja nicht im Sinne des Erfinders ;-)
Das Ganze lĂ€uft ĂŒbrigens unter Ubuntu 20.04 LTS.PS: Bitte nicht ĂŒber die 2 log Dateien wundern, die man da im Screenshot sieht. Ich lasse das Log ĂŒber den systemd Service da hin schreiben, damit ich im Syslog nicht alle 30 sek die Meldungen "Connection received" und "Listening" im syslog vom netcat error output bekomme. Das wĂ€re eventuell nochmal ein feature request, den Error Output vom netcat default wegzuschmeiĂen (
nc -nlvw 1 -p ${WS_PORT} 2>/dev/null) und nur in den syslog schreiben zu lassen, wenn die neue logging Option aktiviert ist oder auch nochmal eine extra Option oder generell in ein anderes Logfile schreiben lassen wie es beispielsweise der Apache oder Samba machen (da mĂŒsste man aber auch wieder das logrotate konfigurieren und dann ist man wieder beim Problem, dass das versch. Linux-Distributionen evtl. unterschiedlich handhaben) .UPDATE zum Patcher
Ich glaube ich habe einen Fehler im ws_updater.sh gefunden, das Skript legt die Datei "patch" an und versucht dann "patch.dat" anzuwenden:#Patch Version V2.8.0 auf V2.10.0 PATCH2100() { backup echo -e "\n Patche wetterstation.conf auf V2.10.0 ..." patch_2100 && patch ./wetterstation.conf < patch.dat rm patch.dat echo -e " Fertig...\n" echo -e " ${GE}Eventuelle Zusatzsensoren DP300/WS68, DP40/WH32 oder WH25/WH31 mĂŒssen eingetragen werden!\n" }@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Irgendeine Idee?
Nicht wirklich, bei mir funktioniert(e) es. Dann habe ich die Version von GitHub geladen, selbe wie bei dir ?!?
Sehe aber so keinen Fehler, also habe ich das Patchfile nochmals erstellt und eingefĂŒgt, jetzt:

bzgl. patch.dat: das habe ich erst eben geÀndert ;)
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
damit ich im Syslog nicht alle 30 sek die Meldungen "Connection received" und "Listening" im syslog vom netcat error output bekomme. Das wÀre eventuell nochmal ein feature request, den Error Output
Nehme ich mit auf, bis dato einfach vergessen, wollte ich schon öfters eliminieren :)
-
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Irgendeine Idee?
Nicht wirklich, bei mir funktioniert(e) es. Dann habe ich die Version von GitHub geladen, selbe wie bei dir ?!?
Sehe aber so keinen Fehler, also habe ich das Patchfile nochmals erstellt und eingefĂŒgt, jetzt:

bzgl. patch.dat: das habe ich erst eben geÀndert ;)
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
damit ich im Syslog nicht alle 30 sek die Meldungen "Connection received" und "Listening" im syslog vom netcat error output bekomme. Das wÀre eventuell nochmal ein feature request, den Error Output
Nehme ich mit auf, bis dato einfach vergessen, wollte ich schon öfters eliminieren :)
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
bzgl. patch.dat: das habe ich erst eben geÀndert ;)
Das habe ich auch gerade gesehen đ
Muss ich morgen nochmal testen.@SBorg
Bei mir lÀuft das Patchen schief, habs mal manuell probiert :viper@kubix:/opt/wetterstation_upate$ patch ./wetterstation.conf < patch patching file ./wetterstation.conf Hunk #1 FAILED at 1. Hunk #2 FAILED at 9. 2 out of 2 hunks FAILED -- saving rejects to file. /wetterstation.conf.rejKeine Ahnung woran das liegt.
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
Ich lade morgen nochmal die conf von 2.8.0 runter und mache ein diff zu meiner config. Mal sehen, ob ich was finde.
Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habe. Dann wĂŒrde das wahrscheinlich fĂŒr den Patcher nicht mehr zusammen passen. -
@SBorg
Bei mir lÀuft das Patchen schief, habs mal manuell probiert :viper@kubix:/opt/wetterstation_upate$ patch ./wetterstation.conf < patch patching file ./wetterstation.conf Hunk #1 FAILED at 1. Hunk #2 FAILED at 9. 2 out of 2 hunks FAILED -- saving rejects to file. /wetterstation.conf.rejKeine Ahnung woran das liegt.
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
Ich lade morgen nochmal die conf von 2.8.0 runter und mache ein diff zu meiner config. Mal sehen, ob ich was finde.
Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habe. Dann wĂŒrde das wahrscheinlich fĂŒr den Patcher nicht mehr zusammen passen.@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
...Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habeDas sollte "patch" eigentlich abkönnen. Bei mir kommt bspw. "fuzz xyz" da meine IP nicht 192.168.1.3 wie im Patchfile ist, genauso wie ich nicht das WU-Protokoll lt. Patchfile nutze, sondern Ecowitt.
-
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
...Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habeDas sollte "patch" eigentlich abkönnen. Bei mir kommt bspw. "fuzz xyz" da meine IP nicht 192.168.1.3 wie im Patchfile ist, genauso wie ich nicht das WU-Protokoll lt. Patchfile nutze, sondern Ecowitt.
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
...Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habeDas sollte "patch" eigentlich abkönnen. Bei mir kommt bspw. "fuzz xyz" da meine IP nicht 192.168.1.3 wie im Patchfile ist, genauso wie ich nicht das WU-Protokoll lt. Patchfile nutze, sondern Ecowitt.
Ich habe jetzt nochmal die 2.9.0 release Version (https://github.com/SBorg2014/WLAN-Wetterstation/releases/download/V2.9.0/WLAN-Wetterstation.zip) herunter geladen und habe daran nichts verÀndert.
Dann habe ich den Stand 2.10.0 von hier herunter geladen: https://github.com/SBorg2014/WLAN-Wetterstation/tree/a3de2459fad54adc427ddb7c17f8eef9f3c5d3a6
Danach dann in der 2.9.0 einfach mal alle Dateien auĂer der conf durch die von der 2.10.0 ersetzt.
Und dann./ws_updater.sh --patchausgefĂŒhrt und bekomme den gleichen Fehler.
Dann einpatch --verbose ./wetterstation.conf < patchausgefĂŒhrt und der sagt:patch --verbose ./wetterstation.conf < patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 |+++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 -------------------------- patching file ./wetterstation.conf Using Plan A... Hunk #1 FAILED at 1. Hunk #2 succeeded at 9 with fuzz 1. 1 out of 2 hunks FAILED -- saving rejects to file ./wetterstation.conf.rej doneIn der Datei patch steht:
--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 +++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 @@ -1,7 +1,10 @@ -### Settings V2.8.0 ----------------------------------------------------------- +### Settings V2.10.0 ----------------------------------------------------------- #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte debug=false + #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei + logging=false + #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=192.168.1.3:8087 @@ -9,12 +12,15 @@ WS_PROTOKOLL=2 #Anzahl der vorhandenen Zusatzsensoren / default: 0 + ANZAHL_WH31=0 + ANZAHL_DP40=0 ANZAHL_DP50=0 ANZAHL_DP60=0 ANZAHL_DP70=0 ANZAHL_DP100=0 ANZAHL_DP200=0 ANZAHL_DP250=0 + ANZAHL_DP300=0 #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTPDie Ănderungen ab Zeile 9 hat er ausgefĂŒhrt, das ging bei meiner geĂ€nderten config auch nicht und das lag tatsĂ€chlich an meinen Kommentaren dahinter.
Aber ab Zeile 1 bekommt er auch mit den originalen config files aus 2.9.0 und 2.10.0 bei mir nicht hin.
Es geht nur, wenn ich den Parameter ignore-whitespace hinzufĂŒge:patch --verbose --ignore-whitespace ./wetterstation.conf < patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 |+++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 -------------------------- patching file ./wetterstation.conf Using Plan A... Hunk #1 succeeded at 1. Hunk #2 succeeded at 12 with fuzz 1. doneIch glaube ich werde die Ănderungen manuell einpflegen, ich weiĂ hier ehrlich gesagt nicht weiter.
So gut kenne ich mich dann damit auch nicht aus. -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vielleicht habe ich beim Setzen der Werte irgendwo ne Leerzeile eingefĂŒgt oder gelöscht.
...Es könnte sein, dass ich hinter den Werten, die ich geĂ€ndert habe, einen Kommentar eingefĂŒgt habeDas sollte "patch" eigentlich abkönnen. Bei mir kommt bspw. "fuzz xyz" da meine IP nicht 192.168.1.3 wie im Patchfile ist, genauso wie ich nicht das WU-Protokoll lt. Patchfile nutze, sondern Ecowitt.
Ich habe jetzt nochmal die 2.9.0 release Version (https://github.com/SBorg2014/WLAN-Wetterstation/releases/download/V2.9.0/WLAN-Wetterstation.zip) herunter geladen und habe daran nichts verÀndert.
Dann habe ich den Stand 2.10.0 von hier herunter geladen: https://github.com/SBorg2014/WLAN-Wetterstation/tree/a3de2459fad54adc427ddb7c17f8eef9f3c5d3a6
Danach dann in der 2.9.0 einfach mal alle Dateien auĂer der conf durch die von der 2.10.0 ersetzt.
Und dann./ws_updater.sh --patchausgefĂŒhrt und bekomme den gleichen Fehler.
Dann einpatch --verbose ./wetterstation.conf < patchausgefĂŒhrt und der sagt:patch --verbose ./wetterstation.conf < patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 |+++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 -------------------------- patching file ./wetterstation.conf Using Plan A... Hunk #1 FAILED at 1. Hunk #2 succeeded at 9 with fuzz 1. 1 out of 2 hunks FAILED -- saving rejects to file ./wetterstation.conf.rej doneIn der Datei patch steht:
--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 +++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 @@ -1,7 +1,10 @@ -### Settings V2.8.0 ----------------------------------------------------------- +### Settings V2.10.0 ----------------------------------------------------------- #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte debug=false + #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei + logging=false + #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=192.168.1.3:8087 @@ -9,12 +12,15 @@ WS_PROTOKOLL=2 #Anzahl der vorhandenen Zusatzsensoren / default: 0 + ANZAHL_WH31=0 + ANZAHL_DP40=0 ANZAHL_DP50=0 ANZAHL_DP60=0 ANZAHL_DP70=0 ANZAHL_DP100=0 ANZAHL_DP200=0 ANZAHL_DP250=0 + ANZAHL_DP300=0 #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTPDie Ănderungen ab Zeile 9 hat er ausgefĂŒhrt, das ging bei meiner geĂ€nderten config auch nicht und das lag tatsĂ€chlich an meinen Kommentaren dahinter.
Aber ab Zeile 1 bekommt er auch mit den originalen config files aus 2.9.0 und 2.10.0 bei mir nicht hin.
Es geht nur, wenn ich den Parameter ignore-whitespace hinzufĂŒge:patch --verbose --ignore-whitespace ./wetterstation.conf < patch Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- wetterstation.conf_org 2021-10-24 11:21:11.969204947 +0200 |+++ wetterstation.conf 2021-10-25 12:40:46.210234324 +0200 -------------------------- patching file ./wetterstation.conf Using Plan A... Hunk #1 succeeded at 1. Hunk #2 succeeded at 12 with fuzz 1. doneIch glaube ich werde die Ănderungen manuell einpflegen, ich weiĂ hier ehrlich gesagt nicht weiter.
So gut kenne ich mich dann damit auch nicht aus.@viper4iob Ich bin auch nicht gerade der "diff/patch - King" ;)
Ich habe noch weiter getestet, bei mir funktioniert es. Distri kann ich ausschlieĂen, nutze ebenfalls Ubuntu 20.04 LTS
Vielleicht tritt es ja bei einem weiteren Tester noch auf? Andererseits wenn es mittels "whitespace" funktioniert, kann ich das in den Updater auch noch aufnehmen. Die Leerzeilen sind reine Optik.Noch nicht hochgeladen, aber schon umgesetzt (Ruhe im Log):

FĂŒr die KommunikationsĂŒberwachung gibt es ja DPs, andernfalls kann man es dann auch per aktiviertem Logging wieder anhand des Logfiles sehen.
-
@viper4iob Ich bin auch nicht gerade der "diff/patch - King" ;)
Ich habe noch weiter getestet, bei mir funktioniert es. Distri kann ich ausschlieĂen, nutze ebenfalls Ubuntu 20.04 LTS
Vielleicht tritt es ja bei einem weiteren Tester noch auf? Andererseits wenn es mittels "whitespace" funktioniert, kann ich das in den Updater auch noch aufnehmen. Die Leerzeilen sind reine Optik.Noch nicht hochgeladen, aber schon umgesetzt (Ruhe im Log):

FĂŒr die KommunikationsĂŒberwachung gibt es ja DPs, andernfalls kann man es dann auch per aktiviertem Logging wieder anhand des Logfiles sehen.
Ich hatte beide Versionen mit wget runter geladen, entpackt, und auf die unverÀnderte conf Version 2.8.0 den Patch angewandt und trotzdem ein Fehler. Ich dachte erst es könnte an den line-endings liegen wegen LF und CRLF, aber da war alles identisch, Kodierung ist UTF-8.
Vielleicht noch etwas mit Tabs vs. Leerzeichen, wie die interpretiert werden, keine Ahnung.
Ich habe jetzt mal eindiff -uauf die beiden Dateien gemacht und da kommt das hier raus:--- 2.8.0/wetterstation.conf 2021-08-16 13:24:08.000000000 +0200 +++ 2.10.0/wetterstation.conf 2021-10-27 09:09:01.000000000 +0200 @@ -1,20 +1,26 @@ -### Settings V2.8.0 ----------------------------------------------------------- +### Settings V2.10.0 ----------------------------------------------------------- #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte debug=false + #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei + logging=false + #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=192.168.1.3:8087 - #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi / default: 1 - WS_PROTOKOLL=1 + #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi / default: 2 + WS_PROTOKOLL=2 #Anzahl der vorhandenen Zusatzsensoren / default: 0 + ANZAHL_WH31=0 + ANZAHL_DP40=0 ANZAHL_DP50=0 ANZAHL_DP60=0 ANZAHL_DP70=0 ANZAHL_DP100=0 ANZAHL_DP200=0 ANZAHL_DP250=0 + ANZAHL_DP300=0 #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTPSieht anders aus als in dem patch file vom Skript, z.B. nur ein Hunk statt 2, hat mir jetzt bei der Fehlersuche also auch nicht wirklich geholfen. Wenn ich das als Patch auf die unverÀnderte 2.8.0 conf anwende, geht es bei mir.
Die Leerzeichen beim Patchen mit dem Parameter ignore-whitespace zu ignorieren, wĂŒrde mir zwar jetzt helfen, ich weiĂ aber nicht, ob das so eine gute Idee ist. Manchmal werden die ja auch absichtlich benutzt. Siehe auch die Diskussion hier: https://unix.stackexchange.com/questions/96486/how-to-create-a-patch-ignoring-indentation-differences-in-the-code
Lass es lieber raus. Ich passe meine conf manuell an.
Kannst du mal schauen, was der Befehllocalebei dir ausspuckt. Bei mir steht da in der ersten ZeileLANG=de_DE.UTF-8Schon mal danke im Voraus fĂŒr das Anpassen vom netcat Log.
-
@viper4iob Ich bin auch nicht gerade der "diff/patch - King" ;)
Ich habe noch weiter getestet, bei mir funktioniert es. Distri kann ich ausschlieĂen, nutze ebenfalls Ubuntu 20.04 LTS
Vielleicht tritt es ja bei einem weiteren Tester noch auf? Andererseits wenn es mittels "whitespace" funktioniert, kann ich das in den Updater auch noch aufnehmen. Die Leerzeilen sind reine Optik.Noch nicht hochgeladen, aber schon umgesetzt (Ruhe im Log):

FĂŒr die KommunikationsĂŒberwachung gibt es ja DPs, andernfalls kann man es dann auch per aktiviertem Logging wieder anhand des Logfiles sehen.
Jetzt aber mal eine positive Nachricht, die 2.10.0 Beta funktioniert mit den neuen Sensoren, die Batteriewerte werden angezeigt.
Gute Arbeit, danke.Noch eine generelle Frage: Es gibt ja schon die neue Wifi-Firmware EasyWeather 1.6.0.
Meine WS-View-App ist aber immer noch der Meinung 1.5.9 wÀre aktuell. Nach dem Kauf der Wetterstation hatte ich da bereits ein Update auf die 1.5.9. D.h. prinzipiell scheint das zu gehen.
Wird die neue Firmware vielleicht fĂŒr verschiedene WS-Modelle zu verschiedenen Zeiten ausgerollt? Gibt es da Erfahrung? -
@sborg
Ein kleinen Punkt hÀtte ich doch noch.
Ich habe heute einen zusÀtzlichen DP50 in Betrieb genommen und bekomme seitdem im iobroker Log von der Simple API stÀndig folgende Meldung:State value to set for "javascript.0.Wetterstation.DP50.1.Batterie" has to be type "number" but received type "string"Da passt der Datentyp nicht zusammen.
Bei den neuen Sensoren wird 0 oder 1 fĂŒr den Batteriewert-Datenpunkt geschrieben, beim DP50 steht im Datenpunkt "OK"UPDATE
Ich habe jetzt mal den Datentyp vom Datenpunkt der DP50 Batterie von Zahl auf Zeichenkette geÀndert, damit nicht alle 30 sek eine Meldung im iobroker generiert wird.
Ist die Frage wie man es einheitlich handhaben will. Es sollte zumindest einheitlich fĂŒr alle Sensoren sein, die 0 oder 1 als Batteriestatus melden.
Entweder das Skript schreibt "OK"/"Alarm", dann muss das JS-Skript, das die Datenpunkte anlegt, das als String definieren.
Oder eben 0/1, dann bleibts bei number.
Es scheint aktuell nur beim DP50 die Funktion batterie aufgerufen zu werden (https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/wetterstation.sub#L1172) -
Ich hatte beide Versionen mit wget runter geladen, entpackt, und auf die unverÀnderte conf Version 2.8.0 den Patch angewandt und trotzdem ein Fehler. Ich dachte erst es könnte an den line-endings liegen wegen LF und CRLF, aber da war alles identisch, Kodierung ist UTF-8.
Vielleicht noch etwas mit Tabs vs. Leerzeichen, wie die interpretiert werden, keine Ahnung.
Ich habe jetzt mal eindiff -uauf die beiden Dateien gemacht und da kommt das hier raus:--- 2.8.0/wetterstation.conf 2021-08-16 13:24:08.000000000 +0200 +++ 2.10.0/wetterstation.conf 2021-10-27 09:09:01.000000000 +0200 @@ -1,20 +1,26 @@ -### Settings V2.8.0 ----------------------------------------------------------- +### Settings V2.10.0 ----------------------------------------------------------- #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte debug=false + #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei + logging=false + #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=192.168.1.3:8087 - #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi / default: 1 - WS_PROTOKOLL=1 + #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi / default: 2 + WS_PROTOKOLL=2 #Anzahl der vorhandenen Zusatzsensoren / default: 0 + ANZAHL_WH31=0 + ANZAHL_DP40=0 ANZAHL_DP50=0 ANZAHL_DP60=0 ANZAHL_DP70=0 ANZAHL_DP100=0 ANZAHL_DP200=0 ANZAHL_DP250=0 + ANZAHL_DP300=0 #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTPSieht anders aus als in dem patch file vom Skript, z.B. nur ein Hunk statt 2, hat mir jetzt bei der Fehlersuche also auch nicht wirklich geholfen. Wenn ich das als Patch auf die unverÀnderte 2.8.0 conf anwende, geht es bei mir.
Die Leerzeichen beim Patchen mit dem Parameter ignore-whitespace zu ignorieren, wĂŒrde mir zwar jetzt helfen, ich weiĂ aber nicht, ob das so eine gute Idee ist. Manchmal werden die ja auch absichtlich benutzt. Siehe auch die Diskussion hier: https://unix.stackexchange.com/questions/96486/how-to-create-a-patch-ignoring-indentation-differences-in-the-code
Lass es lieber raus. Ich passe meine conf manuell an.
Kannst du mal schauen, was der Befehllocalebei dir ausspuckt. Bei mir steht da in der ersten ZeileLANG=de_DE.UTF-8Schon mal danke im Voraus fĂŒr das Anpassen vom netcat Log.
@viper4iob Zuerst mal Danke :+1:
"locale" steht bei mir ebenfalls auf Deutsch = identisch
Beim 1. derartigen Patch hat sich auch keiner beschwert bzw. lief es, deswegen vermute ich mal, dass es bei dir (was auch immer) klemmt. Notfalls mĂŒsste ich halt doch wieder das GewĂŒrge aus sed, escapen... einpflegen :disappointed:@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
z.B. nur ein Hunk statt 2
Liegt einfach daran, dass er wegen des "Protokoll=" - Eintrages noch eine Ănderung in das Patchfile eintrĂ€gt. Somit fĂ€ngt er keinen neuen Hunk an (erfolgt erst nach x unverĂ€nderten Zeilen).
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
die 2.10.0 Beta funktioniert mit den neuen Sensoren, die Batteriewerte werden angezeigt.
:blush:
@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wird die neue Firmware vielleicht fĂŒr verschiedene WS-Modelle zu verschiedenen Zeiten ausgerollt? Gibt es da Erfahrung?
FĂŒr die Stationen IMHO nicht, die Gateways haben aber eh eine andere Firmware. Die 1.6.0 war offenbar auch nur ein paar Tage Online + wurde dann scheinbar zurĂŒckgezogen. Im Release-File wird aber immer noch 1.6.0 als die aktuelle angezeigt...
1.5.9 --> 1.6.0 hat aber keine neue Funktionen, sondern (soll) verbessert die StabilitÀt der Kommunikation. Ich habe die 1.6.0 drauf, aber weder was positives, noch etwas negatives festgestellt ;)@viper4iob sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Da passt der Datentyp nicht zusammen.
Bei den neuen Sensoren wird 0 oder 1 fĂŒr den Batteriewert-Datenpunkt geschrieben, beim DP50 steht im Datenpunkt "OK"Ist noch ein altes Ăberbleibsel und sollte so nicht sein, habe ich gestern entfernt (ich lese öfters hier mal kurz Offline rein, habe aber nicht immer Zeit auch Online zu gehen). Ich schreibe das was der Sensor meldet, also 0 oder 1, einen Level 0-5[6] oder eben einen Batteriewert (Ausnahmeregel: beim Leaksensor "Ok/Alarm", ist aber kein Batteriewert, sondern der "Alarmwert").
Mir fÀllt das leider selbst nicht auf, da ich weder Gateway noch Zusatzsensoren habe. -
Aaarrrgghhh...
Bei wetter.com stimmt aktuell die Zeit des Messpunktes nicht, da sie nicht wie ĂŒblich mittels UTC arbeiten (da gĂ€be es kein Sommer-/Winterzeitproblem), sondern Datum und Uhrzeit im Klartext wollen. Soweit kein Problem, wenn sie jetzt zur "Winterzeit" nicht pauschal automatisch eine Stunde vom gemeldeten Wert abziehen wĂŒrden (weil wohl deren Meinung nach die "doofen" User nicht in der Lage sind ihre Systemzeit korrekt zu setzen/setzen zu lassen...?! ).
Entweder ist also deren Server falsch konfiguriert, oder sie sind schlichtweg....Patch ist jedenfalls fertig (ich addiere zur Winterzeit nun eine Stunde hinzu damit sie sie wieder abziehen können :man-facepalming: ) und kommt zeitnah zum neuen Release ;)
-
2021-11-01 01:03:00.017 - debug: javascript.0 (2938) sendTo "query" to system.adapter.influxdb.0 from system.adapter.javascript.0: select * FROM "0_userdata.0.Wetterstation.Aussentemperatur" WHERE time >= 1604185200000000000 AND time <= 1606777199000000000; select * FROM "0_userdata.0.Wetterstation.Wind_max" WHERE time >= 1604185200000000000 AND time <= 1606777199000000000; select * FROM "0_userdata.0.Wetterstation.Regen_Tag" WHERE time >= 1604185200000000000 AND time <= 1606777199000000000 2021-11-01 01:03:00.086 - warn: javascript.0 (2938) You are assigning a string to the state "0_userdata.0.Statistik.Wetter.Data.2021.10" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions. 2021-11-01 01:03:00.091 - warn: javascript.0 (2938) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1439:20) 2021-11-01 01:03:00.092 - warn: javascript.0 (2938) at Immediate._onImmediate (script.js.common.Wetterstation_Statistik:346:169) 2021-11-01 01:03:00.092 - warn: javascript.0 (2938) at processImmediate (internal/timers.js:463:21) 2021-11-01 01:03:00.093 - info: javascript.0 (2938) Could not parse value for id 0_userdata.0.Statistik.Wetter.Data.2021.10 into object: Unexpected end of JSON input 2021-11-01 01:03:00.095 - info: javascript.0 (2938) Could not parse value for id 0_userdata.0.Statistik.Wetter.Data.2021.10 into object: Unexpected end of JSON inputSchreit dein Statistikskript bei mir rum :rolling_on_the_floor_laughing: