NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@boronsbruder Danke.
2x access denied heute mittag, aber seitdem nichts - nehme an das waren Versuche von mir. Hab den wetterstation service neu gestartet um einen etwaigen "habe aufgegeben" Status zu resetten - nichts...
dafür habe ich aber nochmal nach der Doku geschaut und auch eine test option gefunden... aber das ergebnis sagt mir jetzt leider nicht so richtig was:
INFLUX_WEB=HTTP INFLUX_API=127.0.0.1:8086 INFLUX_BUCKET=wetterstation INFLUX_TOKEN=<token> INFLUX_ORG=<org> ~/wetterstation$ ./wetterstation.sh --influx_test Testing InfluxDB... min/max Aussentemperatur 24h: °C °C
Vieleicht habe ich auch ein falsches Verständnis - schreibt das shell skript nach Influx oder ist das der Influx Logger im IOBroker?
Hab natürlich dummerweise auch die Variablen umgebogen weil ich 2 Basis Stationen habe und nicht beide 0_userdata.0.Wetterstation.Aussentemperatur nutzen können...
Das ist mir schon bewusst geworden, wollte dann einfach das Statistik js anpassen um die anderen DP zu nehme, aber dann bin ich über den leeren Bucket gestolpertWenn das shell skript in den konfigurierten Bucket schreibt, dann müssten ja zu mindestens die Werte dort stehen (mit dem Standard Namen)- das Statistik Script würde sie nicht finden aber es wäre nicht leer.
Das impliziert, dass das Logging nach Influx über IOBroker läuft... und da logge ich gar nichts in die zweite Influx Instanz, sondern alles in meine alte Influx1 (weil da Grafana drauf zugreift). Das würde dann wohl erklären warum alles leer ist.
Das sollte aber dann ja kein Problem sein ein zusätzliches Logging in die 2. Influx instanz zu machen... muss ich nur mal rausfinden wie man den bucket anspricht oder ob das der dbname ist den ich dann gerade auf iobroker habe.
Muss ich die Tage mal weiterschauen, aber klingt jetzt erstmal logisch, danke.Edit - ah ich sehe, Bucket=DB, das ich brauche also 3 Log Adapter, einmal Influx v1 (alt), je einmal v2 pro Wetterstation.
Dann kann ich auch die default Namen nehmen, muss aber dann die v1 Influx Daten in die neue db übernehmen und dabei umnennen.Fragt sich dann nur wie ich das Statistik Skript für ältere Zeiträume laufen lassen kann (wenn es das nicht automatisch macht...)
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@babl sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Heute habe ich wieder komische Fehlermeldungen im Log.
Heute 01:03 error javascript.0 at processTicksAndRejections (node:internal/process/task_queues:95:5) Heute 01:03 error javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1228:38 Heute 01:03 error javascript.0 Statistik:639:27) Heute 01:03 error javascript.0 Error in callback: TypeError: Cannot read properties of null (reading '0')
Das muß vom Statistik Script herkommen, vielleicht hast du mal zeit und schaust drüber. Danke
An alle Statistik-Skript Nutzer:
Auch hier erkennt er wohl wie er will. Der Datenpunkt-Inhalt [neue Version des Statistik-Skripts vorhanden?] ist ein String ("---" oder die GitHub-URL). Den Datenpunkt auf "gemischt" umstellen, dann ist Ruhe und die Fehlermeldung im Log ist weg:
Habe den DP auf "gemischt" umgestellt, Fehlermeldung kommt aber noch
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@babl sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Heute habe ich wieder komische Fehlermeldungen im Log.
Heute 01:03 error javascript.0 at processTicksAndRejections (node:internal/process/task_queues:95:5) Heute 01:03 error javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1228:38 Heute 01:03 error javascript.0 Statistik:639:27) Heute 01:03 error javascript.0 Error in callback: TypeError: Cannot read properties of null (reading '0')
Das muß vom Statistik Script herkommen, vielleicht hast du mal zeit und schaust drüber. Danke
An alle Statistik-Skript Nutzer:
Auch hier erkennt er wohl wie er will. Der Datenpunkt-Inhalt [neue Version des Statistik-Skripts vorhanden?] ist ein String ("---" oder die GitHub-URL). Den Datenpunkt auf "gemischt" umstellen, dann ist Ruhe und die Fehlermeldung im Log ist weg:
Habe auch den Datenpunkt auf gemischt umgestellt,
Fehlermeldung kommt trotzdem noch.
Heute 01:03 error javascript.0 [2 Einträge] at processTicksAndRejections (node:internal/process/task_queues:95:5) Heute 01:03 error javascript.0 [2 Einträge] at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1228:38 Heute 01:03 error javascript.0 [2 Einträge] Statistik:639:27) Heute 01:03 error javascript.0 [2 Einträge] Error in callback: TypeError: Cannot read properties of null (reading '0')
Gruß
-
@rand
Meines Wissens sagte @Sborg irgendwann "Mein Skript schreibt nichts in die InfluxDB"
Du musst die Objekte selbst mitschreiben.Zitat aus der Installationsanleitung "Wetterstation-Statistik":
Voraussetzung: laufendes WLAN-Wetterstation Shellscript, laufender Javascript- und InfluxDB-Adapter im ioBroker, aktiviertes logging per InfluxDB der drei benötigten Datenpunkte "Aussentemperatur", "Wind_max" und "Regen_Tag" (falls diese noch nicht für Grafana oä. schon geloggt werden)
-
Ja, mein letzter Beitrag war mehr eine Dokumentation meines Denkprozesses bei dem ich zum gleichen Ergebnis gekommen bin;)
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Meines Wissens sagte @Sborg irgendwann "Mein Skript schreibt nichts in die InfluxDB"
Mehr als einmal
Das macht der Influx-Adapter schon gut und komfortabel, da muss ich nicht nochmals das Rad erfinden.An alle Statistiker:
V2.0.7 liegt auf GitHub
Beseitigt den mitternächtlichen Fehler (DP kann auf "gemischt" bleiben oder wieder auf "Text" zurückgestellt werden).
Der Grund war/ist eine Änderung auf GitHub. Da schlug einfach die Update-Prüfung fehl.
Wie üblich bei Javascripten: Script stoppen, dann ersetzen und speichern, dann wieder starten. Man kann es zwar auch im laufenden Betrieb ersetzen/speichern und dann das Script nur restarten. Dann funktioniert es aber nicht, da die geänderte Funktion nicht ausgeführt (die wird nur beim Start [und nicht beim Restart] geladen) wird, sondern die alte aus dem Arbeitsspeicher. -
@sborg 3.5.0 ist installiert, fehlerfrei bis jetzt
statistikscript v2.07 ebenfalls installiert, bisher fehlerfrei, alles andere ob die Fehler nun nach Mitternacht weg sind, schreibe ich dir die nächsten Tage.
Update: Fehler sind weg
P.S.
Danke für deine Arbeit.
Gruß
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Meines Wissens sagte @Sborg irgendwann "Mein Skript schreibt nichts in die InfluxDB"
Mehr als einmal
Das macht der Influx-Adapter schon gut und komfortabel, da muss ich nicht nochmals das Rad erfinden.Lange nicht mitgelesen, lief ja;)
Noch eine (ggf schonmal beantwortete Frage) - wenn das Shell Skript ja keine direkte DB Verbindung hat, warum ist dann die Umstellung auf Influx2 relevant?
Das Interface zu Influx ist dann ja nur der Logging Adapter, der ja sowohl mit Influx 1 als auch 2 umgehen kann (neue Grafana Dashboards sind ein anderes Thema) ?Und wenn ich schon doofe Fragen stelle - ich nehme an die neueren "Smart" Geräte von Ecowitt (in meinem Fall WittFlow WFC01) werden eher nicht integriert werden oder?
Die pushen ja keine Wetterdaten sondern müssten per API abgefragt oder gesteuert werden, das ist ja ne völlig andere Logik... -
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Noch eine (ggf schonmal beantwortete Frage) - wenn das Shell Skript ja keine direkte DB Verbindung hat, warum ist dann die Umstellung auf Influx2 relevant?
Nicht zwingend. Guggst du https://github.com/SBorg2014/WLAN-Wetterstation/wiki bei den Werten.
Wenn du die Werte mit Punkt "4" nicht willst/brauchst, benötigst du auch keine InfluxDB. ZB. der Wert "Höchsttemperatur der letzten 24h" liefert die Station/Gateway nicht. Um den aber zu bestimmen brauche ich die Messwerte der letzten 24h = eine Datenbank. InfluxDB werden die meisten schon wegen Grafana haben, also brauche ich keine eigene programmieren. Selbst wenn, würde die nix besser machen (...und jeder Entwickler ist wohl faul, zumindest ich, also warum nicht auf was fertiges zurückgreifen? )
Und wenn ich schon doofe Fragen stelle - ich nehme an die neueren "Smart" Geräte von Ecowitt (in meinem Fall WittFlow WFC01) werden eher nicht integriert werden oder?
Die pushen ja keine Wetterdaten sondern müssten per API abgefragt oder gesteuert werden, das ist ja ne völlig andere Logik...Gübbet keine doofen Fragen
Da ich, anders als manch Youtuber (nein, das kritisiere ich nicht), nicht davon lebe, ist die benötigte Hardware mein "Privatvergnügen". Soll heißen, ich muss es kaufen und kann es dann gar nicht selbst gebrauchen. Für eine API-Abfrage, welche natürlich implementierbar wäre falls sie zugänglich ist, genügt mir anders als bei den Stationen kein Datenstring den ich nach meinen Wünschen auch manipulieren (also bspw. einen statischen Messwert einpatche, um ihn zu simulieren) kann, braucht es hier schon Hardware.
Ich hatte mal bei Ecowitt zwecks Support/Unterstützung angefragt und sogar eine Zusage bekommen. Leider kam nie etwas an und das Ganze verlief im Sande. Wer also will und Zeit hat kann gerne mal einen Vorab-Kontakt herstellen. Vielleicht wollen sie jetzt ja auch schon gar nicht mehr. -
[erledigt]: DPs auf gemischt umgestellt.
Hab seit heute nach Update auf Ver 3.5 folgende Fehlermeldungen im logsimple-api.0 2025-05-26 01:43:13.088 info State value to set for "0_userdata.0.Wetterstation.Regen_Stunde" has to be type "number" but received type "string" simple-api.0 2025-05-26 01:43:13.086 info State value to set for "0_userdata.0.Wetterstation.Sonnenstrahlung" has to be type "number" but received type "string" simple-api.0 2025-05-26 01:43:13.083 info State value to set for "0_userdata.0.Wetterstation.Wind" has to be type "number" but received type "string" simple-api.0 2025-05-26 01:43:13.082 info State value to set for "0_userdata.0.Wetterstation.Taupunkt" has to be type "number" but received type "string" simple-api.0 2025-05-26 01:43:13.081 info State value to set for "0_userdata.0.Wetterstation.Innentemperatur" has to be type "number" but received type "string"
Im wetterstation.js sind die DPs aber auch mit number definiert.
Wie bekomme ich das korrigiert? -
eigentlich ist alles richtig, aber... bei Werten mit Komma oder Punkt wertet der Simple-Api wohl das als String, daher musst du
entweder alle angemeckerten Datenpunkte manuell auf String aendern
oder
die Datenpunkte loeschen, und im Script anstatt Number String schreiben. -
und das Statistikskript funktioniert dann weiter wenn Daen als String kommen?
-
@tritor Ich habe es oben zwar gelesen, möchte aber trotzdem noch mal für ALLE darauf eingehen.
Die Datenpunkte die angemeckert werden bitte auf
gemischt
umstellen. "String", wie in der Fehlermeldung, mag zwar auch funktionieren, aber ich konnte den genauen Fehler nicht analysieren. Entweder ist die Datenmenge für den Simple-API zu groß oder es kommt zu einem Timing-Problem. Eigentlich ist ein Wert von 1.2 (also float) immer eine Zahl, selbst 1 (also integer) sollte als Zahl erkannt werden.
Leider wird es mal als Zahl erkannt, mal als Text. Deswegen auch auf "gemischt" stellen, sonst meckert er dann wieder genau anders herum...has to be type "string" but received type "number"
Naxhteil von "gemischt" gibt es keinen direkten. InfluxDB loggt es als Zahl, History ebenfalls, das Statisk-Script interessiert es ebenfalls nicht. Nur wenn man per Javascript den Datentyp ("typeOf") abfragt erhält man nun nicht mehr "Number".
Ich muss mal schauen ob das mit der Rest-API besser funktioniert. Aber ihr ahnt es sicherlich schon, die Liebe Zeit...
-
@sborg
Ich habe gestern die Ecowitt WG3000A erfolgreich eingebunden. Damit wird die Liste der kompatiblen Geräte wieder größer
-
@martybr sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ecowitt WG3000A
welche ist das? Finde nur eine GW3000
-
@negalein
Ist auch eine GW3000A. Tippfehler, sorry -
@martybr sagte in [Linux Shell-Skript] WLAN-Wetterstation:
GW3000A
Merci
Ah, das ist nur das Gateway.
Was hast du da alles angebunden? -
@negalein
Das Gateway soll alle Ecowitt Geräte anbinden. Ich habe die alte Wetterstation, die ich mit dem Gateway GW1000A zusammen gekauft hatte ohne Probleme am neuen GW3000 anmelden und in den ioBroker integrieren konnte.
Zusätzlich habe ich den Bodefeuchtesensor DP51 (heisst DP100 bei Froggit) angebunden.Der GW3000 hat zusätzlich eine LAN-Schnittstelle, das erleichtert die Anbindung wenn man die zusätzliche Sicherheit einer LAN präferiert.
Ich hatte vor dem Umbau nach Kompatibilität und Anbindung recherchiert. Aber der GW3000 unterstützt das gesamte Ecowitt / Froggit Angebot. Die Einrichtung war wirklich einfach.Edit:
Beim großen Online Kaufhaus mit A*** gerade für ca. ca. 59 € im Angebot. -
@negalein
ist quasi der große Bruder vom GW2000 mit externer Antenne und glaube ich sogar ne SD-Karte ist möglich und in der Regel funktioneren alle Geräte der älteren Gateways.
Zumindest hat der Umstieg bzw. im Moment der Parallelbetrieb des gw1000 und gw2000 ohne Probleme funktionert.
Das GW1000 empfängt nur die Bodenfeuchte-Sensoren für die Steuerung meiner Bewässerung (und die Aussentemperatur weil sonst das Skript von @SBorg zickt :D)
So kannst übrigens auch nen Testlauf wegen Empfang machen. Einfach alle Sensoren in die neue Station einpflegen und dann die alte später abschalten. -
@boronsbruder
Da war bei mir einfacher. Der GW3000 hat alle Geräte/Sensoren gefunden und automatisch eingelesen.
Und ja, er hat eine SD-Karte, die man Remote auslesen kann. Da läuft wohl ein kleiner Web-Server. Die Abfrage der Web-Schnittstelle ist nun auch per PW gesichert.