NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hi,
ich habe eine Bresser 7-1 WLAN ClearView Station
In der WSLink App habe ich unter Andere Wetter Server den Eintrag gemacht der auf meinen raspi zeigt

Wenn ich die wetterstation im debug Modus starte werden auch nach kurzer Zeit Daten geschickt, aber das Skript wirft einen Kommunikationsfehler. Die Stations ID stimmt mit der WS_ID in der wetterstation.conf überein.
grafik.pngWas mach ich falsch? Danke für euren Input.
@mef70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Was mach ich falsch? Danke für euren Input.
"Leider" nix. Aber ev. gibt es noch eine Möglichkeit. Die von dir eingestellte Datenübertragung "Wunderground API" ist verschlüsselt (sieht man bei Data von Wetterstation. Da steht normalerweise ein Klartext.)
Kannst du noch ein anderes, wenn ja welche, auswählen? -
Ich glaube zwar nicht so richtig daran, aber du kannst mal auf WSLink API umstellen. Wahrscheinlich kommt aber der selbe "Müll" (ist halt verschlüsselt) beim Datenstring heraus.
-
@wendy2702
Das war mal gar nicht schlecht (keine Ironie).
Ist mir gar nicht aufgefallen, kam wohl mit irgendeinem Firmwareupdate. Die Station/Gateway sendet tatsächlich keine führende Null mehr bei den Werten (ich verarbeite den Wert 1:1).
Und genau das ist auch das String/Number Problem. So wird ein Zahlenwert von ".123" von der Simple-API als String identifiziert, "0.123" aber korrekt als Zahl. Deswegen konnte ich bis dato auch so kein System erkennen warum es mal funktioniert und mal nicht.
Muss ich eine Korrektur einführen die die fehlende Null wieder ergänzt. Dann hast du wieder deine Null und das String/Number - Problem sollte auch gelöst sein.@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@wendy2702
Das war mal gar nicht schlecht (keine Ironie).
Ist mir gar nicht aufgefallen, kam wohl mit irgendeinem Firmwareupdate. Die Station/Gateway sendet tatsächlich keine führende Null mehr bei den Werten (ich verarbeite den Wert 1:1).
Und genau das ist auch das String/Number Problem. So wird ein Zahlenwert von ".123" von der Simple-API als String identifiziert, "0.123" aber korrekt als Zahl. Deswegen konnte ich bis dato auch so kein System erkennen warum es mal funktioniert und mal nicht.
Muss ich eine Korrektur einführen die die fehlende Null wieder ergänzt. Dann hast du wieder deine Null und das String/Number - Problem sollte auch gelöst sein.Hallo und Frohe Weihnachten,
hast du das mittlerweile schon korrigiert und ich habe nur das Update verschlafen?
Danke und Gruß
-
@mef70
Nein, leider nicht. Die DNS-Umleitung leitet nur den Datenverkehr von Adresse X nach Adresse Y um. Die Kommunikation (=Daten) bleibt weiterhin verschlüsselt.Wie wichtig sind dir denn die Daten?
Ich kenne deinen "Wettermast" nicht, aber die funken idR. alle auf 868Mhz ihre Rohmessdaten. Dann könnte ein zusätzliches Gateway funktionieren. Kostenpunkt ~60,- € (bei Bresser bin ich aber sehr vorsichtig mit solch Aussagen, denn die arbeiten sehr oft proprietär).
Man kann die Messdaten auch mittels eines ESPs und passendem Board direkt vom Mast abgreifen. Kostenpunkt ~10,- €. Hier kannst du aber dann nicht mehr mit dem Skript arbeiten (außer man ändert den Sketch vom ESP, dass er dann einen "Normstring" im Ecowitt-Format an eine IP+Port sendet) und musst mit einem Blockly, NodeRED-Flow, what else arbeiten. -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@wendy2702
Das war mal gar nicht schlecht (keine Ironie).
Ist mir gar nicht aufgefallen, kam wohl mit irgendeinem Firmwareupdate. Die Station/Gateway sendet tatsächlich keine führende Null mehr bei den Werten (ich verarbeite den Wert 1:1).
Und genau das ist auch das String/Number Problem. So wird ein Zahlenwert von ".123" von der Simple-API als String identifiziert, "0.123" aber korrekt als Zahl. Deswegen konnte ich bis dato auch so kein System erkennen warum es mal funktioniert und mal nicht.
Muss ich eine Korrektur einführen die die fehlende Null wieder ergänzt. Dann hast du wieder deine Null und das String/Number - Problem sollte auch gelöst sein.Hallo und Frohe Weihnachten,
hast du das mittlerweile schon korrigiert und ich habe nur das Update verschlafen?
Danke und Gruß
@wendy2702
Danke und ebenso (dem Rest der Mitleser natürlich genauso).
Leider nicht verschlafen, die liebe Zeit fehlt aktuell an allen Ecken und Enden.Wenn ich was ändere landet das immer hier im Thread, auf GitHub sowieso (inkl. der Versionierung).
Ich weiß selbst wie das ist wenn man wartet, und ich bin auch nicht glücklich mit der aktuellen Situation, aber ich habe dermaßen "Land unter", dass ich hierzu (und auch anderem) einfach zeitlich nicht komme. Es ist wie es ist, durch jammern wird es auch nicht besser. Projekt deswegen einstellen ist jedenfalls aktuell keine Option, auch wenn ich mich zugegeben mit dem Gedanken bereits beschäftigt hatte.
-
@wendy2702
Danke und ebenso (dem Rest der Mitleser natürlich genauso).
Leider nicht verschlafen, die liebe Zeit fehlt aktuell an allen Ecken und Enden.Wenn ich was ändere landet das immer hier im Thread, auf GitHub sowieso (inkl. der Versionierung).
Ich weiß selbst wie das ist wenn man wartet, und ich bin auch nicht glücklich mit der aktuellen Situation, aber ich habe dermaßen "Land unter", dass ich hierzu (und auch anderem) einfach zeitlich nicht komme. Es ist wie es ist, durch jammern wird es auch nicht besser. Projekt deswegen einstellen ist jedenfalls aktuell keine Option, auch wenn ich mich zugegeben mit dem Gedanken bereits beschäftigt hatte.
@SBorg
Wenn man dich unterstützen kann, würde ich gerne meine Kenntnisse (sofern sie ausreichen) zur Verfügung stellen. -
@SBorg
Wenn man dich unterstützen kann, würde ich gerne meine Kenntnisse (sofern sie ausreichen) zur Verfügung stellen.@Boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg
Wenn man dich unterstützen kann, würde ich gerne meine Kenntnisse (sofern sie ausreichen) zur Verfügung stellen.Immer gerne, aber zu spät😜
Ich hatte mir schon einiges überlegt und in den letzten drei Stunden mal wieder unzählige Wege gefunden wie es nicht funktioniert. Problem war, dass auch bei negativen Werten von -0.99 bis -0.01 die führende Null fehlt. Das war dann schwieriger als gedacht. Umso erschreckender wie simpel im Nachhinein die Lösung erscheint...
Wer mal vorab testen will (nur direkt unter Linux, bitte nicht mit Windows und bspw. WinSCP bearbeiten!):
in der wetterstation.sub den Block (im Original Zeilen #364-366)
convertFtoC() { MESSWERTE[$1]=$(echo "scale=2;(${MESSWERTE[$1]}-32)*5/9" | bc -l) }einfach durch
convertFtoC() { local MESSWERT=$(awk "BEGIN {print (${MESSWERTE[$1]} - 32) * 5 / 9}") MESSWERTE[$1]=$(awk "BEGIN {print sprintf(\"%.2f\", $MESSWERT)}") }ersetzen. Das fügt dann bei der Aussentemperatur und bei allen Messwerten die in Fahrenheit vorliegen ggf. die "0" wieder vorne an: -0.34°C oder 0.78°C
Service restarten nicht vergessen:sudo systemctl restart wetterstationAn der
State value to set for "0_userdata.0.Wetterstation.Aussentemperatur" has to be type "number" but received type "string"
Problematik ändert es leider wiedererwartend nichts. Bei mir aktuell 2.78°C und er meckert...
-
@sborg Da bin leider ein schlechter Testkandidat, weil es bei mir immer lief... mit 0. und ohne meckern mit strings...
Aber mit der Änderung kommen zumindest nicht mehr Fehler :D -
@Boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg
Wenn man dich unterstützen kann, würde ich gerne meine Kenntnisse (sofern sie ausreichen) zur Verfügung stellen.Immer gerne, aber zu spät😜
Ich hatte mir schon einiges überlegt und in den letzten drei Stunden mal wieder unzählige Wege gefunden wie es nicht funktioniert. Problem war, dass auch bei negativen Werten von -0.99 bis -0.01 die führende Null fehlt. Das war dann schwieriger als gedacht. Umso erschreckender wie simpel im Nachhinein die Lösung erscheint...
Wer mal vorab testen will (nur direkt unter Linux, bitte nicht mit Windows und bspw. WinSCP bearbeiten!):
in der wetterstation.sub den Block (im Original Zeilen #364-366)
convertFtoC() { MESSWERTE[$1]=$(echo "scale=2;(${MESSWERTE[$1]}-32)*5/9" | bc -l) }einfach durch
convertFtoC() { local MESSWERT=$(awk "BEGIN {print (${MESSWERTE[$1]} - 32) * 5 / 9}") MESSWERTE[$1]=$(awk "BEGIN {print sprintf(\"%.2f\", $MESSWERT)}") }ersetzen. Das fügt dann bei der Aussentemperatur und bei allen Messwerten die in Fahrenheit vorliegen ggf. die "0" wieder vorne an: -0.34°C oder 0.78°C
Service restarten nicht vergessen:sudo systemctl restart wetterstationAn der
State value to set for "0_userdata.0.Wetterstation.Aussentemperatur" has to be type "number" but received type "string"
Problematik ändert es leider wiedererwartend nichts. Bei mir aktuell 2.78°C und er meckert...
@SBorg Habe die Änderung gerade mal durchgeführt.
Aus Anzeige "0" ist jetzt "0.00" geworden was aber für mich OK ist. Möglicherweise muss ich jetzt auch das Widget anpassen. Ich warte aber erstmal ab was bei anderen Temperaturen passiert.
Danke für deinen Einsatz und guten Rutsch.
-
@boronsbruder Keine neuen Fehler ist auch schon ein Erfolg 😁
@wendy2702 Jepp, das sind nun immer zwei Nachkommastellen. So hat man ein festes Format.
Man könnte natürlich auch den Sonderfall mit einer weiteren Zeile "nachbearbeiten":if [ $MESSWERTE[$1] == "0.00" ]; then MESSWERTE[$1]=0; fiUm allen Nutzern/Wünschen gerecht zu werden, könnte ich dies auch in der "conf" konfigurierbar machen.
-
@boronsbruder Keine neuen Fehler ist auch schon ein Erfolg 😁
@wendy2702 Jepp, das sind nun immer zwei Nachkommastellen. So hat man ein festes Format.
Man könnte natürlich auch den Sonderfall mit einer weiteren Zeile "nachbearbeiten":if [ $MESSWERTE[$1] == "0.00" ]; then MESSWERTE[$1]=0; fiUm allen Nutzern/Wünschen gerecht zu werden, könnte ich dies auch in der "conf" konfigurierbar machen.
@SBorg Danke für deine weiteren Bemühungen. Für mich sind die Kommastellen derzeit kein Problem.
Ich lasse es jetzt erstmal so laufen und beobachte die Anzeige bei verschiedenen Temparaturen.
Wenn die Chefin das "unschön" findet muss ich eben die Zeile noch einbauen.
-
seit ca. 8 Monaten läuft die Anbindung der Ecowitt-Wettertstation an ioBroker unter Raspberry Bookworm aus meiner Sicht ohne Probleme.
Ich habe jetzt testweise ioBroker auf meinem PC unter W11 installiert und das iobroker-Backup vom Raspberry eingespielt.
Leider weiß ich nicht mehr, was ich damals für die Installation noch gemacht habe. Muß ich unter Windows anders vorgehen und wenn nicht, wie war nochmal der Installationsvorgang ? -
seit ca. 8 Monaten läuft die Anbindung der Ecowitt-Wettertstation an ioBroker unter Raspberry Bookworm aus meiner Sicht ohne Probleme.
Ich habe jetzt testweise ioBroker auf meinem PC unter W11 installiert und das iobroker-Backup vom Raspberry eingespielt.
Leider weiß ich nicht mehr, was ich damals für die Installation noch gemacht habe. Muß ich unter Windows anders vorgehen und wenn nicht, wie war nochmal der Installationsvorgang ?Du muss nur die IP-Adressen von der Simple-Api und evtl. der Rest API (wenn verwendet) in der Config des Wetterstation-Skripts auf die des W11 PC auf dem der IOBroker läuft ändern.
Mir erschließt sich der Sinn den Iobroker vom Stromsparenden Raspi auf W11 umzuziehen nicht, aber das ist dein Ding...
Den Raspi brauchst du weiterhin, um das Skript auszuführen, da ein Shell-Skript unter Linux läuft.
Alternativen für den Raspi wären:
Es gibt die Möglichkeit eine Virtualierung unter Windows 11 laufen zu lassen, die das Linux beherbergt.Oder aber auch ein Linux mit WSL unter W11 laufen zu lassen. Da weiss ich aber nicht wie die Anbindung ans Netz funktionert.
Aber (Zitat aus der Anleitung von @sborg)
Voraussetzung: ein Device auf dem Linux (welches ist nicht maßgeblich) läuft, auf dem später die Datenaufbereitung erfolgt. Im folgenden Linux-Client genannt -
Du muss nur die IP-Adressen von der Simple-Api und evtl. der Rest API (wenn verwendet) in der Config des Wetterstation-Skripts auf die des W11 PC auf dem der IOBroker läuft ändern.
Mir erschließt sich der Sinn den Iobroker vom Stromsparenden Raspi auf W11 umzuziehen nicht, aber das ist dein Ding...
Den Raspi brauchst du weiterhin, um das Skript auszuführen, da ein Shell-Skript unter Linux läuft.
Alternativen für den Raspi wären:
Es gibt die Möglichkeit eine Virtualierung unter Windows 11 laufen zu lassen, die das Linux beherbergt.Oder aber auch ein Linux mit WSL unter W11 laufen zu lassen. Da weiss ich aber nicht wie die Anbindung ans Netz funktionert.
Aber (Zitat aus der Anleitung von @sborg)
Voraussetzung: ein Device auf dem Linux (welches ist nicht maßgeblich) läuft, auf dem später die Datenaufbereitung erfolgt. Im folgenden Linux-Client genannt@Boronsbruder
Hallo,
im Moment ist das nur ein Test mit iobroker, influxdb und grafana unter W11. Den Test lasse ich auf meinem PC laufen, um mögliche Probleme zu erkennen. Das hier scheint eins zu sein.
Das aktive System läuft auf einem Raspi 5 mit 2 SSD und noch Bookworm.
Die Idee war - und das klingt für die meisten verrückt - das später auf einem Mini-PC auch unter Windows 11 laufen zu lassen. Da soll dann noch mehr drauf. Der Mini braucht wahrscheinlich auch mehr Strom als der Raspi, aber das nehme ich in Kauf.
So wie du geschrieben hast gibt es keine Chance die Ecowitt-Wetterstation mit in iobroker unter W11 einzubinden ? Das wäre sehr schade, denn letztlich habe ich in Grafana gute Dashboards dafür erstellt.
Die IP-Adressen habe ich in der wetterstation.conf geändert, aber es kommen keine neuen Daten an. Also schein diese Anbindung nur unter Linux zu laufen. Ob es noch eine andere Möglichkeit für Windows gibt ist fraglich. -
@Boronsbruder
Hallo,
im Moment ist das nur ein Test mit iobroker, influxdb und grafana unter W11. Den Test lasse ich auf meinem PC laufen, um mögliche Probleme zu erkennen. Das hier scheint eins zu sein.
Das aktive System läuft auf einem Raspi 5 mit 2 SSD und noch Bookworm.
Die Idee war - und das klingt für die meisten verrückt - das später auf einem Mini-PC auch unter Windows 11 laufen zu lassen. Da soll dann noch mehr drauf. Der Mini braucht wahrscheinlich auch mehr Strom als der Raspi, aber das nehme ich in Kauf.
So wie du geschrieben hast gibt es keine Chance die Ecowitt-Wetterstation mit in iobroker unter W11 einzubinden ? Das wäre sehr schade, denn letztlich habe ich in Grafana gute Dashboards dafür erstellt.
Die IP-Adressen habe ich in der wetterstation.conf geändert, aber es kommen keine neuen Daten an. Also schein diese Anbindung nur unter Linux zu laufen. Ob es noch eine andere Möglichkeit für Windows gibt ist fraglich. -
Wenn der Rechner nicht zum daran arbeiten verwendet wird, dann nimmt man kein Betriebsystem mit DESKTOP, weil es nur unnötige Systemresourcen verbraucht...
Aber gut... wie gesagt dein Ding...
