NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@negalein @sborg
Danke für Eure Tipps zur Wetterstation. Reset und Batterietausch hatte ich schon vorgenommen. Werde aber mal Euren Hinweisen folgen.
Die Fehlwerte filter Sborg schon bereits per skript aus.
Ich hab mich vielleicht in meinem Hilferuf falsch ausgedrückt. Es kommen keine Werte im IoB an, auch nicht die real gemessenen Solar-UV, Innentemperatur-Werte, die das skript im debugging ausliest.VG,
Kay -
@kaybau sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich hab mich vielleicht in meinem Hilferuf falsch ausgedrückt. Es kommen keine Werte im IoB an, auch nicht die real gemessenen Solar-UV, Innentemperatur-Werte, die das skript im debugging ausliest.
Doch, aber ev. habe ich es nicht ganz deutlich ausgedrückt
Solange deine Aussentemperatur unter -273°C liegt (und das sind deine -5572.77°C bzw. -9999°F) wird das kpl. Datenpaket verworfen und absolut gar nichts an den ioB geschickt (außer du deaktivierst den Temperaturfix in der conf) weil man dann den anderen Messwerten uU. auch nicht "trauen" kann (du hast bspw. noch drei andere exorbitante Ausreißer drin). Das steht (bzw. stünde ohne Temperaturfix) dann so auch in der Influx, Statistik etc. pp. -
@sborg ah, ok
Ich war der Meinung der Fix geht nur auf die Außeneinheit und deren Werte -
Neue Version des JavaScriptes Wetterstation-Statistik auf GitHub V1.1.2
- ~mögliche "Null"-Werte bei "Regenmenge Vortag" und "Windböe" gefixt (Fix Issue #35)
Wie immer zu finden im GitHub
Update nicht zwingend nötig. Behebt nur das Problem möglicher "Null"-Werte für obige DPs, falls wirklich Tags zuvor keinerlei Wind/Regen auftrat und man nicht zumindest beim Logging per Influx das schreiben eines Wertes pro Tag erzwingt.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
"Regenmenge Vortag"
das prob hatte ich auch...
-
-
@kaybau
Allerdings fragt man sich dann auch warum der Wettermast einen Batteriestatus hat. Das die "Stromfresser" der Sensoren ohne Batterie nicht mehr funktionieren Ok, aber für eine Batteriewarnung sollte es zumindest reichen...
Mir ist dann mal wieder eine Idee gekommen (so von wegen wird keine großartigen neue Versionen mehr geben, ist ja alles drin [aber was interessiert mich denn auch mein vorheriges Gelaber...] )
Man sieht, frühe Beta. Bisher:
- Skript gestartet
- Mitternachtjobs durchgeführt
- unplausibler Messwert Aussentemperatur. Datenpaket verworfen.
Letzteres tritt dann bei Temperaturen unter -273°C auf und aktiviertem 'Tempfix' in der conf. Könnte man auch wieder zählen und bei Anzahl X dann eine Batteriewarnung ausgeben
Eigentlich sieht man ja auch an den diversen TS' ob das Skript noch lebt, trotzdem überlege ich gerade noch im Raster X ev. einen "Alive" zu senden. Meinungen, Wünsche ... -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Neue Version des JavaScriptes Wetterstation-Statistik auf GitHub V1.1.2
mit dieser Version bekomme ich in
0_userdata.0.Statistik.Wetter.VorTag
nur 'null'-Werte, ihr auch? -
-
@latzi sagte in [Linux Shell-Skript] WLAN-Wetterstation:
mit dieser Version bekomme ich in 0_userdata.0.Statistik.Wetter.VorTag nur 'null'-Werte, ihr auch?
passt bei mir auch
-
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
11,22 °C Höchsttemperatur?
Hast du die Station in einer Höhle stehen? -
-
@latzi Nicht zwangsläufig. Influx V1 oder V2? Nach wie vor läuft offiziell alles nur unter V1. Falls du Änderungen für V2 vorgenommen hattest fehlen die in dieser Version
-
@negalein jetzt wo du es sagst... sültsam. schau da aber so gut wie nie rein.
gefindet. hab vergessen den quellpfad auszubessern. woodywetter lauft bei mir auch unter 0_userdata, nicht javascript. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Falls du Änderungen für V2 vorgenommen hattest fehlen die in dieser Version
Ja, die Änderungen für die influx V2 hab ich nachgezogen, dabei dürfte etwas schief gegangen sein. Hab wieder auf die V1.1.1 zurückgestellt - läuft wieder. Das Thema muss ich mir nochmals in Ruhe geben, ich dachte mir, dass ich nur die beiden
sendto
- Statements ersetzen muss - hat aber offensichtlich nicht geklappt -
@latzi Klick mal bei GitHub auf die Versionsnummer vom Skript, dann siehst du die Änderungen v1.1.1 zu v1.1.2 (wichtig sind nur - und + Zeilen)
Das sind nur drei mickrige Zeilen (eine davon ist die Versionsnummer). Wenn du die änderst, hast du auch schon die V1.1.2*EDIT* Ok, vier Zeilen, habe den Kommentar vergessen...
-
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.15.0
(Beta-Releases lassen sich nicht! über den ws_updater installieren, nur die *.conf lässt sich damit patchen [s.u.])
- + neuer DP "Meldungen"; für Status- und Fehlermeldungen
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh und wetterstation.sub ersetzen
- wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgeführt werden (neuer Datenpunkt ".Info.Meldungen")
- (wetterstation.conf verbleibt aktuell in der Beta noch bei V2.14.0 / keine Änderungen bzw. kein ws-updater.sh nötig)
- nun mittels
systemctl restart wetterstation
den Service neu starten
Neu sind nun Meldungen unter .Info.Meldungen
Diese lauten aktuell:möglicherweise Batterie des Wettermastes schwach Skript läuft... Skript gestartet Mitternachtjobs durchgeführt unplausibler Messwert Aussentemperatur. Datenpaket verworfen...
Dies bedeutet im Einzelnen:
- wenn mehr als 10x ein Datenpaket empfangen wurde dessen Aussentemperaturwert kleiner als -273°C ist (Indiz für schwache/leere Batterie des Wettermastes). Fehlerzähler ist dynamisch = korrekte Pakete reduzieren den Fehlerzähler wieder. Es muss also rund 5 Minuten am Stück kein einzig verwertbares Paket mit korrektem Temperaturwert eingetroffen sein. Gleichzeitig wird .Info.Station_Batteriestatus auf "1" gesetzt!
- zu jeder vollen Stunde
- beim starten des Skriptes
- gegen 23:58 Uhr wenn die täglichen Jobs abgearbeitet wurden
- immer wenn ein Datenpaket bei der Aussentemperatur einen Wert kleiner als -273°C enthielt [nur aktiv bei aktiviertem Temperaturfix in der wetterstation.conf!]
-
@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)