NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
...und weil es so schön war und euch nicht langweilig wird...
@a200 + meiner einer proudly presents
Neue Beta des WLAN-Wetterstation-Skriptes auf GitHub V2.0.0
- + Unterstützung des Gateways und Zusatzsensoren (@a200)
- + Protokoll (wunderground oder ecowitt) wählbar
Wie immer zu finden im GitHub
Bitte die neue Update-Routine beachten (siehe WiKi). Ihr erspart euch damit das händische konfigurieren der wetterstation.conf
Die V2.0.0 unterstützt entweder das Wunderground- oder Ecowitt-Protokoll (umstellen per WS View App + Einstellung in der conf; WiKi-Doku folgt). Leider hat jedes Vor- und Nachteile. Warum es hier Differenzen gibt ist mir nicht klar, aber bei Ecowitt gibt es bspw. keinen Chillfaktor/Taupunkt, dafür aber eine Gesamtregenmenge usw.
Die maßgebliche Änderung (thx @a200 ) betrifft aber die Unterstützung des Gateways mit Zusatzsensoren (aktuell DP50 und DP100).Wenn man bei WU bleibt, sollte man bestenfalls keine Änderung bemerken. Bei Ecowitt kommen DPs hinzu, andere fallen leider weg. Muss jeder selbst entscheiden was ihm wichtig ist. Wegen neuer Datenpunkte ist diesmal auch ein Update des JS-Skriptes (wetterstation.js) nötig. Wer ein Gateway + DP50/100 - Sensoren nutzt/nutzen möchte, muss dies in der conf explizit aktivieren/konfigurieren und zusätzlich im JS noch GATEWAY=true; setzen damit die nötigen DPs angelegt werden.
Das verhalten des "Kommunikationsfehlers" hat sich dahingehend geändert, dass nun bei 10 aufeinanderfolgenden Fehlern erst ein false ausgelöst wird. Dies wird auch nicht automatisch resettet (außer beim Neustart des Skriptes).
Das sollte dann in etwa (bei 30 Sekunden Intervall der Station) einer 5 minütigen Empfangsunterbrechung entsprechen. Ich denke mal, da kann man dann wirklich von einem Problem wie bspw. leeren Batterien etc. reden......und jetzt viel Spaß beim testen. Da der Umbau, wenn auch so nicht offensichtlich, recht umfangreich war, sind ev. noch Fehler zu erwarten (eigentlich nur falsche/fehlende Werte, also bitte hier ein besonderes Augenmerk darauf).
-
@SBorg Sieht schon besser aus. Hier kommen meine ersten Ergebnisse:
Jetzt muss der Experte das auswerten
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
- Im Moment werden Zusatzsensoren wie DP50 und DP100 unterstützt. Weitere folgen. Welche Sensoren hast du?
- Die o.g. Sensoren können nur über das Ecowitt-Protokoll "abgefragt" werden. Dafür muss wie @SBorg geschrieben hat, deine Conf-Datei angepasst werden.
Deine Fehlermeldung schaue ich mir an.
[edit]
Kannst du bitte die Ausgabe "Data von Wetterstation" als Text hierhin kopieren. Dann kann ich mit deinen Daten testen. -
@a200 Hier kommt das "Data"-Ergebnis:
GET /weatherstation/updateweatherstation.php?ID=IRETHW1&PASSWORD=xxxxxxxx&indoortempf=71.4&indoorhumidity=41&tempf=46.7&humidity=98&temp1f=47.7&humidity1=97&dewptf=46.2&windchillf=46.7&absbaromin=29.74&baromin=29.71&windspeedmph=2.7&windgustmph=3.8&winddir=98&windspdmph_avg2m=1.8&winddir_avg2m=79&windgustmph_10m=1.6&windgustdir_10m=57&dailyrainin=0.31&weeklyrainin=0.41&monthlyrainin=0.45&solarradiation=0.0&UV=0&dateutc=2020-12-15%2018:6:59&action=updateraw&realtime=1&rtfreq=5& HTTP/1.0
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
GET /weatherstation/updateweatherstation.php?ID=IRETHW1&PASSWORD=xxxxxxxx&indoortempf=71.4&indoorhumidity=41&tempf=46.7&humidity=98&temp1f=47.7&humidity1=97&dewptf=46.2&windchillf=46.7&absbaromin=29.74&baromin=29.71&windspeedmph=2.7&windgustmph=3.8&winddir=98&windspdmph_avg2m=1.8&winddir_avg2m=79&windgustmph_10m=1.6&windgustdir_10m=57&dailyrainin=0.31&weeklyrainin=0.41&monthlyrainin=0.45&solarradiation=0.0&UV=0&dateutc=2020-12-15%2018:6:59&action=updateraw&realtime=1&rtfreq=5& HTTP/1.0
Was Hast du für eine WS? Ich finde keine "rainin" (Regenrate) Angabe bei dir. Dadurch kann eine Berechnung nicht korrekt ausgeführt werden.
Versuchs folgendes:service wetterstation stop nc -nlvw 1 -p 8181|tail -1
wobei 8181 deine Portnummer sein muss. Danach poste die Ausgabe. den Key kannst du wegschneiden.
-
@SBorg Hi, echt toll, was du hier machst!
Update hat einwandfrei mit dem cmd von 1.5 nach 1.6 nach V2.0 geklappt, läuft.Supi!
-
@a200 said in [Linux Shell-Skript] WLAN-Wetterstation:
nc -nlvw 1 -p 8181|tail -1
Passiert nichts:
Woher weiß ich denn, ob das der richtige Port ist ? Welcher Port denn ?
Ich habe folgende WS:
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Passiert nichts:
Woher weiß ich denn, ob das der richtige Port ist ? Welcher Port denn ?
mach malgrep WS_PORT wetterstation.conf
dann wird die Portnummer angezeigt
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 + meiner einer proudly presents
gleich gemacht und funktioniert
-
Das ist, glaube ich, auch nicht das erwartete Ergebnis, oder ?
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Das ist, glaube ich, auch nicht das erwartete Ergebnis, oder ?
fast! mach mal jetzt nur
nc -nlvw 1 -p 80
-
root@iobrokerraspi:/home/iobroker# nc -nlvw 1 -p 80 Listening on [0.0.0.0] (family 2, port 80) Connection from 192.168.178.187 11914 received! GET /weatherstation/updateweatherstation.php?ID=IRETHW1&PASSWORD=xxxxxxxx&indoortempf=71.8&indoorhumidity=41&tempf=47.1&humidity=98&temp1f=47.9&humidity1=98&dewptf=46.6&windchillf=47.1&absbaromin=29.75&baromin=29.72&windspeedmph=2.9&windgustmph=3.8&winddir=55&windspdmph_avg2m=2.5&winddir_avg2m=88&windgustmph_10m=2.0&windgustdir_10m=94&dailyrainin=0.37&weeklyrainin=0.47&monthlyrainin=0.51&solarradiation=0.0&UV=1&dateutc=2020-12-15%2019:12:59&action=updateraw&realtime=1&rtfreq=5& HTTP/1.0 Accept: */* Host: rtupdate.wunderground.com Connection: Close
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Du hast das Protokoll auf der WS nicht auf ecowitt umgestellt. Das musst du noch machen.
-
@a200 Habe ich jetzt geändert:
Jetzt ist Alles kaputt:
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 Habe ich jetzt geändert:
nein, hast du nicht. du muss es in der WS-APP
unter Punkt 2 einstellen. Alle andere Einstellungen kannst du so behalten. Erst dann wird deine WS das ecowitt Protokoll verwenden und wird wieder alles gut sein. Im Worst-Case schalten wir wieder zurück. Also keine Sorgen -
@a200 Jetzt drehen wir uns irgendwie im Kreis. Bei meinem Einstieg in dieses Thema begann ich damit, dass ich keine unterstützte Apps für diese WS gefunden habe.
Mein Dialog, der bei der Ersteinrichtung von der WS zur Verfügung gestellt wird, sieht wie folgt aus:
Wo soll ich da das Protokoll umstellen ?
-
@Legoracer70 ok. jetzt verstehe ich. Du best DER Typ! Also. Deine WS unterstützt nur wundergroud und kein ecowitt also das POST-Protokoll. Damit kannst du aber gut leben. Aber:
- Deine WS sendet keine Infos zu der Regenmenge. Dieser Wert wird aber für weitere Berechnungen von @SBorg benötigt was zu den Fehlermeldungen führt. (negativ)
- Daten deines DP50 Sensor werden bei anderen Stationen nur über POST gesendet, bei dir jedoch bei GET. Ich kann das Skript so anpassen, dass du auch die Wert aus dem DP50 bekommst. (positiv)
- Deine WS sendet noch andere Werte, die bei dir jedoch anders heißen als bei den übrigen WS. Aber auch das lässt sich anpassen.
Gedulde dich ein wenig. Stelle deine Conf-Datei wieder auf die vorherigen Einstellungen. Ich schau wie aufwendig es wird das zu patchen.
-
@a200 ok
-
@Legoracer70 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 ok
Also ich gehe davon aus, dass deine WS wieder Daten sendet. Wenn das der Fall ist, dann geht es weiter:
- In wetterstation.conf stelle:
ANZAHL_DP50=1
- cp wetterstation.sub wetterstation.sub.org
- Die Datei wetterstation.sub bearbeiten:
a) Zeile 119 (if [ $WS_PROTOKOLL = 1 ]; then echo -e "$GR keine $WE"; else echo -e "\n"; fi) löschen
b) ab Zeile 581 bearbeiten und die Zeilen wie folgt auskommentieren.
581 # if [ $WS_PROTOKOLL = "1" ]; then 582 # MAXDEVICES=22 583 # else 584 MAXDEVICES=$(( 31 + $ANZAHL_DP50 * 6 + ANZAHL_DP100 * 4 )) 585 # fi Schau mal ob das so läuft.
-
@a200 Soweit Alles angepasst.
Hier kommt das Ergebnis:
Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=22.22&javascript.0.Wetterstation.Aussentemperatur=8.50&javascript.0.Wetterstation.Taupunkt=8.22&javascript.0.Wetterstation.Chillfaktor=8.50&javascript.0.Wetterstation.Innenfeuchtigkeit=41&javascript.0.Wetterstation.Aussenfeuchtigkeit=98&javascript.0.Wetterstation.Wind=1.77&javascript.0.Wetterstation.Wind_max=2.57&javascript.0.Wetterstation.Windrichtung=72&javascript.0.Wetterstation.Druck_absolut=1008.46&javascript.0.Wetterstation.Druck_relativ=1007.45&javascript.0.Wetterstation.Regen_Tag=10.1&javascript.0.Wetterstation.Regen_Woche=12.9&javascript.0.Wetterstation.Regen_Monat=13.7&javascript.0.Wetterstation.Regen_Jahr=0&javascript.0.Wetterstation.Sonnenstrahlung=0.0&javascript.0.Wetterstation.UV_Index=0&javascript.0.Wetterstation.Zeitstempel=15.12.2020%2021:57:59&javascript.0.Wetterstation.DP50.1.Temperatur=9.11&javascript.0.Wetterstation.DP50.1.Feuchtigkeit=97&javascript.0.Wetterstation.Regenstatus=&javascript.0.Wetterstation.UV_Belastung=keine&javascript.0.Wetterstation.Windrichtung_Text=ONO
DATA von Wetterstation:
GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=72.0&indoorhumidity=41&tempf=47.3&humidity=98&temp1f=48.4&humidity1=97&dewptf=46.8&windchillf=47.3&absbaromin=29.78&baromin=29.75&windspeedmph=1.1&windgustmph=1.6&winddir=72&windspdmph_avg2m=1.1&winddir_avg2m=91&windgustmph_10m=0.7&windgustdir_10m=87&dailyrainin=0.4&weeklyrainin=0.51&monthlyrainin=0.54&yearlyrainin=0&solarradiation=0.0&UV=0&dateutc=2020-12-15%2020:57:59&action=updateraw&realtime=1&rtfreq=5& HTTP/1.0Entspricht das den Erwartungen ?