NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg
Ich hab ja für fast alles nen eigenen Container. Grafana & Influx in einem, das Script in einem anderen. Von Daher warte ich auch gerne noch die 4xx te Lösung ab. Nur blöd, wenn man soviel Zeit reinsteckt und hinterher war's das nicht. Dewegen möchte ich nochmals Mut zusprechen und ganz deutlich DANKE sagen.Ich sehe fast alles immer positiv. Durch Fehler lernt man ja auch
...und weil es so schön ist:
Lüppt
Da dies allerdings vom WLAN-Skript getriggert wird und wohl keiner im 30 Sekundenraster (oder wie oft ihr die Daten vom Display empfangt) die Werte braucht (es braucht zwar kaum Ressourcen auf dem Influx-Client, aber wenig ist halt auch nicht nichts), lasse ich sie nur im 15 Minutenraster generieren (also xx:00, xx:15,...xx:45 Uhr).
Dafür lohnt aber aktuell noch kein neues Release, wenigstens noch einen Sensor mit dazu packenWer wollte denn Zugriff auf "PimpMyStation"? Bitte hier oder per Chat die Wünsche mitteilen, ich editiere es dann hinein. Ich musste leider schon öfters bei Google-Spreadsheets die Erfahrung machen, dass mehrere Köche doch den Brei verderben. Ich habe es auch schon öfters mal zerschossen, ist halt EXCEL ähnlich, aber halt kein EXCEL...
...und wegen Zeitmangels aktuell hier nichts Neues -
@sborg
Was muss ich tun, damit es auch bei mir 'lüppt'? -
@rene55 Auf die kommende V2.3.0 warten
Hat mal wer eine Aufstellung über alle Zusatzsensoren? Ich bräuchte
- Bezeichnung (DP50, DP100, DP60)
- was der Sensor eigentlich kann
- am idealsten wäre natürlich der --data/--debug String
- maximal mögliche Anzahl der Sensoren
Bezeichnung Beschreibung Datenstring max. Anzahl DP50 / WH31A Temperatur + Luftfeuchte --- 8 DP60 Blitzsensor &lightning_time=1611479261&lightning_num=16&lightning=12 &wh57batt=5 1 DP100 Bodenfeuchte --- 8 DP200 PM2.5 Feinstaub &pm25_ch1=29.0&pm25_avg_24h_ch1=22.0&pm25batt1=5 4 -
@sborg
for Gateway DP1500/GW1000:
humidityin
tempincsoil moisture sensors DP100/WH51:
soilbatt1..8 (battery in volt)
soilmoisture1..8for Multi-Temp/Hum-sensors DP50/WH31:
batt1..8 (battery-Status; 1 = Alarm, 0 = ok)
humidity1..8
temp1..8cfor PM-sensors DP200/WH41/WH43:
pm25_avg_24h_ch1..4
pm25_ch1..4
pm25batt1..4 (Battery-Status; 5 = max)
pm25_AQI_ch1..4
pm25_AQI_avg_24h_ch1..4
pm25_AQIlvl_ch1..4 (Level 1..6)
pm25_AQIlvl_avg_24h_ch1..4 (Level 1..6)Status/Activity/Tracker:
running (1 = startet, 0 = stopped)
loxtime (Loxone-time)
wswarning (weather station does not send data)
sensorwarning (mandatory sensor is missing)
batterywarning (Battery-warning)
stormwarning (Stormwarning)
tswarning (Thunderstorm-warning)
updatewarning (Firmware-update available)for lightning sensor WH57/DP60:
lightning (distance last lightning in km)
lightning_time (time of last lightning Unixtime)
lightning_loxtime (time of last lightning Loxone-time)
lightning_num (count of lightnings)
wh57batt (Battery-Status; 5 = max)for soil/water-temp-sensor WH34:
tf_chNc (temperature in °C; N=1..8)
tf_battN (battery; N=1..8)Quelle: (Hier)
-
@a200 und @SBorg und alle anderen Freunde der gepflegten Wetterdokumentation,
inzwischen habe ich das Übermittlungsproblem der Regenwerte meiner Sainlogic FT 0300 mit Einlöten einer besseren Antenne lösen können. Das verbaute Dingen ist ner Kugelschreiberfeder ähnlich oder auf deutsch: Schrott...
Wie auch immer werden nun Werte übermittelt. Allerdings fällt mir auf, dass einige DPs ungefüllt bleiben:
In Ermangelung ausreichender JS-Kenntnisse kann ich leider das Script nicht verstehen. Werden bei Euren Stationen die fehlenden Werte von der Station übermittelt oder werden sie berechnet? Wenn sie übermittelt werden, dann schreibe ich mir zur Selbstberechnung ein Skript in Blockly, da ich die Werte ganz spannend finde. Ich möchte eben nur ausschließen, dass bei mir mit dem Skript was nicht stimmt. Bei mir wird in der Wallbox die Tagesmenge aufsummiert und am Ende des Tages der Wert auf 0 gesetzt. Man kann der Box wohl auch Monats- und sonstige Werte entlocken. Ich zweifle aber, dass die übermittelt werden.
Ansonsten auch von mir definitiv Daumen hoch und weiter so, erwarte mit Freude die nächste Version
-
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...