NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
ich hätte hier noch den DATA String von einer Froggit HP1000SE mit 2x DP50, 3x DP100 und DP 60. Vieleicht hilft es ja noch.
DATA von Wetterstation: PASSKEY=xxxxxxx&stationtype=EasyWeatherV1.5.6&dateutc=2021-01-27+17:52:13&tempinf=41.0&humidityin=75&baromrelin=29.723&baromabsin=29.723&tempf=38.3&humidity=93&winddir=228&winddir_avg10m=232&windspeedmph=1.8&windspdmph_avg10m=2.2&windgustmph=3.4&maxdailygust=4.5&rainratein=0.000&eventrainin=0.012&hourlyrainin=0.012&dailyrainin=0.020&weeklyrainin=0.209&monthlyrainin=1.866&yearlyrainin=1.866&solarradiation=0.00&uv=0&temp1f=39.4&humidity1=66&temp2f=53.2&humidity2=54&soilmoisture1=42&soilmoisture2=63&soilmoisture3=60&lightning_num=0&lightning_time=&lightning=&wh65batt=0&wh25batt=0&batt1=0&batt2=0&soilbatt1=1.5&soilbatt2=1.5&soilbatt3=1.5&wh57batt=5&freq=868M&model=HP1000SE-PRO_Pro_V1.6.9
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Ich hatte es nur kurz zum probieren aktiviert. Der ganze Unterschied im Skript ist tatsächlich nur der Aufruf von HTTP vs. HTTPS. Mehr Änderungen waren dafür auch nicht nötig. Versuch mal vom Terminal:
curl https://_hier_ip_und_:port_/set/javascript.0.Wetterstation.Regenstatus?value=Weltuntergang&ack=true&user=&pass=
Hab ich gemacht. Problem konnte ich eingrenzen, da curl mir folgendes mitgeteilt hat:
curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.haxx.se/docs/sslcerts.html
-> Ich verwende selbst erstellte Zertifikate. Scheinbar mag curl die nicht.
Hatte auch die Standard ioB Zertifikate versucht. Leicht modifizierte Rückmeldung von curl:
curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.haxx.se/docs/sslcerts.html
Also auch nix. Dann etwas im Web gelesen. Man könnte die Option -k bei curl verwenden. Dann läuft auch dein Beispiel von oben durch. Aber laut curl Hilfe bedeutet das dann ja: -k, --insecure Allow insecure server connections when using SSL.
Glaube da kann man dann auch auf HTTPS verzichten, wenn curl eh alles zulässt.Es scheint allerdings eine Wissenschaft zu sein, curl taugliche Zertifikate zu erstellen.
-
@a200 Danke
Da scheinen aber einige Daten nicht mitgesendet zu werden (lt. der vorliegenden Strings).
Ich habe jetzt mal den DP60 hinzugefügt. Ich habe zwar keinen, aber wenn morgen alles noch rund läuft und nichts mehr dazwischen kommt, gibt es dann die V2.3.0:
Auch wenn nur einer möglich ist, habe ich die Nummerierung beibehalten. Einheitlich und man weiß ja nie was ev. noch kommt.
Den "Zeitpunkt" habe ich als Unix-Timestamp (in Nanosekunden) gesetzt. Ist zwar im Admin-Panel so dann nicht zu lesen, aber wer will schon die Daten sich immer im Admin anschauen? So ist man aber in der VIS per Widget etc. völlig frei in der Gestaltung wie es aussehen soll. -
@xxjooo Das ist quer Beet. Am einfachsten siehst du es eigentlich in der Wiki. Da steht was vom Skript kommt. Protokoll #9 ist auch noch nicht fertig und gänzlich zu Ende getestet.
Poste doch mal einen aktuellen String von dir./wetterstation.sh --data
Falls in dem Rohstring allerdings nicht die aktuelle Regenmenge drin steht wird es eng. Die wird für so ziemlich alle Berechnungen die mit Regen zu tun haben benötigt. -
@herrklaus So in etwa hatte ich es mir schon gedacht, denn HTTPS hatte ich eigentlich getestet. Wenn es derselbe Rechner ist (also Skript und ioB) oder diese im selben Netzwerk sind (eins von beiden trifft bestimmt zu), ist HTTPS aber eh unnötig. Wenn schon einer in deinem Netzwerk ist, dann kann er auch meinetwegen noch die Kommunikation abhören. Denn die Wetterdaten sind super geheim, bzw. so geheim, dass die Station sie eh öffentlich und unverschlüsselt auf 868MHz funkt.
Ins WWW ist das was anderes. Da ist HTTPS auf jeden Fall vorzuziehen.
Du kannst natürlich auch den Simple-RESTful zumindest mit User + Passwort sichern.
Mit etwas Aufwand kann man auch letsencrypt-Zertifikate nutzen. Die sind signiert und werden auch akzeptiert. Ich nutze certbot zum erzeugen/erneuern. Das wird dann hier aber OT -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Den "Zeitpunkt" habe ich als Unix-Timestamp (in Nanosekunden) gesetzt. Ist zwar im Admin-Panel so dann nicht zu lesen, aber wer will schon die Daten sich immer im Admin anschauen? So ist man aber in der VIS per Widget etc. völlig frei in der Gestaltung wie es aussehen soll.
Willst Du nicht trozdem einen konvertierten DP dazu nehmen? Dann kann man wenigstens in der Admin Konsole gleich was erkennen und muss nicht erst konvertieren...
Klar kann ich das auch selbst notfalls, aber ist natürlich out of the box viel bequemer -
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Willst Du nicht trozdem einen konvertierten DP dazu nehmen? Dann kann man wenigstens in der Admin Konsole gleich was erkennen und muss nicht erst konvertieren...
Brauch(s)t du/es nicht
Du kannst auch einfach die "Rolle" auf datetime umstellen, dann siehst du auch im Admin-Panel die Uhrzeit/Datum, trotzdem verbleibt der "state" als Unix-Timestamp. -
@sborg
Nett... sehe es gibt noch viel zu lernen Danke -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@xxjooo Das ist quer Beet. Am einfachsten siehst du es eigentlich in der Wiki. Da steht was vom Skript kommt. Protokoll #9 ist auch noch nicht fertig und gänzlich zu Ende getestet.
Poste doch mal einen aktuellen String von dir./wetterstation.sh --data
Hallo, das Ergebnis ist:
root@PiHole:~# ./wetterstation.sh --data -bash: ./wetterstation.sh: No such file or directory root@PiHole:~# cd /home/Wetterstation root@PiHole:/home/Wetterstation# ./wetterstation.sh --data Connection to 192.168.178.6 8087 port [tcp/*] succeeded! Warte maximal 66 Sekunden auf Datenpaket der Wetterstation... Listening on [0.0.0.0] (family 0, port 80) Connection from 192.168.178.62 7587 received! GET /weatherstation/updateweatherstation.php?ID=IWESSE10&PASSWORD=oNLYQZ6E&indoortempf=73.2&indoorhumidity=33&tempf=39.4&humidity=93&temp7f=41.9&humidity7=89&dewptf=37.5&windchillf=39.4&absbaromin=29.45&baromin=30.3&windspeedmph=0.4&windgustmph=0.7&winddir=131&windspdmph_avg2m=1.1&winddir_avg2m=133&windgustmph_10m=0.4&windgustdir_10m=138&dailyrainin=0.02&weeklyrainin=0.56&monthlyrainin=2.4&solarradiation=0.0&UV=0&dateutc=2021-1-28%205:39:54&action=updateraw&realtime=1&rtfreq=5& HTTP/1.0 root@PiHole:/home/Wetterstation#
Also es kommt nach Umrechnung durch das Skript:
Auffällig dabei eben die Fehlermeldung in Zeile 267. Wenn jetzt Euer Plan ist, das Skript noch zu erweitern, dann warte ich geduldig weiter. Welcher Wert fehlt denn in Zeile 267 bzw. lässt der sich nicht aus den übermittelten Werten errechnen?
Vielen Dank!
-
Updatetime:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.2.0
- ~ Fix Batteriestatus
- ~ Chillfaktor umbenannt auf Windchill/gefühlte Temperatur
- + Berechnung Windchill + Taupunkt für Ecowitt-Protokoll
Wie immer zu finden im GitHub
Wegen Änderungen am Datenpunkt muss auch wetterstation.js ersetzt und einmalig ausgeführt werden.
Der Batteriestatus zeigt nun nicht mehr immer "Alarm" an. Zur besseren Verarbeitung in der VIS lauten dessen Werte nun allerdings 0 = Batterie OK, 1 = Batterie wird leer (einige Sensoren liefern auch eine Art Level von 0 bis 5. Hier ist dann "0" leer und "5" voll )
OSEM-Nutzer schauen wegen des Chillfaktors bitte zusätzlich noch hierNeue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.3.0
- ~ Fix Rundungsfehler Windchill/Taupunkt
- + Min/max Aussentemperatur der letzten 24h
- + Unterstützung für DP60 Sensor
- ~ Fix für Protokoll #9 wg. fehlender Regenrate
Wie immer zu finden im GitHub
Wegen der neuen Datenpunkte muss auch wetterstation.js ersetzt und einmalig ausgeführt werden.
Wäre toll wenn gerade die DP60-Nutzer testen könnten, auch wenn Gewitter derzeit wohl eher unwahrscheinlich sind@XxJooO Der letzte Punkt sollte dein aktuelles Problem fixen. Dann schuldest du mir aber noch die Doku
*EDIT* Allerdings hast du dann keinen "aktuellen Regenstatus" und "letztes Regenereignis". Aber ohne Werte gibt das selbst meine Glaskugel nicht preis -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.3.0
Hi SBorg!
für was ist diese Einstellung gedacht?
Hab die letzten Beiträge überflogen, werde aber daraus nicht schlau.#InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen
#IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
INFLUX_API=10.0.1.22:32543
#Name, User und Passwort der InfluxDB-Datenbank
INFLUX_DB=iobroker
INFLUX_USER=
INFLUX_PASSWORD=Btw., ich kann mich nicht mehr an das Passwort erinnern. Läuft als Docker.
Gibts da überhaupt eins? -
@negalein Hatte ich ganz vergessen nochmals zu erwähnen
@ALL
Für die neue Funktion Min/Max Aussentemperatur der letzten 24 h ist eine geloggte Aussentemperatur per InfluxDB nötig ("Statistiker" haben dies eh). Lasst ihr alles leer weil ihr keine InfluxDB habt/wollt, dann funktioniert aber auch die neue Funktion nicht, aber es kommt somit zu keinem Fehler (wenn der Datenbankname leer ist wird die entsprechende Funktion im Skript übersprungen).User + Password ist nicht unbedingt nötig, außer ihr habt die Authentifizierung in InfluxDB aktiviert. Wer sich nicht sicher ist, einfach mal leer lassen. Sollte zur nächsten vollen Viertelstunde (0, 15, 30, 45) keine Werte in den DPs landen, tja, dann braucht ihr wohl doch den User + PW
...und nochmals erwähnt: um Ressourcen zu sparen wird die Min/max-Temp nur alle volle Viertelstunde abgefragt/erzeugt!
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
um Ressourcen zu sparen wird die Min/max-Temp nur alle volle Viertelstunde abgefragt/erzeugt!
funktioniert!
-
@SBorg
Bin begeistert. Es 'lüppt'! Sogar im Dashboard werden die ersten Punkte angezeigt. Wem dann neben Username/Password noch den Port vermisst - bei mir geht's über 8086.
Ein Frage habe ich aber noch. Die Datenpunkte der Wetterstation werden alle nicht mitack=true
bestätigt. Ist das so gewollt oder ist das dem setBulk geschuldet. -
@sborg wie geil, was du alles machst!
jetzt haben wir soviel neue Werte, da muss ich erstmal die View anpassen...
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Willst Du nicht trozdem einen konvertierten DP dazu nehmen? Dann kann man wenigstens in der Admin Konsole gleich was erkennen und muss nicht erst konvertieren...
Brauch(s)t du/es nicht
Du kannst auch einfach die "Rolle" auf datetime umstellen, dann siehst du auch im Admin-Panel die Uhrzeit/Datum, trotzdem verbleibt der "state" als Unix-Timestamp.So und wie formatiere ich den nun als lesbaren Zeitstempel im Grafana?:)
DP60 kommt rein, beim Rest schaue ich noch.
Schade das der nicht wenigstens auch ne Richtung hat... -
Ich bin auch beigestert. Es läuft alles und wird im ioBroker Angezeigt. Auch die neuen Datenpunkte für die letzten 24h werden aus einer Passwortgesicherten influxDB übertragen. Für DP60 habe ich leider noch keine Werte. Fals ich noch etwas Testen kann sagt bescheidt.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@XxJooO Der letzte Punkt sollte dein aktuelles Problem fixen. Dann schuldest du mir aber noch die Doku
*EDIT* Allerdings hast du dann keinen "aktuellen Regenstatus" und "letztes Regenereignis". Aber ohne Werte gibt das selbst meine Glaskugel nicht preisIhr seid die Besten! Ich konnte es zwar noch nicht ausprobieren, bin aber schon sehr gespannt. Das mit der Doku ist nur fair. Ich werde mich mal daran versuchen und Dir/Euch zukommen lassen. Hoffe, dass das WE mir die Zeit erlaubt.
Grüße
-
Habe auch auf 2.3.0 aktualisiert. Funktioniert 1a wie gewohnt! Vielen vielen Dank . Falls das erste Gewitter stattfindet werde ich die Daten hier bereitstellen
-
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ist das so gewollt oder ist das dem setBulk geschuldet.
Nein und ja. "setBulk" erlaubt kein ack=true. Die beiden Min-/Max Werte schreibe ich einzeln per "set" (da geht mittlerweile ack=true), da ich sie ja auch nur jede Viertelstunde generiere. Ich habe dazu aber einen Issue im GitHub beim Simple-RESTful laufen
Je mehr Up-Votes dort, desto eher wird es ev. auch umgesetzt.