NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@SBorg Hi,
habe gerade, da ich von der 1.1. auf die 1.2 updaten wollte, auf die 1.3 geupdated, und jetzt bekomm ich das hier:
ilovegym@iobroker /opt/iobroker $ ./wetterstation.sh --debug Connection to 192.168.178.41 81 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 0, port 8188) Connection from [192.168.0.123] port 8188 [tcp/*] accepted (family 2, sport 10384) Messwerteblock: Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Chill-Faktor : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h max. Windgeschwindkeit : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Datenstring für ioBroker: DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=72.3&tempf=62.2&dewptf=38.8&windchillf=62.2&indoorhumidity=35&humidity=42&windspeedmph=0.7&windgustmph=1.1&winddir=251&absbaromin=29.684&baromin=30.059&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.701&yearlyrainin=0&solarradiation=90.65&UV=0&dateutc=2020-05-03%2017:05:58&softwaretype=EasyWeatherV1.4.9&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0 Debug VAR: Installationsverzeichnis: /opt/iobroker IPP: 192.168.178.41:81 WS_PORT: 8188 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation Script-Version: V1.3.0 Config-Version: V1.3.0 Sub-Version: V1.3.0 ilovegym@iobroker /opt/iobroker $ ./wetterstation.sh --debug Connection to 192.168.178.41 81 port [tcp/*] succeeded! /opt/iobroker/wetterstation.sub: Zeile 519: 15 - (09: Der Wert ist für die aktuelle Basis zu groß. (Fehlerverursachendes Zeichen ist \"09\"). Listening on [0.0.0.0] (family 0, port 8188) Connection from [192.168.0.123] port 8188 [tcp/*] accepted (family 2, sport 21737) Messwerteblock: Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Chill-Faktor : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h max. Windgeschwindkeit : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Datenstring für ioBroker: DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=72.3&tempf=62.2&dewptf=38.3&windchillf=62.2&indoorhumidity=35&humidity=41&windspeedmph=1.1&windgustmph=1.1&winddir=251&absbaromin=29.690&baromin=30.065&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.701&yearlyrainin=0&solarradiation=90.65&UV=0&dateutc=2020-05-03%2017:09:26&softwaretype=EasyWeatherV1.4.9&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0 Debug VAR: Installationsverzeichnis: /opt/iobroker IPP: 192.168.178.41:81 WS_PORT: 8188 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation Script-Version: V1.3.0 Config-Version: V1.3.0 Sub-Version: V1.3.0 ilovegym@iobroker /opt/iobroker $ ./wetterstation.sh --debug Connection to 192.168.178.41 81 port [tcp/*] succeeded! /opt/iobroker/wetterstation.sub: Zeile 519: 15 - (09: Der Wert ist für die aktuelle Basis zu groß. (Fehlerverursachendes Zeichen ist \"09\"). Listening on [0.0.0.0] (family 0, port 8188) ^C ilovegym@iobroker /opt/iobroker $ sudo nano wetterstation.sub
-
@ilovegym Wahrscheinlich läuft es jetzt gerade wieder, der Fehler tritt auf wenn man genau zur 8. oder 9. Minute startet, also bspw. 20:08 Uhr. Das wird dann dummerweise nicht als Dezimal "08/09" gewertet, sondern wegen der "0" als Octal 8/9...
Fix auf GitHub steht bereit, alternativ in der *.sub Zeile #519 ändern:von if [ "${DRUCKWERTE[1]}" -gt "20" ]; then WETTER_TREND="dauert max. $(( 15 - (`date +%M` % 15) )) Minuten"; fi in if [ "${DRUCKWERTE[1]}" -gt "20" ]; then WETTER_TREND="dauert max. $(( 15 - (`date +%-M` % 15) )) Minuten"; fi
also genau ein "-" bei date +%M einfügen
-
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wie @SBorg direkt die 868Mhz abgreifen möchte, verstehe ich noch nicht so ganz, sein Posting oben...
Mittels Empfänger und einem größeren ESP (wg. dem anbinden der Zusatzsensoren). Kostenpunkt je nach ESP <20,- €
Der empfängt dann genau wie das Display das Funksignal und dekodiert es. Da es nur paar Messwerte sind dürfte es nicht verschlüsselt sein und enthält die Werte wohl sogar im Klartext.
Man könnte also beides parallel nutzen, oder ohne Display, Protokoll wäre auch egal, da ja erst das Display Wunderground/Ecowitt... macht. Dann könnte auch jeder die Daten im 16 Sekundentakt empfangen. Berechnungen kann der ESP ebenfalls durchführen, es braucht also auf ioB-Seite nichts weiter. -
@SBorg Hi,
danke für den schnellen Fix, der behebt zwar das Zeile-519 Problem, aber ich bekomme ab Version 1.2 kein Werte mehr an iobroker übergeben, da hat sich wohl noch mehr geändert??
Habe die .sh, sub und auch sicherheitshalber die .conf neu angelegt, wenn ich zurück auf die 1.1.0 gehe, funktioniert alles.Debug - von der Wetterstation kommts an, aber das Script kann es nicht mehr auswerten..?
iobroker iobroker # ./wetterstation.sh --debug Connection to 192.168.178.41 81 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 0, port 8188) Connection from [192.168.0.123] port 8188 [tcp/*] accepted (family 2, sport 25058) Messwerteblock: Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Chill-Faktor : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h max. Windgeschwindkeit : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Datenstring für ioBroker: DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=71.8&tempf=56.8&dewptf=42.6&windchillf=56.8&indoorhumidity=35&humidity=59&windspeedmph=1.1&windgustmph=1.1&winddir=109&absbaromin=29.681&baromin=30.056&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.701&yearlyrainin=0&solarradiation=0.00&UV=0&dateutc=2020-05-03%2019:40:22&softwaretype=EasyWeatherV1.4.9&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0 Debug VAR: Installationsverzeichnis: /opt/iobroker IPP: 192.168.178.41:81 WS_PORT: 8188 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation Script-Version: V1.2.0 Config-Version: V1.2.1 Sub-Version: V1.2.0 iobroker iobroker #
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Mittels Empfänger und einem größeren ESP (wg. dem anbinden der Zusatzsensoren). Kostenpunkt je nach ESP <20,- €
Dazu könnte man das Funkmodul oder Funkmodul nehmen? FO nutzt FSK Modulation. Aber da hast du ganz schön viel Arbeit vor dir!
-
@ilovegym Routest du?
Connection to 192.168.178.41
Connection from [192.168.0.123]
sind zwei unterschiedliche Netze, wobei ich da eh nicht unterscheide. Ich brauche nur die IP vom ioB und der Wetterstation.
-
@SBorg nee, subnetting - ist auf 255.255.0.0 das geht die ganze Zeit schon gut.
Hatte über Ostern die IPs geändert, aber das Script lief ja.. bzw. die 1.1.0 läuft ja auch, ab 1.2.0 gehts nicht mehr.. hmmDie Daten kommen ja auch ins Script rein, können nur nicht ausgewertet werden..
-
@a200 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aber da hast du ganz schön viel Arbeit vor dir!
Meinst du das Skript war in 5 Minuten geschrieben
... diese oder ähnliche. Da mir aktuell die Zeit fehlt habe ich noch nicht genauer nachgesehen.@ilovegym sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die Daten kommen ja auch ins Script rein, können nur nicht ausgewertet werden..
Habe ich eben erst gesehen. Selbst wenn er es "falsch" interpretieren würde, stünde zumindest im Messwerteblock Nonsens. Muss ich mal schauen was das verursachen könnte. Funktioniert denn
./wetterstation.sh --data
? -
@SBorg
Version 1.2.0 der wetterstation.sh --data ergibt:ilovegym@iobroker /opt/iobroker/wetterstation $ ./wetterstation.sh --data Connection to 192.168.178.41 81 port [tcp/*] succeeded! Warte maximal 66 Sekunden auf Datenpaket der Wetterstation... Listening on [0.0.0.0] (family 0, port 8188) Connection from [192.168.0.123] port 8188 [tcp/*] accepted (family 2, sport 32486) GET /weatherstation/updateweatherstation.php?ID=Zuhause&PASSWORD=Qq14SJf1&indoortempf=71.8&tempf=55.8&dewptf=43.7&windchillf=55.8&indoorhumidity=36&humidity=64&windspeedmph=0.9&windgustmph=1.1&winddir=123&absbaromin=29.687&baromin=30.062&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.701&solarradiation=0.00&UV=0&dateutc=2020-05-03%2020:09:42&softwaretype=EasyWeatherV1.4.9&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0 ilovegym@iobroker /opt/iobroker/wetterstation $ ^C
-
@ilovegym Ich glaube ich muss da noch eine Fehlerausgabe einbauen...
Stimmt deine WS_ID in der *.conf wirklich mit der ID per WS View-App überein? Wenn nicht, tritt genau dein Fehler auf. Da wäre natürlich ein Hinweis vom Skript sinnvoll -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@ilovegym Ich glaube ich muss da noch eine Fehlerausgabe einbauen...
Stimmt deine WS_ID in der *.conf wirklich mit der ID per WS View-App überein? Wenn nicht, tritt genau dein Fehler auf. Da wäre natürlich ein Hinweis vom Skript sinnvollJa, genau das war es! Danke! Die ID hatte ich mal geändert, und keine Auswirkungen bemerkt, der 1.1.0 ist das auch noch egal, ab VErsion 1.2.x nicht mehr.. jetzt müsste auch die 1.3. laufen.. ich teste mal...
-
@SBorg Hi, auch die 1.3.0 beta läuft! Super! Danke.
-
@ilovegym sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die ID hatte ich mal geändert, und keine Auswirkungen bemerkt, der 1.1.0 ist das auch noch egal, ab VErsion 1.2.x nicht mehr..
Dürfte eigentlich nicht sein. Ich habe es zwar seit Einführung nicht mehr explizit getestet, aber auch seit der Einführung nichts mehr daran geändert:
V0.1.2 - 31.01.2020 + Prüfung auf Datenintegrität
Das war nur, um sicherzustellen dass es ein valides Datenpaket ist und ggf. mehrere Wetterstationen (auch vom "bösen" Nachbarn ) unterscheiden zu können.
Zumindest kommt mit der neuen Version (habe ich jetzt nicht extra deswegen gepublished) bei --debug eine entsprechende Fehlermeldung -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich habe mir die Tendenz jetzt mal auf 5 Pfeile gemappt:
Sorry, aber habe momentan gar keinen Ansatz, wie ich die Luftdrucktendenz in einem schnöden VIS ohne Grafana und so mit den Pfeilen darstellen soll.
In dem Zusammenhang noch die Frage nach der Anzahl der Luftdrucktendenzwerte...
-1 (sinkend)
0 (stabil)
1 (steigend)oder mehr? Konnte die Info leider nirgends finden
-
@Berchemer ab hier https://forum.iobroker.net/post/406346
du kannst ne gauge verwenden sowohl in Grafana als auch in Vis
https://forum.iobroker.net/post/407569 -
@Berchemer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich habe mir die Tendenz jetzt mal auf 5 Pfeile gemappt:
Sorry, aber habe momentan gar keinen Ansatz, wie ich die Luftdrucktendenz in einem schnöden VIS ohne Grafana und so mit den Pfeilen darstellen soll.
In dem Zusammenhang noch die Frage nach der Anzahl der Luftdrucktendenzwerte...
-1 (sinkend)
0 (stabil)
1 (steigend)oder mehr? Konnte die Info leider nirgends finden
ich würde es ganz einfach halten und als HTML-Widget ausgeben:
Luftdrucktendenz: {val:<LuftdrucktendenzDP>; val==-1? "↓": val==1? "↑": "→"}
Hier komplett. Aber bitte nicht vergessen den Datenpunktnamen anzupassen
Andere Pfeile stehen dann auch zur Verfügung -
@a200
Besser wäre aber val<=-1 und val>=1, denn die Werte gehen idR. von -8 bis +8 (gelegentlich bei extremer Wetterlage auch darüber/darunter). Sonst bekommst du bspw. bei +2 den "waagrechten Pfeil" -
@SBorg ok, hatt keine Ahnung wie die Werte sein können und bin nur von -1,0,1 ausgegangen. aber das Prinzip sollte klar sein.
-
@SBorg und die Wetterstation habe ich immer noch nicht bestellt. Ich versuche bei froggit anzurufen, aber dort geht keiner ran...
-
Danke Euch Dreien für die schnellen Antworten.
Das mit der Gauge versuche ich mal in einem eigenen Wetterview.
Auf die Schnelle, sagt mir der Tipp von a200 mit den drei Pfeilen zu.
Ach ja... Auch danke für den Hinweis -8 bis 8Habe also das Widget importiert, bzw. in ein html-Widget den folgenden Text geschrieben:
Luftdrucktendenz: {val:<javascript.0.Wetterstation.Druck_Tendenz>; val<=-1? "↓": val>=1? "↑": "→"}
Dabei ist natürlich "javascript.0.Wetterstation.Druck_Tendenz" meine ID des gewünschten Datenpunktes.
Leider bekomme ich als Ausgabe statt einen der drei Pfeile den Text undefined.
Seht Ihr vielleicht den Fehler, den ich nicht zu sehen scheineDer Datenpunkt hat folgende RAW-Daten:
{ "common": { "name": "Luftdrucktendenz", "type": "number", "role": "state" }, "native": { "name": "Luftdrucktendenz", "type": "number", "role": "state" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1588507414578, "_id": "javascript.0.Wetterstation.Druck_Tendenz", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }