NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg danke 2.05 läuft
-
@babl Danke für die Rückmeldung
-
Hallo
sagt dir dieser Error etwas?
javascript.1 2024-11-20 01:03:00.022 error at processImmediate (node:internal/timers:483:21) javascript.1 2024-11-20 01:03:00.022 error at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:381:37) javascript.1 2024-11-20 01:03:00.022 error at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45) javascript.1 2024-11-20 01:03:00.022 error at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38) javascript.1 2024-11-20 01:03:00.021 error at Object.<anonymous> (script.js.Wetter.Wetterstatistik:195:43) javascript.1 2024-11-20 01:03:00.021 error at Array.reduce (<anonymous>) javascript.1 2024-11-20 01:03:00.021 error Error in callback: TypeError: Reduce of empty array with no initial value javascript.1 2024-11-20 01:03:00.019 error script.js.Wetter.Wetterstatistik: Fehler beim Lesen der InfluxDB: Invalid call influxdb.0 2024-11-20 01:03:00.014 error query: Error: error parsing query: found FROM, expected SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL at line 1, char 1
was geschiet da in Zeile 195?
let MonatsTemp_Durchschnitt = Math.round(((((getState(PRE_DP+'.aktueller_Monat.Temperatur_Durchschnitt').val)*(zeitstempel.getDate()-1))+Temp_Durchschnitt)/zeitstempel.getDate())*100)/100;
irgendwas passt da nicht. wenn du dir die Werte anschaust.
-
@negalein
Die Ursache ist eine falsche Abfrage der InfluxDBinfluxdb.0 2024-11-20 01:03:00.014 error query: Error: error parsing query: found FROM, expected ...
Das Ergebnis ist dann ein leeres Array was zu dem Fehler in Zeile 195 führt:
Reduce of empty array with no initial value
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die Ursache ist eine falsche Abfrage der InfluxDB
komisch.
Hab gerade nochmal das Script gecheckt.Da ist das richtige Bucket eingetragen.
Edit: ah, ich Depp!! Hab die falsche Influx Instanz eingetragen gehabt.
-
Hallo zusammen.
Nun bräuchte auch ich mal eure Hilfe.
Ich hatte meine Wetterstation bereits ca. 2 Jahre problemlos als Docker-Container auf einer Synology am laufen.
Nun bin ich dabei, mein gesamtes System auf unRaid umzuziehen. Aber an der Wetterstation, bzw. an der Einrichtung des Containers dafür scheitere ich momentan kläglich. Wie bereits erwähnt, habe ich das ganze ja schonmal erfolgreich eingerichtet.... Leider kann ich mich daran nicht mehr wirklich erinnern (was dafür spricht, dass es damals problemlos klappte).
Mein erster Versuch war nun, einfach meinen (funktionierenden) Synology-Container in Unraid zu importieren und die Adressierungen anpassen. Leider funzte das nicht (k.A. warum).
Beim 2. Versuch, den Container neu (mithilfe der docker-compose.yml von github) auszurollen, ist das Ergebnis im Endeffekt das gleiche. --> Container läuft, aber keine Daten im iobroker.
Deshalb mal eine grundsätzliche Frage: Wenn der Container nach der vorgeschlagenen .yml erstellt ist, und die wetterstation.conf, wetterstation.sh und wetterstation.sub im gemounteten Ordner liegen, was muss dann innerhalb des Containers noch konfiguriert werden?Danke
-
So, auch mal wieder im Lande
Waren jetzt doch schon wieder fast 4 Wochen, wird auch in naher Zukunft nicht besser werden.@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
was geschiet da in Zeile 195?
Auch wenn schon erledigt, dies ist Javascript typisch. Die ausgegebene Fehlerzeile ist meist nicht das ursächliche Problem, nur da hat es dann letztendlich "geknallt". Der Fehler war, wie bereits behoben, Eingangs die fehlerhafte Influx-Abfrage.
-
@iotobias sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nun bräuchte auch ich mal eure Hilfe.
Da muss ich leider passen. Docker nutze ich nicht und kenne mich damit auch mehr als bescheiden aus. Die YAML stammt von einem User
Eine mögliche Ursache wäre aber ein nicht geöffneter Port oder falsche IP-Adresse. Dann schickt die Station die Daten nicht an den Container bzw. blockt sie ab.
Test ob Daten ankommen (Display/Gateway läuft):
./wetterstation.sh --data
im Installationsverzeichnis ausführen.
Die 1. Zeile ist die IP meines ioB-Rechners mit Port des SimpleAPI-Adapters
"Listening 0.0.0.0 1080" bedeutet dann lausche auf allen Netzwerkinterfaces (also bspw. LAN, WLAN,...) auf Port 1080
"1080" ist der Port an den das Display/Gateway seine Daten sendet. Ev. musst du da nun einen anderen nutzen als den Beispielport.btw: bei mir kam da kein Paket, da das Skript aktiv bei mir lief. Zwei Programme/Dienste auf einem Port geht nicht gut.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@iotobias sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nun bräuchte auch ich mal eure Hilfe.
Da muss ich leider passen. Docker nutze ich nicht und kenne mich damit auch mehr als bescheiden aus. Die YAML stammt von einem User
Eine mögliche Ursache wäre aber ein nicht geöffneter Port oder falsche IP-Adresse. Dann schickt die Station die Daten nicht an den Container bzw. blockt sie ab.
Test ob Daten ankommen (Display/Gateway läuft):
./wetterstation.sh --data
im Installationsverzeichnis ausführen.
Die 1. Zeile ist die IP meines ioB-Rechners mit Port des SimpleAPI-Adapters
"Listening 0.0.0.0 1080" bedeutet dann lausche auf allen Netzwerkinterfaces (also bspw. LAN, WLAN,...) auf Port 1080
"1080" ist der Port an den das Display/Gateway seine Daten sendet. Ev. musst du da nun einen anderen nutzen als den Beispielport.btw: bei mir kam da kein Paket, da das Skript aktiv bei mir lief. Zwei Programme/Dienste auf einem Port geht nicht gut.
Vielen Dank für die Antwort.
Ja, diese Dinge habe ich bereits getestet. In punkto Container komm ich nicht weiter.
Mittlerweile habe ich die Installation in einer schlanken Ubuntu-VM aufgesetzt, dies hat auf Anhieb geklappt. Das lass ich nun erstmal so, wenn auch vielleicht etwas "übertrieben". -
Re: [Linux Shell-Skript] WLAN-Wetterstation
Hallo zusammen, u.a. die DP Temp_Aussen_Heute_max & Temp_Aussen_Heute_max sind bei mir immer die aktuelle Tempertur und sind identisch. Offensichtlich bekomme ich keine Verbindung zur Influxdb2 hin:
wetter@iobroker:~/wetterstation $ sudo systemctl stop wetterstation wetter@iobroker:~/wetterstation $ . ./wetterstation.conf wetter@iobroker:~/wetterstation $ . ./wetterstation.sub wetter@iobroker:~/wetterstation $ minmax24h DEBUG Testing InfluxDB... min/max Aussentemperatur 24h: °C °C
Die "wetterstation.conf" sieht meiner Meinung nach ok aus:
#InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen #Protokoll (HTTP oder HTTPS) / default: HTTP INFLUX_WEB=HTTP #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx] INFLUX_API=192.168.2.77:8086 #Bucket, Token und Organisation der InfluxDB INFLUX_BUCKET=IOB INFLUX_TOKEN=rjg55z...abgekürzt........_Q== INFLUX_ORG=Logical-Industries
"systemctl status wetterstation" bringt auch keine Fehlermeldung.
Was kann ich denn noch wo & wie prüfen? -
@hoschi2007
Dienst stoppen und mit./wetterstation.sh --debug
testen.
Damit wird meines Wissens auch die Influx-Verbindung getestet.
Und mal ins Log der Influx-Datenbank reinschauen, ob dort irgendewelche Verbindungen fehlerhaft sind. -
@boronsbruder
das hatte ich auch schon gemacht und es sieht alles ok aus. Da sehe ich aber leider gar keine Infos zur Influxdb-Verbindung.Kannst du einen Hinweis geben wo ich in der GUI von Influxdb nach den Logs gucken kann? Oder müssen die erst eingeschaltet werden?
Die Werte werden doch vom Wetterstation-Script direkt in die Influxdb geschrieben und nicht über die DP im Iobroker bzw dem Influx-Adapter, oder?
-
@hoschi2007
In den Versionshinweisen des Skripts ist der Parameter "--influx_test" vermerkt:V3.1.0 / 16.03.2023 + Windböe max für Stationen die den Wert nicht liefern + Option "k" für selbstsignierte Zertifikate bei der Influx-Abfrage hinzugefügt + Parameter "--influx_test" zum test der Influx-Konnektivität + Fix "MetSommer" (Skript bleibt bei den Mitternachtjobs hängen)
Zu den Influx-Logs sagte mir Google -> https://docs.influxdata.com/influxdb/v2/admin/logs/#logs-when-running-influxdb-as-a-service
sudo journalctl -u influxdb.service
-
@boronsbruder
oh man! Man sollte Installationsanleitungen zuende Lesen!
Die Lösung war: die Objekte in die DB zu schreiben indem das Logging der drei Objekte aktiviert wird:0_userdata.0.Wetterstation.Aussentemperatur 0_userdata.0.Wetterstation.Wind_max 0_userdata.0.Wetterstation.Regen_Tag
Hat mich jetzt fast zwei Tage gekostet, aber ich habe wieder einiges gelernt