NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@latzi sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg
Wenn der Statistik-DP0_userdata.0.Statistik.Wetter.Control.AutoDelete_Data
und0_userdata.0.Statistik.Wetter.Control.AutoReset_Jahresstatistik
auf 0 stehen, wird nie zurückgesetzt, richtig?Jepp. Ersteres löscht dann am 1. des Monats alles was älter ist als aktueller Monat minus eingegebener Monatsanzahl. Letzteres setzt dann die Jahreswerte am 01.01. nicht mehr zurück und es wird kein Backup der Jahreswerte unter .Jahreswerte.VorJahre.20xx angelegt.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dos2unix
Zur Info. Ein dos2unix brachte keine Verbesserung "File not found" kommt immer noch.
-
@schittl Da ich es leider nicht nachstellen kann hilft dann nur noch die Komplettausgabe.
Skript darf nicht laufen, dann einbash -x ./wetterstation.sh --debug
Da rattern dann ein "paar" Zeilen durch. 95% davon sind uninteressant, spannend wird es dann gegen Ende wo dann irgendwo das "File not found" auftritt. Davor sollte dann der verursachende Befehl (am Zeilenanfang mit einem "+" gekennzeichnet, danach folgt dann ggf. die Ausgabe wie im Terminal normalerweise sichtbar) stehen:
zB.
Debug VAR: + echo -e 'Installationsverzeichnis: \e[1;33m/home/sborg/script/test\e[1;37m' Installationsverzeichnis: /home/sborg/script/test + echo -e 'IPP: \e[1;33m192.168.1.3:8087\e[1;37m\tWS_PORT: \e[1;33m1080\e[1;37m\t\tWS_POLL: \e[1;33m30\e[1;37m\t\tPRE_DP: \e[1;33mjavascript.0.Wetterstation\e[1;37m' IPP: 192.168.1.3:8087 WS_PORT: 1080 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation + echo -en 'WEB: \e[1;33mHTTP\t\t\e[1;37mWS_PROT: \e[1;33m' WEB: HTTP WS_PROT: + case $WS_PROTOKOLL in + echo -en Ecowitt Ecowitt+ echo -e '\e[1;37m\tDP35/40/50/60/70/100/200/250/300: \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m| \e[1;33m0 \e[1;37m' DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 + echo -e '\e[1;37mWH31: \e[1;33m0 \e[1;37m' WH31: 0 + echo -e 'Script-Version: \e[1;33mV2.14.0\e[1;37m\tConfig-Version: \e[1;33mV2.14.0\e[1;37m\tSub-Version: \e[1;33mV2.14.0\e[1;37m' Script-Version: V2.14.0 Config-Version: V2.14.0 Sub-Version: V2.14.0
-
@sborg Danke für deine Hilfe. Per Docker bekomme ich nicht zu der gewünschten Ausgabe. Wenn ich den Befehl starte, passiert nicht viel. Ich bleibe jetzt erstmal auf der alten Version und werde demnächst nochmal einen Versuch starten. Vielen Dank auf jeden Fall. Top!!
-
@schittl Ich würde aktuell auch von einem "spezielleren" Problem ausgehen und nicht von einem allgemeinen unter Docker. Auf GitHub kann ich leider nicht die Anzahl der yaml-Downloads feststellen, würde aber meinen, dass sind sicherlich doch einige und da hätte bestimmt mal jemand ein Issue eröffnet.
Da ich im Normalfall (ggf. aktivierte Logdatei mal außen vor) nichts im System/Container schreibe, kann er bzgl. "File not found" auch nichts lesen wollen (bzw. ich will nichts lesen). Gerade an der Stelle wo es auftritt kann es eigentlich nur windy, wetter.com und OSeM sein.
Falls du noch mal testen willst, kannst du den Part mal hardcoded deaktivieren. Einfach in der wetterstation.sub so um Zeile #165#API-Check if [ ! -z ${WETTERCOM_ID} ]; then wettercom_update; fi if [ ${use_windy} == "true" ]; then windy_update; fi if [ ${openSenseMap} == "true" ]; then opensensemap; fi
die Datenübertragung durch auskommentieren disablen
#API-Check #if [ ! -z ${WETTERCOM_ID} ]; then wettercom_update; fi #if [ ${use_windy} == "true" ]; then windy_update; fi #if [ ${openSenseMap} == "true" ]; then opensensemap; fi
-
@sborg Ich habe die 3 Zeilen auskommentiert wie geschrieben. Trotzdem erscheint der Fehler immer noch bzw. habe weitere. Ich habe auch mal einen komplett neuen Objektbaum in iobroker erstellt um zu schauen das es eventuell daran liegen kann. Leider kommt immer noch nix an in iobroker.
Messwerteblock: 6.10 24.00 8.80 24.00 42 38 1.43 3.60 115 950.49 950.49 0 0 2.2 11.9 360.7 671.01 6 15.06.2022%2009:45:07 GW1000A_V1.7.3 0 9.36 0 0 GW1000A_Pro temp1f 18.50 humidity1 58 soilmoisture1 46 soilmoisture2 36 soilmoisture3 63 soilmoisture4 24 soilmoisture5 42 lightning_num 0 lightning 20 lightning_time 1655119349000 batt1 0 soilbatt1 1.4 soilbatt2 1.4 soilbatt3 1.3 soilbatt4 1.4 soilbatt5 1.4 wh57batt 5 Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : 6.10 °C Temperatur Aussen : 24.00 °C Taupunkt : 8.80 °C Gefühlte Temperatur : 24.00 °C Luftfeuchte Innen : 42 % Luftfeuchte Aussen : 38 % Windgeschwindkeit : 1.43 km/h Windböengeschwindigkeit : 3.60 km/h max. Windböe : 9.36 km/h Windrichtung : 115 ° Windrichtung : OSO Luftdruck absolut : 950.49 hPa Luftdruck relativ : 950.49 hPa Regenrate : 0 mm/h Regenstatus : kein Regen Regen seit Regenbeginn : 0 mm Regen Stunde : 0 mm Regen Tag : 0 mm Regen Woche : 2.2 mm Regen Monat : 11.9 mm Regen Jahr : 360.7 mm Regen Gesamt : mm Sonnenstrahlung : 671.01 W/m² UV-Index : 6 Zeitstempel : 15.06.2022 09:45:07 Firmware : GW1000A_V1.7.3 Batteriestand: : 0 Gateway-Modell : GW1000A_Pro Zusatzsensoren: temp1f : 18.50 humidity1 : 58 soilmoisture1 : 46 soilmoisture2 : 36 soilmoisture3 : 63 soilmoisture4 : 24 soilmoisture5 : 42 lightning_num : 0 lightning : 20 lightning_time : 1655119349000 batt1 : 0 soilbatt1 : 1.4 soilbatt2 : 1.4 soilbatt3 : 1.3 soilbatt4 : 1.4 soilbatt5 : 1.4 wh57batt : 5 Datenstring für ioBroker: 0_userdata.0.DP1500v214.Innentemperatur=6.10&0_userdata.0.DP1500v214.Aussentemperatur=23.90&0_userdata.0.DP1500v214.Taupunkt=8.71&0_userdata.0.DP1500v214.Gefuehlte_Temperatur=23.90&0_userdata.0.DP1500v214.Innenfeuchtigkeit=42&0_userdata.0.DP1500v214.Aussenfeuchtigkeit=38&0_userdata.0.DP1500v214.Wind=1.07&0_userdata.0.DP1500v214.Wind_max=3.60&0_userdata.0.DP1500v214.Windrichtung=53&0_userdata.0.DP1500v214.Druck_absolut=950.69&0_userdata.0.DP1500v214.Druck_relativ=950.69&0_userdata.0.DP1500v214.Regenrate=0&0_userdata.0.DP1500v214.Regen_Tag=0&0_userdata.0.DP1500v214.Regen_Woche=2.2&0_userdata.0.DP1500v214.Regen_Monat=11.9&0_userdata.0.DP1500v214.Regen_Jahr=360.7&0_userdata.0.DP1500v214.Sonnenstrahlung=672.85&0_userdata.0.DP1500v214.UV_Index=6&0_userdata.0.DP1500v214.Zeitstempel=15.06.2022%2009:44:36&0_userdata.0.DP1500v214.Info.FW_Version=GW1000A_V1.7.3&0_userdata.0.DP1500v214.Info.Station_Batteriestatus=0&0_userdata.0.DP1500v214.Windboeen_max=9.36&0_userdata.0.DP1500v214.Regen_Event=0&0_userdata.0.DP1500v214.Regen_Stunde=0&0_userdata.0.DP1500v214.Info.Wetterstation_Gateway=GW1000A_Pro&0_userdata.0.DP1500v214.DP50.1.Temperatur=18.50&0_userdata.0.DP1500v214.DP50.1.Feuchtigkeit=58&0_userdata.0.DP1500v214.DP100.1.Bodenfeuchtigkeit=46&0_userdata.0.DP1500v214.DP100.2.Bodenfeuchtigkeit=36&0_userdata.0.DP1500v214.DP100.3.Bodenfeuchtigkeit=63&0_userdata.0.DP1500v214.DP100.4.Bodenfeuchtigkeit=24&0_userdata.0.DP1500v214.DP100.5.Bodenfeuchtigkeit=42&0_userdata.0.DP1500v214.DP60.1.Anzahl=0&0_userdata.0.DP1500v214.DP60.1.Entfernung=20&0_userdata.0.DP1500v214.DP60.1.Zeitpunkt=1655119349000&0_userdata.0.DP1500v214.DP50.1.Batterie=0&0_userdata.0.DP1500v214.DP100.1.Batterie=1.4&0_userdata.0.DP1500v214.DP100.2.Batterie=1.4&0_userdata.0.DP1500v214.DP100.3.Batterie=1.3&0_userdata.0.DP1500v214.DP100.4.Batterie=1.4&0_userdata.0.DP1500v214.DP100.5.Batterie=1.4&0_userdata.0.DP1500v214.DP60.1.Batterie=5&0_userdata.0.DP1500v214.Regenstatus=kein Regen&0_userdata.0.DP1500v214.UV_Belastung=hoch&0_userdata.0.DP1500v214.Windrichtung_Text=NO&0_userdata.0.DP1500v214.Info.Hitzeindex= DATA von Wetterstation: PASSKEY=xxxxxx&stationtype=GW1000A_V1.7.3&runtime=1262463&dateutc=2022-06-15+09:44:36&tempinf=42.98&humidityin=42&baromrelin=28.074&baromabsin=28.074&tempf=75.02&humidity=38&winddir=53&windspeedmph=0.67&windgustmph=2.24&maxdailygust=5.82&solarradiation=672.85&uv=6&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.087&monthlyrainin=0.469&yearlyrainin=14.201&temp1f=65.30&humidity1=58&soilmoisture1=46&soilmoisture2=36&soilmoisture3=63&soilmoisture4=24&soilmoisture5=42&lightning_num=0&lightning=20&lightning_time=1655119349&wh65batt=0&batt1=0&soilbatt1=1.4&soilbatt2=1.4&soilbatt3=1.3&soilbatt4=1.4&soilbatt5=1.4&wh57batt=5&freq=868M&model=GW1000A_Pro Debug VAR: Installationsverzeichnis: /home/dp1500 IPP: 192.168.xx.xx:8082 WS_PORT: 1081 WS_POLL: 30 PRE_DP: 0_userdata.0.DP1500v214 WEB: HTTP WS_PROT: Ecowitt DP35/40/50/60/70/100/200/250/300: 0 | 0 | 1 | 1 | 0 | 5 | 0 | 0 | 0 WH31: 0 Script-Version: V2.14.0 Config-Version: V2.14.0 Sub-Version: V2.14.0 Connection to 192.168.xx.xx 8082 port [tcp/*] succeeded! /home/dp1500/wetterstation.sub: line 586: printf: `%d Std, %d Min': not a valid identifier /home/dp1500/wetterstation.sub: line 586: printf: `%d Std, %d Min': not a valid identifier /home/dp1500/wetterstation.sub: line 586: printf: `%d Std, %d Min': not a valid identifier /home/dp1500/wetterstation.sub: line 586: printf: `%d Std, %d Min': not a valid identifier % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2104 100 19 100 2085 2792 299k --:--:-- --:--:-- --:--:-- 339k File not found: {}
dos2unix habe ich schon ausprobiert für die Dateien.
-
@schittl sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Connection to 192.168.xx.xx 8082 port [tcp/*] succeeded!
/home/dp1500/wetterstation.sub: line 586: printf:%d Std, %d Min': not a valid identifier /home/dp1500/wetterstation.sub: line 586: printf:
%d Std, %d Min': not a valid identifier
/home/dp1500/wetterstation.sub: line 586: printf:%d Std, %d Min': not a valid identifier /home/dp1500/wetterstation.sub: line 586: printf:
%d Std, %d Min': not a valid identifier
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2104 100 19 100 2085 2792 299k --:--:-- --:--:-- --:--:-- 339k
File not found: {}Das kann/darf eigentlich nicht mehr kommen, denn direkt nach der Ausgabe von "Script-Version: V2.14.0 Config-Version: V2.14.0 Sub-Version: V2.14.0" wird das Skript nun beendet.
Kann es sein, dass du während des Debuglaufs noch das Skript laufen hast?
Im String der Station steht zB. ein anderer Timestamp (15.06.2022 09:45:07 vs. 15.06.2022 09:44:36), eine andere Windrichtung/Text als in der Ausgabe (53°|NO vs. 115°|OSO)
Das wären bzgl. des Timestamps die üblichen ~ 30 Sekundensendeintervalle...Bevor du mittels
--debug
testest darf einps -auxww|grep wetter
kein(e) Ergebnis(se) alasborg 2138807 0.0 0.0 8188 2944 ? S 16:35 0:00 /bin/bash /home/sborg/script/wetterstation.sh
liefern. Wenn zwei sich streiten...
...ist hier auch so. Laufen zwei Instanzen parallel, streiten die sich um den gleichen Port und besten Falls bekommt keiner etwas -
@sborg Es laufen keine 2 Instanzen. Ich habe die Ausgabe nur für Dich zum besseren Lesen Ablauf zusammenkopiert. Es ist geht eher minder schlecht aus der Konsole das Debug zu kopieren
-
@schittl Ah ok, dann sind die unterschiedlichen Messwerte klar
Aber hast du auch das "File not found" aus einer "anderen" Stelle kopiert oder kommt das wirklich nach den Skript-Versionsinfos?
Du kannst auch mit dieser etwas kryptischen Befehlszeile einfach alle Ausgaben in eine Datei debug.txt (falls im Verzeichnis vorhanden wird diese ohne Nachfrage überschrieben) schreiben lassen:./wetterstation.sh --debug > debug.txt 2>&1
Wenn der Prompt dann nach bis zu 30 Sekunden wieder erscheint ist es fertig. Sieht dann wg. der (Farb-)Formatierung nur etwas schwerer lesbar aus. -
Hallo @Sborg,
ich hab heute ein ganz komisches Phänomen. Abgesehen, dass mein Außensensor keine Temperatur überträgt, den Rest schon, folgendes Problem:
das Wetterstationskript überträgt nicht an Iobroker. Den wetterstation-service gestoppt, skript im Debug laufen lassen, folgender output:
'bc' installiert: [✓] 'jq' installiert: [✓] 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 192.168.178.92 8087 port [tcp/*] succeeded! Messwerteblock: 25.61 -5572.77 -5572.77 -5572.77 52 -9999 1.12 1.77 282 999.42 1013.61 0 0 2.3 18.1 0 605.93 5 17.06.2022%2015:59:51 EasyWeatherV1.6.4 Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : 25.61 °C Temperatur Aussen : -5572.77 °C Taupunkt : -5572.77 °C Gefühlte Temperatur : -5572.77 °C Luftfeuchte Innen : 52 % Luftfeuchte Aussen : -9999 % Windgeschwindkeit : 1.12 km/h Windböengeschwindigkeit : 1.77 km/h max. Windböe : km/h Windrichtung : 282 ° Windrichtung : WNW Luftdruck absolut : 999.42 hPa Luftdruck relativ : 1013.61 hPa Regenrate : 0 mm/h Regenstatus : kein Regen Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : 0 mm Regen Woche : 2.3 mm Regen Monat : 18.1 mm Regen Jahr : 0 mm Regen Gesamt : mm Sonnenstrahlung : 605.93 W/m² UV-Index : 5 Zeitstempel : 17.06.2022 15:59:51 Firmware : EasyWeatherV1.6.4 Batteriestand: : Gateway-Modell : Zusatzsensoren: keine Datenstring für ioBroker: DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=78.1&tempf=-9999&dewptf=-9999&windchillf=-9999&indoorhumidity=52&humidity=-9999&windspeedmph=0.7&windgustmph=1.1&winddir=282&absbaromin=29.513&baromin=29.932&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.091&monthlyrainin=0.713&yearlyrainin=0&solarradiation=605.93&UV=5&dateutc=2022-06-17%2013:59:51&softwaretype=EasyWeatherV1.6.4&action=updateraw&realtime=1&rtfreq=5 HTTP/1.1 Debug VAR: Installationsverzeichnis: /home/iobroker/wetter IPP: 192.168.178.92:8087 WS_PORT: 8050 WS_POLL: 30 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
Ich glaub, der String für den IoB fehlt. Hab V2.14.0 am Laufen.
Danke,
Kay -
@kaybau Keine Daten an den ioB ist da "Ok". Alles was eine Aussentemperatur unter dem absoluten Nullpunkt hat ist seitens der Wetterstation fehlerhaft und wird deswegen nicht an den ioB geschickt. Deine -9999°F sind da nur "geringfügig" drunter
Du hast ein Problem mit deiner Station:
- Display mal vom Strom nehmen (ggf. Batterien raus falls welche drin sind) und 10-20 Sek. warten, dann wieder alles rein/anstecken
- Batterien von der Außeneinheit sind OK? ggf. auch hier mal einen Reset durch entfernen der Batterie (kann aber fehlschlagen wenn der GoldCap der Solarzelle gut geladen ist )
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Batterien von der Außeneinheit sind OK?
zu 99% ist die Batterie schuld.
Als 1. steigt der Temp. Sensor aus (der hat die meiste Arbeit).ggf. auch hier mal einen Reset durch entfernen der Batterie (kann aber fehlschlagen wenn der GoldCap der Solarzelle gut geladen ist
für den Reset die Batterien raus und das Solarpanal für 48-72 Stunden abdecken (Lichtdicht).
-
@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?