NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wo ist der Einwurfschlitz
hier ziemlich in der Mitte ist ein gelber Schlitz mit schwarzer Schrift
Den hatte ich letztes Jahr schon genutzt wo @SBorg angefangen hat und eine Station brauchte
aber Du hast recht, man könnte mal wieder was nachschieben für diese tolle Arbeit die er leistet.
Es soll sich jetzt keiner angegriffen fühlen, aber eh ihr anderen, gebt euch mal einen Ruck und macht mit
bei einer kleinen Spende.Nachtrag: Kaffeespende ist raus
-
DANKE an die drei Spender
...aber so war der Joke mit der Kaffeekasse nicht gemeintIch habe jetzt mal mein Grafana-Dashboard " 'n wenck" (="ein wenig") umgebaut. Zum einen brauchte ich Platz für den Hitzeindex, zum anderen ging mir die Anzeige des Stat-Panels auf den S*ck...
Herausgekommen ist dabei:
Große Schrift und Verlauf
Realisiert mit dem "Blendstat @farski" - Plugin (wer es nicht kennt: klick mich )
Da kann man wieder alles einstellen wie gehabt. "Wermutstropfen" (siehe Bild): wird in der Übersicht als "Unsigned" tituliert, aber Wayne...Die Tage werde ich dann auch die V2.5.0 offiziell releasen, da sie stable läuft.
Dann kann man auch über "Wünsch dir was..." reden, auch wenn es dann erst mal bei PimpMyStation weitergehen wird. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
DANKE an die drei Spender
...aber so war der Joke mit der Kaffeekasse nicht gemeintSelber schuld
Ich habe jetzt mal mein Grafana-Dashboard " 'n wenck" (="ein wenig") umgebaut. Zum einen brauchte ich Platz für den Hitzeindex, zum anderen ging mir die Anzeige des Stat-Panels auf den S*ck...
Herausgekommen ist dabei:
Puh, da müßte ich auch mal wieder ran, so sieht's zurzeit aus
und ich sollte influxdb mal auf unbegrenzt stellen damit die Werte vom letzten Jahr auch stimmenDie Tage werde ich dann auch die V2.5.0 offiziell releasen, da sie stable läuft.
Dann kann man auch über "Wünsch dir was..." reden, auch wenn es dann erst mal bei PimpMyStation weitergehen wird. -
@nashra Wo kommt denn "Regenvorschau 26 Stunden" her?
-
@rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra Wo kommt denn "Regenvorschau 26 Stunden" her?
Puh, jetzt mußte ich selber erstmal suchen
Das ist ein Skript von @pix in Verbindung mit dem Weatherunderground-Adapter/* Wunderground Regen {1} Abfrage des Weatherunderground Adapters im Bereich Vorhersage, wann der nächste Regen erwartet wird. {1} Findet in den forecastHourly-Datenpunkt den ersten Regen-Eintrag Ausgabe in Text ("kein Regen", "X Stunden (X% [Wahrscheinlichkeit])") {1} {1} {1} http://forum.iobroker.net/viewtopic.php?f=21&t=3447#p31858 {1} 01.08.2016 erstellt von Pix unter Nutzung des obigen Skriptes 28.06.2017 Korrekturen 12.07.2017 Fehler abfangen und Typ Variable auf String geändert 06.03.2019 Code optimiert berücksichtigt Niederschlag in der aktuellen Stunde (Stunde 0) 11.06.2019 auf neue Datenpunkte angepasst für weatherground-Adapter (getestet V3.0.11) 04.08.2019 geändert für Wunderground Adapter 3.1.1 */ const vorstd = 36; // Vorschau in Stunden (weatherundergroudn bietet neuerdings bis 36h Vorschau), kann hier auch kleiner sein const idRegen = "javascript."+ instance + ".Wunderground.Regenvorschau"; // Ziel-Datenpunkt const wunder_inst = "weatherunderground.0."; // Weatherground-Adapter Instanz const logging = false; const fC = false; // nicht dauerhaft auf true stehen lassen. Wegen AAsynchronität dann keine Werte. createState(idRegen, "kein Regen", fC, { name: "Regenvorschau", dec: "Wann gibt es den nächsten Regen", type: "string", role: "text" }); function berechneZeit() { if (logging) log("Berechne Dauer in Stunden bis zum nächsten Regen"); let i = 0; let data; // leer let pop; // leer for (i=0 ; i<vorstd; i++) { if (getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val > 0) { data = getState(wunder_inst + "forecastHourly." + i + "h.precipitation").val; pop = getState(wunder_inst + "forecastHourly." + i + "h.precipitationChance").val; if (logging) log("Regeneintrag gefunden bei " + i + "h " + data + "mm"); if (i == 0) { // wenn jetzt Regen if (logging) log("In dieser Stunde werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)"); setState(idRegen, "jetzt (" + pop + "%)"); } else { if (logging) log("In " + i + " Stunden werden " + data + "mm Regen erwartet (Wahrscheinlichkeit " + pop + "%)"); setState(idRegen, i + " Stunden (" + pop + "%)"); } i=vorstd; // beim ersten Auftreten der Regenwahrscheinlichkeit über 0 abbrechen } if ((i == vorstd) && (pop === 0)) { setState(idRegen, "Kein Regen erwartet (" + pop + "%)"); if (logging) log("Kein Regen erwartet (" + pop + "%)"); } } } // bei jeglicher Aktualisierung von Weatherunderground Berechnung starten on({ id: /^weatherunderground\.[0-9]+\.forecast.*\.[0-9]+h\.precipitation$/, // forecastHourly, forecastDaily, forecast change: "any" }, berechneZeit); // bei Skriptstart berechneZeit();
-
@nashra wie hast du die Tabellen so schön hin bekommen??
-
@ilovegym sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra wie hast du die Tabellen so schön hin bekommen?
Das hatte @crunchip mal bereitgestellt, ich stell dir mal das Panel rein
{ "columns": [ { "$$hashKey": "object:331", "text": "Current", "value": "current" } ], "datasource": "InfluxDB", "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fontSize": "100%", "gridPos": { "h": 6, "w": 6, "x": 9, "y": 7 }, "id": 23763571993, "interval": "", "pageSize": null, "showHeader": true, "sort": { "col": null, "desc": false }, "styles": [ { "alias": "Sonnenstunden", "align": "auto", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "#F2CC0C" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 1, "link": false, "mappingType": 1, "pattern": "Current", "thresholds": [ "10", "60" ], "type": "number", "unit": "dtdurations", "$$hashKey": "object:1124" }, { "alias": "Zeit", "align": "auto", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": null, "mappingType": 1, "pattern": "Metric", "thresholds": [], "type": "string", "unit": "none", "$$hashKey": "object:1125" } ], "targets": [ { "alias": "🌞 Heute", "groupBy": [], "measurement": "javascript.0.Wetterstation.Info.Sonnenschein_Tag", "orderByTime": "ASC", "policy": "default", "query": "SELECT \"value\" / 3600 FROM \"javascript.0.Wetterstation.Info.Sonnenschein_Tag\" WHERE $timeFilter", "rawQuery": false, "refId": "A", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" } ] ], "tags": [] }, { "alias": "🌞aktuelle Woche", "groupBy": [], "measurement": "javascript.0.Wetterstation.Info.Sonnenschein_Woche", "orderByTime": "ASC", "policy": "default", "refId": "B", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" } ] ], "tags": [] }, { "alias": "🌞 aktueller Monat", "groupBy": [], "measurement": "javascript.0.Wetterstation.Info.Sonnenschein_Monat", "orderByTime": "ASC", "policy": "default", "refId": "C", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" } ] ], "tags": [] }, { "alias": "🌞 aktuelles Jahr", "groupBy": [], "measurement": "javascript.0.Wetterstation.Info.Sonnenschein_Jahr", "orderByTime": "ASC", "policy": "default", "refId": "D", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" } ] ], "tags": [] }, { "alias": "🌞 Letztes Jahr", "groupBy": [], "measurement": "javascript.0.Wetterstation.Info.Sonnenschein_VorJahr", "orderByTime": "ASC", "policy": "default", "refId": "E", "resultFormat": "time_series", "select": [ [ { "params": [ "value" ], "type": "field" } ] ], "tags": [] } ], "timeFrom": null, "timeShift": null, "title": "", "transform": "timeseries_aggregations", "transparent": true, "type": "table-old" }
-
@nashra Dankeschön!
-
Hallo zusammen,
ich möchte ein Lob aussprechen, echt super Arbeit.
Die Wiki ist einer der Besten die ich bisher gesehen habe,
die Installation ist "einfach" und es läuft stabil.Thanks
-
@Haifisch_777 + gerade in der Wiki steckt mittlerweile schon einiges an Arbeit. Die vielen Versionen sind nicht von ungefähr...
Sodele, V2.5.0 goes final:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.5.0
- ~ Fix für Protokoll #9 wg. fehlender Regenrate
- + Min/Max/Avg Außentemperatur vor einem Jahr
- + Unterstützung von max. 4 DP70 Sensoren
- ~ Codeoptimierungen
Wie immer zu finden im GitHub
Wegen der neuen Datenpunkte muss auch wetterstation.js ersetzt und einmalig ausgeführt werden.
Min/Max/Avg-Außentemperatur funktioniert nur bei aktiver InfluxDB + entsprechender Aktivierung in der *.conf!
Das Release ist mit der Beta-Version identisch. Wer also schon die V2.5.0 als Beta nutzt, braucht nicht updaten -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Sodele, V2.5.0 goes final:
Das Release ist mit der Beta-Version identisch. Wer also schon die V2.5.0 als Beta nutzt, braucht nicht updaten -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Sodele, V2.5.0 goes final:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.5.0
Läuft
und diesmal habe ich die Wetterstation.js nicht vergessen -
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
und diesmal habe ich die Wetterstation.js nicht vergessen
Loggt schon wer seit einem Jahr die Außentemperatur bzw. hat eine Anzeige bei Min/Max/Avg - 365 Tage (ich meine nicht die +/- 99.99°C )? Zum testen konnte ich bei mir nur 10 Monate nehmen + hat damit funktioniert, aber man weiß ja nie...
-
@sborg
Moin, gestern habe ich diese Möglichkeit der Einbindung einer Wetterstation erst entdeckt. Das sieht ja wirklich sehr gut aus. Besten Dank.
Dann habe ic V2.5.0 installiert, nach Anleitung. Aber ich habe da Probleme.
Die Daten werden von einer DNT Weatherscreen PRO geliefert, im IOBroker auch angezeigt.
Erst sind sie grün, dann kurz schwarz, abschließend rot.
In Grafana kann ich mir einige Daten anschauen, andere nicht, weil in der Datenbank angeblich keine Daten sind.
Luftfeuchtigkeit wird angezeigt.
Aussentemperatur nicht.
Als Beispiel.
Was mache ich falsch, dass einige Daten gespeichert werden, andere wieder nicht?DNT Weatherscreen PRO
Raspberry 4b
InfluxDBBrauche ich für die Datenbank einen weiteren Adapter? Einen für Grafana habe ich eingerichtet.....
pi@raspi-iobroker:~ $ sudo systemctl status wetterstation ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-02-20 15:55:00 GMT; 4h 57min ago Main PID: 5214 (wetterstation.s) Tasks: 5 (limit: 4915) CGroup: /system.slice/wetterstation.service ├─ 5214 /bin/bash /home/pi/Wetterstation/wetterstation.sh ├─28702 /bin/bash /home/pi/Wetterstation/wetterstation.sh ├─28703 timeout 126 nc -nlvw 1 -p 4283 ├─28704 sed -n 1 p └─28705 nc -nlvw 1 -p 4283
Feb 20 20:49:30 raspi-iobroker.site wetterstation.sh[5214]: Connection from 192.168.0.48 42346 received! Feb 20 20:49:32 raspi-iobroker.site wetterstation.sh[5214]: Listening on [0.0.0.0] (family 2, port 4283) Feb 20 20:50:10 raspi-iobroker.site wetterstation.sh[5214]: Connection from 192.168.0.48 13795 received! Feb 20 20:50:13 raspi-iobroker.site wetterstation.sh[5214]: Listening on [0.0.0.0] (family 2, port 4283) Feb 20 20:50:34 raspi-iobroker.site wetterstation.sh[5214]: Connection from 192.168.0.48 20228 received! Feb 20 20:50:36 raspi-iobroker.site wetterstation.sh[5214]: Listening on [0.0.0.0] (family 2, port 4283) Feb 20 20:51:06 raspi-iobroker.site wetterstation.sh[5214]: Connection from 192.168.0.48 8070 received! Feb 20 20:51:08 raspi-iobroker.site wetterstation.sh[5214]: Listening on [0.0.0.0] (family 2, port 4283) Feb 20 20:51:38 raspi-iobroker.site wetterstation.sh[5214]: Connection from 192.168.0.48 9672 received! Feb 20 20:51:40 raspi-iobroker.site wetterstation.sh[5214]: Listening on [0.0.0.0] (family 2, port 4283) pi@raspi-iobroker:~ $
-
@christian-3 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
In Grafana kann ich mir einige Daten anschauen, andere nicht, weil in der Datenbank angeblich keine Daten sind.
Luftfeuchtigkeit wird angezeigt.
Aussentemperatur nicht.
Als Beispiel.
Was mache ich falsch, dass einige Daten gespeichert werden, andere wieder nicht?Du benötigst Influx und den zugehörigen Influx-Adapter.
Dann musst du alle DP, die du in Grafana anzeigen möchstest, mit dem Influx-Adapter loggen (Schraubenschlüssel beim jeweiligen DP). -
@negalein Schon klar und auch installiert, sonst könnte ich mir wohl kaum die Luftfeuchtigkeit anzeigen lassen.
-
@christian-3 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Schon klar und auch installiert, sonst könnte ich mir wohl kaum die Luftfeuchtigkeit anzeigen lassen.
Sorry, wollte nur helfen.
Es kann ja sein, dass das oder das oder das nicht gemacht/vergessen wurde.Du hast gefragt
Brauche ich für die Datenbank einen weiteren Adapter? Einen für Grafana habe ich eingerichtet.....
.
Da stand nichts von Influx.sonst könnte ich mir wohl kaum die Luftfeuchtigkeit anzeigen lassen.
Könnte, kann alles sein.
Können wir nicht wissen, von wo du die Luftfeuchte herbekommst.Zeig zumindest mal Screenshots. Dann sieht man was.
werden alle DP befüllt?
Einstellung zum loggen?
... -
@negalein Meine Vermutung liegt ja eher in der Datenbank bzw. in deren Befüllung. (grün/schwarz/rote Werte)
In den Logs finde ich folgenden Hinweis, mit dem ich nichts anfangen kann.influxdb.0 2021-02-20 20:09:53.716 warn / "{\"error\":\"partial write: field type conflict: input field \\\"value\\\" on measurement \\\"javascript.0.Wetterstation.Aussentemperatur\\\" is type float, already exists as type string dropped=1 influxdb.0 2021-02-20 20:09:53.716 warn (31169) Error on writePoint("{"value":7.38,"time":"2021-02-20T20:09:53.702Z","from":"system.adapter.influxdb.0","q":0,"ack":false}): Error: {"error":"partial write: field type conflict: input field \
-
@christian-3 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Erst sind sie grün, dann kurz schwarz, abschließend rot.
Hi, dass ist "normal" und dem Simple-RESTful-Adapter geschuldet, da man beim gleichzeitigen schreiben vieler Werte kein ack=true setzen kann (dann wären sie schwarz). Einige Werte schreibe ich einzeln, da geht es dann = die sind schwarz
Also nix daraus machen, ist an der Stelle reine Kosmetik@christian-3 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
mit dem ich nichts anfangen kann.
influxdb.0 2021-02-20 20:09:53.716 warn / "{\"error\":\"partial write: field type conflict: input field \\\"value\\\" on measurement \\\"javascript.0.Wetterstation.Aussentemperatur\\\" is type float, already exists as type string dropped=1 influxdb.0 2021-02-20 20:09:53.716 warn (31169) Error on writePoint("{"value":7.38,"time":"2021-02-20T20:09:53.702Z","from":"system.adapter.influxdb.0","q":0,"ack":false}): Error: {"error":"partial write: field type conflict: input field \
Ich schon
Zum kleinen Teil Anwenderfehler, zum Großteil Softwareproblem und zum Teil auch einfach kein Glück gehabt...
Ich werde zu dem Thema wohl noch einen Wiki-Artikel verfassen...
Du hast beim Einrichten des Influx-Logging für "Aussentemperatur" (die zB. bei dir nicht funktioniert) den Datentyp auf "Automatic" stehen gelassen. Soweit eigentlich richtig, aber dummerweise war dann der 1. Messwert der in die neue Datenreihe geschrieben wurde nicht eindeutig genug. So hat er ihn nicht als Zahl (=float), sondern als Text (=string) erkannt und die Datenreihe "Aussentemperatur" so angelegt, dass alle Werte "string" sind.
Jetzt kommt ein neuer Messwert vom Typ "float" und kann dann nicht in die InfluxDB geschrieben werden, da er ja einen string möchte:measurement \"javascript.0.Wetterstation.Aussentemperatur\" is type float, already exists as type string dropped=1
"Messwert Aussentemperatur ist eine Zahl, existiert aber als Text --> schmeiße ihn weg"
Du musst also zuerst beim loggen des DPs "Aussentempertur" von "Automatic" auf "Number/Nummer" umstellen.
Da man leider den Datentyp einer angelegten Datenreihe in Influx nachträglich nicht mehr ändern kann (string-->float), musst du in Influx die kpl. Datenreihe "Aussentemperatur" droppen. -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Du musst also zuerst beim loggen des DPs "Aussentempertur" von "Automatic" auf "Number/Nummer" umstellen.
Da man leider den Datentyp einer angelegten Datenreihe in Influx nachträglich nicht mehr ändern kann (string-->float), musst du in Influx die kpl. Datenreihe "Aussentemperatur" droppen.Nachdem ich da lange nach gesucht hatte als Anfänger...
influx -username <user> -database <db>( wahrscheinlich iobroker ) -password <pw
drop measurement "javascript.0.Wetterstation.Aussentemperatur"Ich habe auch öfter noch das Problem das nichts/nicht das richtige angezeigt wird weil
- noch keine aggregierten Werte da sind (Woche Monat Jahr)
- per default alles auf mean() steht (-> select last())
Und manchmal findet er auch einfach keine Werte bei mir was aber an dem Datentyp roblem liegen kann, das habe ich bestimmt auch nicht richtig eingestellt...