NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg
habe auf die Version 2.14 upgedated.
Soweit so gut, nun werden aber die Datenpunkte im ioBroker nicht automatisch upgedated.WLAN-Wetterstation V2.14.0 - (c)2019-2022 by SBorg Config-Version: V2.14.0 Sub-Version : V2.14.0 'bc' installiert: [✓] 'jq' installiert: [✓] 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 192.168.10.161 8087 port [tcp/*] succeeded! jq: error (at <stdin>:0): Cannot iterate over null (null) jq: error (at <stdin>:0): Cannot iterate over null (null) [ { "id": "javascript.0.Wetterstation.Innentemperatur", "val": 29.11 }, { "id": "javascript.0.Wetterstation.Aussentemperatur", "val": 33.5 }, { "id": "javascript.0.Wetterstation.Taupunkt", "val": 18.83 }, { "id": "javascript.0.Wetterstation.Gefuehlte_Temperatur", "val": 33.5 }, { "id": "javascript.0.Wetterstation.Innenfeuchtigkeit", "val": 50 }, { "id": "javascript.0.Wetterstation.Aussenfeuchtigkeit", "val": 42 }, { "id": "javascript.0.Wetterstation.Wind", "val": 4.66 }, { "id": "javascript.0.Wetterstation.Wind_max", "val": 13.03 }, { "id": "javascript.0.Wetterstation.Windrichtung", "val": 166 }, { "id": "javascript.0.Wetterstation.Druck_absolut", "val": 989.91 }, { "id": "javascript.0.Wetterstation.Druck_relativ", "val": 1013.61 }, { "id": "javascript.0.Wetterstation.Regenrate", "val": 0 }, { "id": "javascript.0.Wetterstation.Regen_Tag", "val": 0 }, { "id": "javascript.0.Wetterstation.Regen_Woche", "val": 0 }, { "id": "javascript.0.Wetterstation.Regen_Monat", "val": 150.9 }, { "id": "javascript.0.Wetterstation.Regen_Jahr", "val": 198.9 }, { "id": "javascript.0.Wetterstation.Sonnenstrahlung", "val": 330.92 }, { "id": "javascript.0.Wetterstation.UV_Index", "val": 3 }, { "id": "javascript.0.Wetterstation.Zeitstempel", "val": "27.06.2022 17:18:43" }, { "id": "javascript.0.Wetterstation.Info.FW_Version", "val": "EasyWeatherV1.6.4" }, { "id": "javascript.0.Wetterstation.Info.Station_Batteriestatus", "val": 0 }, { "id": "javascript.0.Wetterstation.Windboeen_max", "val": 33.15 }, { "id": "javascript.0.Wetterstation.Regen_Event", "val": 0 }, { "id": "javascript.0.Wetterstation.Regen_Stunde", "val": 0 }, { "id": "javascript.0.Wetterstation.Info.Wetterstation_Gateway", "val": "HP1000SE-PRO_Pro_V1.6.9" }, { "id": "javascript.0.Wetterstation.DP100.1.Bodenfeuchtigkeit", "val": 61 }, { "id": "javascript.0.Wetterstation.DP100.2.Bodenfeuchtigkeit", "val": 39 }, { "id": "javascript.0.Wetterstation.DP100.3.Bodenfeuchtigkeit", "val": 45 }, { "id": "javascript.0.Wetterstation.DP100.4.Bodenfeuchtigkeit", "val": 28 }, { "id": "javascript.0.Wetterstation.DP100.5.Bodenfeuchtigkeit", "val": 0 }, { "id": "javascript.0.Wetterstation.DP100.1.Batterie", "val": 1.3 }, { "id": "javascript.0.Wetterstation.DP100.2.Batterie", "val": 1.3 }, { "id": "javascript.0.Wetterstation.DP100.3.Batterie", "val": 1.1 }, { "id": "javascript.0.Wetterstation.DP100.4.Batterie", "val": 1.1 }, { "id": "javascript.0.Wetterstation.DP100.5.Batterie", "val": 1.3 }, { "id": "javascript.0.Wetterstation.Regenstatus", "val": "kein Regen" }, { "id": "javascript.0.Wetterstation.UV_Belastung", "val": "mittel" }, { "id": "javascript.0.Wetterstation.Windrichtung_Text", "val": "SSO" }, { "id": "javascript.0.Wetterstation.Info.Hitzeindex", "val": "" } ] Messwerteblock: 29.11 33.50 18.83 33.50 50 42 4.66 13.03 166 989.91 1013.61 0 0 0 150.9 198.9 330.92 3 27.06.2022%2017:18:43 EasyWeatherV1.6.4 0 33.15 0 0 HP1000SE-PRO_Pro_V1.6.9 soilmoisture1 61 soilmoisture2 39 soilmoisture3 45 soilmoisture4 28 soilmoisture5 0 soilbatt1 1.3 soilbatt2 1.3 soilbatt3 1.1 soilbatt4 1.1 soilbatt5 1.3 Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : 29.11 °C Temperatur Aussen : 33.50 °C Taupunkt : 18.83 °C Gefühlte Temperatur : 33.50 °C Luftfeuchte Innen : 50 % Luftfeuchte Aussen : 42 % Windgeschwindkeit : 4.66 km/h Windböengeschwindigkeit : 13.03 km/h max. Windböe : 33.15 km/h Windrichtung : 166 ° Windrichtung : SSO Luftdruck absolut : 989.91 hPa Luftdruck relativ : 1013.61 hPa Regenrate : 0 mm/h Regenstatus : kein Regen Regen seit Regenbeginn : 0 mm Regen Stunde : 0 mm Regen Tag : 0 mm Regen Woche : 0 mm Regen Monat : 150.9 mm Regen Jahr : 198.9 mm Regen Gesamt : mm Sonnenstrahlung : 330.92 W/m² UV-Index : 3 Zeitstempel : 27.06.2022 17:18:43 Firmware : EasyWeatherV1.6.4 Batteriestand: : 0 Gateway-Modell : HP1000SE-PRO_Pro_V1.6.9 Zusatzsensoren: soilmoisture1 : 61 soilmoisture2 : 39 soilmoisture3 : 45 soilmoisture4 : 28 soilmoisture5 : 0 soilbatt1 : 1.3 soilbatt2 : 1.3 soilbatt3 : 1.1 soilbatt4 : 1.1 soilbatt5 : 1.3 Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=29.11&javascript.0.Wetterstation.Aussentemperatur=33.50&javascript.0.Wetterstation.Taupunkt=18.83&javascript.0.Wetterstation.Gefuehlte_Temperatur=33.50&javascript.0.Wetterstation.Innenfeuchtigkeit=50&javascript.0.Wetterstation.Aussenfeuchtigkeit=42&javascript.0.Wetterstation.Wind=4.66&javascript.0.Wetterstation.Wind_max=13.03&javascript.0.Wetterstation.Windrichtung=166&javascript.0.Wetterstation.Druck_absolut=989.91&javascript.0.Wetterstation.Druck_relativ=1013.61&javascript.0.Wetterstation.Regenrate=0&javascript.0.Wetterstation.Regen_Tag=0&javascript.0.Wetterstation.Regen_Woche=0&javascript.0.Wetterstation.Regen_Monat=150.9&javascript.0.Wetterstation.Regen_Jahr=198.9&javascript.0.Wetterstation.Sonnenstrahlung=330.92&javascript.0.Wetterstation.UV_Index=3&javascript.0.Wetterstation.Zeitstempel=27.06.2022%2017:18:43&javascript.0.Wetterstation.Info.FW_Version=EasyWeatherV1.6.4&javascript.0.Wetterstation.Info.Station_Batteriestatus=0&javascript.0.Wetterstation.Windboeen_max=33.15&javascript.0.Wetterstation.Regen_Event=0&javascript.0.Wetterstation.Regen_Stunde=0&javascript.0.Wetterstation.Info.Wetterstation_Gateway=HP1000SE-PRO_Pro_V1.6.9&javascript.0.Wetterstation.DP100.1.Bodenfeuchtigkeit=61&javascript.0.Wetterstation.DP100.2.Bodenfeuchtigkeit=39&javascript.0.Wetterstation.DP100.3.Bodenfeuchtigkeit=45&javascript.0.Wetterstation.DP100.4.Bodenfeuchtigkeit=28&javascript.0.Wetterstation.DP100.5.Bodenfeuchtigkeit=0&javascript.0.Wetterstation.DP100.1.Batterie=1.3&javascript.0.Wetterstation.DP100.2.Batterie=1.3&javascript.0.Wetterstation.DP100.3.Batterie=1.1&javascript.0.Wetterstation.DP100.4.Batterie=1.1&javascript.0.Wetterstation.DP100.5.Batterie=1.3&javascript.0.Wetterstation.Regenstatus=kein Regen&javascript.0.Wetterstation.UV_Belastung=mittel&javascript.0.Wetterstation.Windrichtung_Text=SSO&javascript.0.Wetterstation.Info.Hitzeindex= DATA von Wetterstation: PASSKEY=xxxxxx&stationtype=EasyWeatherV1.6.4&dateutc=2022-06-27+15:18:43&tempinf=84.4&humidityin=50&baromrelin=29.932&baromabsin=29.232&tempf=92.3&humidity=42&winddir=166&winddir_avg10m=129&windspeedmph=2.9&windspdmph_avg10m=3.6&windgustmph=8.1&maxdailygust=20.6&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=5.941&yearlyrainin=7.831&solarradiation=330.92&uv=3&soilmoisture1=61&soilmoisture2=39&soilmoisture3=45&soilmoisture4=28&soilmoisture5=0&wh65batt=0&wh25batt=0&soilbatt1=1.3&soilbatt2=1.3&soilbatt3=1.1&soilbatt4=1.1&soilbatt5=1.3&freq=868M&model=HP1000SE-PRO_Pro_V1.6.9 Debug VAR: Installationsverzeichnis: /home/iobroker IPP: 192.168.10.161:8087 WS_PORT: 9080 WS_POLL: 25 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 WH31: 0 Script-Version: V2.14.0 Config-Version: V2.14.0 Sub-Version: V2.14.0
Denke da hat's was mit Berechtigungen:
gfaigel@ioBroker-prox:/home/iobroker$ systemctl status wetterstation.service ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2022-06-27 17:53:05 CEST; 6s ago Process: 10296 ExecStart=/home/iobroker/wetterstation.sh (code=exited, status=216/GROUP) Main PID: 10296 (code=exited, status=216/GROUP)
Leider sind meine Linux-Kenntnisse noch nicht so advanced, hoffe dazu gibt es eine Lösung.
-
Ich bekomme beim Statistik Script keine Daten.
Im Log steht zur Startzeit:2022-06-27 01:03:00.027 - info: javascript.0 (1073232) script.js.Wetter.Wetterstation_Statisitk: Auswertung durchgeführt... 2022-06-27 01:03:00.045 - warn: influxdb.0 (845) Error in query "select * FROM "0_userdata.0.Wetterstation.Aussentemperatur" WHERE time >= 1656194400000000000 AND time <= 1656280799000000000": HttpError: error @1:1-1:7: undefined identifier select error @1:10-1:14: undefined identifier FROM error @1:61-1:66: undefined identifier WHERE error @1:67-1:71: (v: A) => time (function) is not Equatable error @1:67-1:71: (v: A) => time (function) is not Comparable error @1:95-1:98: undefined identifier AND error @1:99-1:103: (v: A) => time (function) is not Equatable error @1:99-1:103: (v: A) => time (function) is not Comparable 2022-06-27 01:03:00.069 - warn: influxdb.0 (845) Error in query " select * FROM "0_userdata.0.Wetterstation.Wind_max" WHERE time >= 1656194400000000000 AND time <= 1656280799000000000": HttpError: error @1:2-1:8: undefined identifier select error @1:11-1:15: undefined identifier FROM error @1:54-1:59: undefined identifier WHERE error @1:60-1:64: (v: A) => time (function) is not Equatable error @1:60-1:64: (v: A) => time (function) is not Comparable error @1:88-1:91: undefined identifier AND error @1:92-1:96: (v: A) => time (function) is not Equatable error @1:92-1:96: (v: A) => time (function) is not Comparable 2022-06-27 01:03:00.078 - warn: influxdb.0 (845) Error in query " select * FROM "0_userdata.0.Wetterstation.Regen_Tag" WHERE time >= 1656194472000000000 AND time <= 1656280799000000000": HttpError: error @1:2-1:8: undefined identifier select error @1:11-1:15: undefined identifier FROM error @1:55-1:60: undefined identifier WHERE error @1:61-1:65: (v: A) => time (function) is not Equatable error @1:61-1:65: (v: A) => time (function) is not Comparable error @1:89-1:92: undefined identifier AND error @1:93-1:97: (v: A) => time (function) is not Equatable error @1:93-1:97: (v: A) => time (function) is not Comparable 2022-06-27 01:03:00.080 - error: influxdb.0 (845) queries: Error: 3 Error happened while processing 3 queries 2022-06-27 01:03:00.085 - error: javascript.0 (1073232) script.js.Wetter.Wetterstation_Statisitk: Fehler beim Lesen der InfluxDB: Invalid call 2022-06-27 01:03:00.086 - warn: javascript.0 (1073232) States system pmessage io.messagebox.system.adapter.javascript.0 {"command":"query","message":{"result":[],"error":"Invalid call"},"from":"system.adapter.influxdb.0","callback":{"message":"select * FROM \"0_userdata.0.Wetterstation.Aussentemperatur\" WHERE time >= 1656194400000000000 AND time <= 1656280799000000000; select * FROM \"0_userdata.0.Wetterstation.Wind_max\" WHERE time >= 1656194400000000000 AND time <= 1656280799000000000; select * FROM \"0_userdata.0.Wetterstation.Regen_Tag\" WHERE time >= 1656194472000000000 AND time <= 1656280799000000000","id":1,"ack":true,"time":1656284580026},"_id":29058831} Reduce of empty array with no initial value 2022-06-27 01:03:00.373 - warn: javascript.0 (1073232) TypeError: Reduce of empty array with no initial value at Array.reduce () at Object.cb (script.js.Wetter.Wetterstation_Statisitk:175:43) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5809:71) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:322:37) at processImmediate (node:internal/timers:466:21)
Aber prinzipiell läuft das Script.
Was mach ich denn da wieder falsch?
-
@rushmed said in [Linux Shell-Skript] WLAN-Wetterstation:
2022-06-27 01:03:00.078 - warn: influxdb.0 (845) Error in query " select * FROM "0_userdata.0.Wetterstation.Regen_Tag" WHERE time >= 1656194472000000000 AND time <= 1656280799000000000": HttpError: error @1:2-1:8: undefined identifier select
@SBorg ich würde sagen, dass das ein Tippfehler ist. Es muss SELECT anstatt select heissen, oder?
(Zeile 157-159 und 407-409)'select * FROM "' + WET_DP + '.Aussentemperatur" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000) + '; select * FROM "' + WET_DP + '.Wind_max" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000) + '; select * FROM "' + WET_DP + '.Regen_Tag" WHERE time >= ' + ((start+72000) *1000000) + ' AND time <= ' + (end *1000000)
-
@tritor said in [Linux Shell-Skript] WLAN-Wetterstation:
status=216/GROUP
Welcher User bzw. Group ist im Service eingetragen?
-
ich glaube ich hab es hinbekommen:
das war es zuvor:systemctl cat wetterstation.service | grep Group Group=ioobroker
geändert auf:
systemctl cat wetterstation.service | grep Group Group=iobroker
Wie die Group auf ioobroker geändert wurde kann ich nicht nachvollziehen.
Daten werden nurn wieder übertragen - sehe das am Temperaturlogging.
Nur mit einigen Datenpunkten habe ich noch Probleme:
Druck_Tendenz: -1018 ((wird in rot angezeigt)
Wetter_Trend: Sturm mit Hagel (wird in rot angezeigt)
Wetter_aktuell: leer -
Hallo,
ich würde das Script auch gerne nutzen.
Influxdb läuft -> Version 1.x -> Adapter 2.6.3
Grafana läuft auchProbleme habe ich mit dem Script.
- Datenpunkte wurden angelegt
- Wetterstation Sainlogic WS3500 (ioBroker meint: WS2900_V2.01.18)
Ausgabe bei:
./wetterstation.sh --debug
Debug VAR: Installationsverzeichnis: /home/iobroker IPP: 192.168.xxx.xxx:8087 WS_PORT: 9999 WS_POLL: 20 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Wunderground DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 0 Script-Version: V2.14.0 Config-Version: V2.14.0 Sub-Version: V2.14.0 Kommunikationsfehler! Kommunikationsfehler! Stimmt die WS_ID in der Konfiguration mit der der WS View-App überein?
In der WS View App wurden folgende Einstellungen vorgenommen:
IP-Adresse, Station-ID sowie Key stimmen überein.Snifft das Script die Daten mit, oder sollte es diese von der Wetterstation aktiv abholen?
Über eine Hilfe wäre ich dankbar.
-
@rushmed Hmm, der kann mit keiner Abfrage mehr was anfangen. An einem Update (zB. Influx-Adapter etc.) kann es nicht liegen, ich bin auf latest und damit läuft es aktuell problemlos.
Deine Influx-DB ist aber noch V1?
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg ich würde sagen, dass das ein Tippfehler ist. Es muss SELECT anstatt select heissen, oder?
(Zeile 157-159 und 407-409)Eigentlich nicht. Zum einen funktioniert(e) es bisher (zumindest aktuell bei mir noch; hat sich auch noch kein anderer beschwert ), zum anderen, auch wenn es durch das WHERE, AND, FROM... so aussieht, ist das Ganze nicht case sensitiv. Reine Optik zur besseren Lesbarkeit
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nur mit einigen Datenpunkten habe ich noch Probleme:
Druck_Tendenz: -1018 ((wird in rot angezeigt)
Wetter_Trend: Sturm mit Hagel (wird in rot angezeigt)
Wetter_aktuell: leerHat sich das mittlerweile erledigt? Da hat es wohl noch die temporären Daten etwas zerbröselt. Sollte sich aber nach ~3 Stunden Daten sammeln wieder selbst regulieren.
-
@speedy sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Snifft das Script die Daten mit, oder sollte es diese von der Wetterstation aktiv abholen?
Moin, ja und nein. Das Skript "hört" nur auf das was das Display/Gateway sendet.
Pauschal würde ich "Ecowitt" als Protokoll vorziehen. Hat einfach mehr Daten (zB. den Batteriestatus).
Bei deinem aktuellen "Wunderground"-Protokoll ist der Pfad in der App falsch. Der muss
/weatherstation/updateweatherstation.php?
lauten.
"Pfad" ist da etwas unglücklich seitens der App gewählt, es handelt sich hier um einen Teil einer URL -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hat sich das mittlerweile erledigt?
Hi,
leider nicht, dachte auch, daß sich die Daten über Nacht wieder finden, aber leider noch immer dasselbe Szenario.
-
@tritor Das wird so auch aktuell nichts mehr werden. Dein DP "Wetterdaten" ist leer. Da müssten die letzten 15 Luftdruckwerte drin stehen. Deswegen stimmen die anderen drei Werte nicht.
Stoppe den Service mal, warte eine Minute, dann starte ihn nochmal. Jetzt sollte eigentlich bei "Wetterdaten"
15 14 13 .... 3 2 1
stehen. Dann sollte jede 15 Minuten eine Zahl durch einen aktuellen Luftdruckwert ersetzt werden und nach ~ 3 Stunden alles wieder laufen. -
@sborg Nein die ist V2. Ich dachte mit V2 gehts nur nicht so richtig gut.
Funktioniert das Statistik Script mit Influx V32 garnicht mehr? -
-
@rushmed Leider nicht, da haben sich die Abrufe für die Datenbank geändert und ohne Daten gibt es leider auch (so gut) wie keine Werte.
Die V2 hat leider noch immer einige (für mich) maßgebliche Nachteile. Ich will auch nicht jetzt pauschal alle Nutzer zwingen die V2 zu nutzen, deswegen müsste ich eigentlich beides supporten/unterstützen. Das ist aber nicht gerade trivial und zeitaufwändig. Gerade Zeit habe ich aktuell wenig, sehe aber wenigstens schon den Tunnel am Ende des Lichtes oder wie das war ^^
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hoffe das passt so.
wenn man rechnen kann...
3h x 4 (alle 15 Minuten pro Stunde) = 12 Werte (und nicht 15)
Passt also alles und hat sich in rund 3 Stunden erledigt -
@sborg
leider nicht ganz bei mir.
hab gerade den DP geprüft und nun ist er wieder leer:und Wetter_aktuell, Wetter_Trend und Luftdruck_Tendenz sehen wie im obigen Post aus.
Scheint mir so, als werden die Wetterdaten nur 1x übertragen.
-
@tritor Ich habe eben noch mal oben deinen Debug angeschaut, da ist alles Ok. Wenn er es 1x korrekt überträgt muss es auch mehrmals funktionieren und ganz leer darf es eigentlich auch nie werden.
Ev. (wg. der Group etc.) läuft es doppelt. Was zeigt den ein
ps -auxww|grep wetter
?Da sollte es nur 2x auftauchen:
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ps -auxww|grep wetter
gfaigel@ioBroker-prox:~$ ps -auxww|grep wetter iobroker 6322 0.0 0.0 8024 2960 ? S 12:47 0:00 /bin/bash /home/iobroker/wetterstation.sh gfaigel 6332 0.0 0.0 6084 880 pts/0 S+ 12:48 0:00 grep wetter iobroker 7376 0.1 0.0 8024 4716 ? Ss 10:36 0:12 /bin/bash /home/iobroker/wetterstation.sh
-
@tritor "Leider" alles gut. Ändert sich denn Solarenergie und Sonnenschein?
Nutzt du History? Falls ja, kannst du mal paar Stunden die "Wetterdaten" aufzeichnen wer da was schreibt?...weil ich aktuell etwas ratlos bin. Rechte & Co. können es nicht sein, dann würde fast nichts gehen...
"Wetter_aktuell, Wetter_Trend und Luftdruck_Tendenz" sind zwar falsch, können aber erst funktionieren wenn die "Wetterdaten" wieder korrekt vorliegen (also Haken dran machen, dass ist nicht die Ursache, sondern eine Auswirkung des Fehlers).