NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@da_woody hatte ich auch, einfach dann nochmal den ws_updater holen:
wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
beim zweiten Durchlauf mit dc gings dann..
-
@ilovegym TZE
Auswahlmenü für WLAN-Wetterstation: _____________________________________ [1] im aktuellen Verzeichnis installieren [2] als Service einrichten [3] Konfigurationsdatei patchen [4] Update ausführen [E] Exit Ihre Auswahl: [1-4]: 4 ┌────────────────────────┐ │ │ │ WS-Updater V2.16.0 │ │ │ └────────────────────────┘ 'bc' installiert: [✓] 'jq' installiert: [✓] 'dc' installiert: [✓] 'unzip' installiert: [✓] 'patch' installiert: [✓] Zugriff auf 'Rest-API' im ioBroker: [✗] (Dies ist kein Problem, es können nur keine neuen Datenpunkte bei Bedarf automatisch angelegt werden. Dies muss im Fall neuer Datenpunkte per 'wetterstation.js' von Hand im ioBroker erfolgen.) Aktuelle Version (latest) auf GitHub: V2.16.0 vom 12.07.2022 Version im aktuellen Verzeichnis : V2.16.0 Version ist bereits aktuell... woody@ioBroker:~$
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
V2.16.0
hat sich von der .16 Beta auf hier eh nichts geändert?
Oder sollten wir auch updaten? -
@ilovegym / @da_Woody Problem erkannt
Tritt auch beim Beta-Test leider nicht auf, nur beim Release. Da muss ich mir wieder was einfallen lassen wie ich das umschiffen kann. Problem ist, man startet den Updater lokal, der startet dann von GitHub in einer weiteren Instanz den aktuellen Updater. Er läuft also jetzt doppelt. Dann wird zB. festgestellt 'dc' fehlt und der 2. Updater (also der von GitHub) beendet (der 1. oder lokal gestartete läuft aber immer noch...). Dann installiert ihr 'dc' nach und startet jetzt nochmals den lokalen Updater...Man kann zwar pauschal ein Programm beliebig oft parallel starten, aber ein Shell-Skript (welches Parameter/Variablen enthält) nur eher bedingt. So wäre in unserem Beispiel das noch immer laufende 1. Skript der Meinung (per Variable) es gäbe kein 'dc', das 2. aber schon... Ergebnis sieht man.
@Negalein Nein, habe ich vergessen zu erwähnen. Beta und Release sind identisch.
Der unscheinbare Bildausschnitt verrät mehr als man denken mag über die neue Funktion. Details sind entscheidend...
Ev. für eine handvoll Nutzer wirklich interessant, allerdings sagt es doch für jeden unter uns ggf. etwas aus... -
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.17.0
(Beta-Releases lassen sich nicht! über den ws_updater.sh installieren, nur die *.conf lässt sich mit dem ws_updater.beta ggf. patchen [s.u.])
- + durchschnittliche Windrichtung und -geschwindigkeit der letzten 10 Minuten alternativ anstelle
der aktuellen Werte an OpenSenseMap, windy und wetter.com senden - + Temperaturtrend Aussentemperatur der letzten Stunde
Wie immer zu finden im GitHub
Update-Routine:
- wetterstation.sh, wetterstation.sub und ws_updater.beta (muss "ausführbar" sein
chmod +x ws_updater.beta
) ersetzen bzw. kopieren - wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgeführt werden (neuer Datenpunkt Aussentemperatur_Trend); bei aktivierter Rest-API wird der Datenpunkt automatisch im ioB angelegt
./ws_updater.beta --patch
im Installationsverzeichnis ausführen und ev. Hinweise beachten- nun mittels
[sudo] systemctl restart wetterstation
den Service neu starten
Der Temperaturtrend wird anhand der letzten 120 Messwerte (~1h) ermittelt.
- + durchschnittliche Windrichtung und -geschwindigkeit der letzten 10 Minuten alternativ anstelle
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
neuer Datenpunkt Aussentemperatur_Trend
perfekt durchgelaufen und DP autom. erstellt
dietpi@DietPi:/home/iobroker$ ./ws_updater.beta --patch ┌────────────────────────┐ │ │ │ WS-Updater V2.17.0 │ │ │ └────────────────────────┘ 'bc' installiert: [✓] 'jq' installiert: [✓] 'dc' installiert: [✓] 'unzip' installiert: [✓] 'patch' installiert: [✓] Zugriff auf 'Rest-API' im ioBroker: [✓] Soll die wetterstation.conf nun auf eine neue Version gepatcht werden? [J/N]: J Lege Sicherungskopie der wetterstation.conf an... Patche wetterstation.conf auf V2.17.0 ... Lege neues Object im ioBroker an: javascript.0.Wetterstation.Aussentemperatur_Trend Fertig... Die alternative Datenübertragung von Windrichtung und -geschwindigkeit der letzten 10 Minuten an windy/OpenSenseMap/wetter.com kann nun aktiviert werden! Einstellung dafür in der wetterstation.conf: USE_AVG_WIND=true
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wir können ja eine Schnitzeljagd mit Hinweisen von mir veranstalten. Wer errät zuerst worum es sich handeln könnte....
Ist aber mehr "Zinnober" als es letztendlich Wert istEs lässt sich endlich das Wetter draussen für morgen, heute im Script einstellen!!
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Da keine offensichtlichen Fehler aufgetreten sind:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.16.0
Frage, das Update lief durch, mußte auch dc nachinstallieren, dann ws_updater holen und nochmals ausführen.
Dann war alles ok.Die version 16 von wetterstation.js habe ich auch ausgeführt um die Datenpunkte zu bekommen.
Habe ich sonst noch was vergessen? -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Das wird nur noch bei dir so sein, der ist seit 21.01.2021 schon "number"
createState(DP+"Info.Station_Batteriestatus" , 0, {name: "Batteriestatus [0=OK, 1=Alarm]", type: "number", role: "value" });(Gleiches Thema wie beim "Name" die "Bezeichnung 0 und 1...")
Stell ihn einfach von Zeichenkette auf Zahl um und Ruhe istServus
Hab ihn damals umgestellt.
Mit heutigem Update kommt er wieder.
Legt die Rest-API alle DP neu an? Eigentlich nicht. Oder?simple-api.0 2022-07-28 20:06:00.740 info State value to set for "javascript.0.Wetterstation.Info.Station_Batteriestatus" has to be type "string" but received type "number"
Edit:
sehe gerade, dass der passend "Number" hat.
Warum dann die Meldung?{ "common": { "name": "Batteriestatus [0=OK, 1=Alarm]", "type": "string", "role": "state", "custom": { "influxdb.0": { "enabled": true, "storageType": "Number", "aliasId": "", "changesOnly": false, "debounce": 0, "changesRelogInterval": "900", "changesMinDelta": 0, "retention": 604800 } } }, "native": { "name": "Batteriestatus [0=OK, 1=Alarm]", "type": "string", "role": "state" }, "type": "state", "_id": "javascript.0.Wetterstation.Info.Station_Batteriestatus", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1656504600034 }
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.16.0
Vielen Dank.
Jetzt hatte ich gedacht, mein Problem löst sich mit dem Update, war aber nicht.Ich habe eine Bresser 7 in 1 WLAN-Station deren Wunderground-Verbindung auf rtupdate.wunderground.com ich per Pihole auf meinen iobroker-raspi mit der IP 192.168.0.49 umleite.
Ein sudo nc -l -p 80 auf dem raspi bringt erwartungsgemäß
GET /weatherstation/updateweatherstation.php?ID=<meineStation>&PASSWORD=<meinPW>&action=updateraww&realtime=1&rtfreq=5&dateutc=now&baromin=30.06&tempf=77.5&dewptf=47.6&humidity=35&windspeedmph=1.5&windgustmph=1.5&winddir=0&rainin=0.0&dailyrainin=0.0&solarradiation=42.50&UV=0.0&indoortempf=74.8&indoorhumidity=55 HTTP/1.1 Host: rtupdate.wunderground.com Connection: keep-alive
Ein sudo ./wetterstation.sh --debug zeigt, dass das Script grundsätzlich funktioniert, auch die Weiterleitung an wunderground, denn dort werden die Daten aktualisiert, wunderground gibt "success" zurück.
Leider wirft es aber einige Fehlermeldungen, die ich selbst nicht nachvollziehen kann:
Connection to 127.0.0.1 8093 port [tcp/*] succeeded! parse error: Invalid numeric literal at line 1, column 10 (standard_in) 1: syntax error (standard_in) 1: syntax error /home/pi/wetterstation/wetterstation.sub: line 786: [: : integer expression expected (standard_in) 1: syntax error (standard_in) 2: syntax error (standard_in) 2: syntax error (standard_in) 1: syntax error (standard_in) 2: syntax error (standard_in) 3: syntax error (standard_in) 1: syntax error (standard_in) 2: syntax error (standard_in) 2: syntax error (standard_in) 3: syntax error (standard_in) 4: syntax error (standard_in) 5: syntax error (standard_in) 5: syntax error (standard_in) 5: syntax error (standard_in) 1: syntax error <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Cannot POST /setBulk</pre> </body> </html> Messwerteblock: 23.77 25.55 9.38 25.55 55 36 0 0 324 1017.95 0 0 0 44.87 0.0 28.07.2022%2020:13:29
Auch der Datenstring für iobroker ist dabei befüllt. In iobroker kommen aber leider keine Daten an.
Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=23.77&javascript.0.Wetterstation.Aussentemperatur=25.55&javascript.0.Wetterstation.Taupunkt=9.38&javascript.0.Wetterstation.Gefuehlte_Temperatur=25.55&javascript.0.Wetterstation.Innenfeuchtigkeit=55&javascript.0.Wetterstation.Aussenfeuchtigkeit=36&javascript.0.Wetterstation.Wind=0&javascript.0.Wetterstation.Wind_max=0&javascript.0.Wetterstation.Windrichtung=324&javascript.0.Wetterstation.Druck_relativ=1017.95&javascript.0.Wetterstation.Regenrate=0&javascript.0.Wetterstation.Regen_Tag=0&javascript.0.Wetterstation.Regen_Jahr=0&javascript.0.Wetterstation.Sonnenstrahlung=44.87&javascript.0.Wetterstation.UV_Index=0.0&javascript.0.Wetterstation.Zeitstempel=28.07.2022%2020:13:29&javascript.0.Wetterstation.Regenstatus=&javascript.0.Wetterstation.UV_Belastung=keine&javascript.0.Wetterstation.Windrichtung_Text=NW&javascript.0.Wetterstation.Info.Hitzeindex= DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=74.8&indoorhumidity=55 HTTP/1.1 Debug VAR: Installationsverzeichnis: /home/pi/wetterstation IPP: 127.0.0.1:8093 WS_PORT: 80 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: DNS DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 0 Script-Version: V2.16.0 Config-Version: V2.16.0 Sub-Version: V2.16.0
Ohne Debug läuft die Konsole mit
(standard_in) 1: syntax error
voll. Ich vermute der gestartete Service agiert ähnlich.
Während der ganzen Zeit, wird wunderground aktualisiert, in iobroker blinken immer mal die Werte grün auf, werden aber nicht aktualisiert.
Wo könnte ich ansetzen?
Vielen Dank und viele Grüße
Björn -
Bei mir läuft das script nach dem Update nicht mehr, updater sagt Version ist aktuell V2.16.0, debug sagt das ich noch V2.14.0 nutze???
/home/chris/wetterstation.conf: Zeile 60: DATUM: Kommando nicht gefunden. 'bc' installiert: [✓] 'jq' installiert: [✓] 'dc' installiert: [✓] 'unzip' installiert: [✓] 'patch' installiert: [✓] Zugriff auf 'Rest-API' im ioBroker: [✗] (Dies ist kein Problem, es können nur keine neuen Datenpunkte bei Bedarf automatisch angelegt werden. Dies muss im Fall neuer Datenpunkte per 'wetterstation.js' von Hand im ioBroker erfolgen.) Aktuelle Version (latest) auf GitHub: V2.16.0 vom 12.07.2022 Version im aktuellen Verzeichnis : V2.16.0 Version ist bereits aktuell...
chris@ioBroker:~$ systemctl status wetterstation ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor> Active: failed (Result: exit-code) since Fri 2022-07-29 07:56:25 CEST; 13s> Process: 1899 ExecStart=/home/chris/wetterstation.sh (code=exited, status=1> Main PID: 1899 (code=exited, status=1/FAILURE) CPU: 9ms Jul 29 07:56:25 ioBroker wetterstation.sh[1899]: wetterstation: ERROR #000 - Co> Jul 29 07:56:25 ioBroker wetterstation.sh[1899]: benutzt: V2.14.0 benöt
chris@ioBroker:~$ ./wetterstation.sh --debug wetterstation: ERROR #000 - Config-Version mismatch! benutzt: V2.14.0 benötigt wird: V2.16.0
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Es lässt sich endlich das Wetter draussen für morgen, heute im Script einstellen!!
Schön wäre es ^^
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Habe ich sonst noch was vergessen?
Nein, alles perfekt
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Legt die Rest-API alle DP neu an? Eigentlich nicht. Oder?
Nein, zumindest nicht von mir. Ich lege nur den DP Aussentemperatur_Trend an.
Er meckert jetzt aber "string" an und bekommt "number" (Zahl ist auch korrekt 0 bzw. 1)
Lt. deinem RAW steht er aber auf "string" ("number" ist nur als was es Influx speichern soll ). Soweit korrekt dass er da meckert. Warum der aber jetzt wieder als "string" da steht?
Da der Influx-Part schnell wieder konfiguriert ist würde ich den DP kpl. löschen und mal ein aktuelles wetterstation.js per Javascript laufen lassen. Dann stimmt der DP auf jeden Fall und du musst nur wieder die Influx-Einstellungen vom Datenpunkt noch nach ziehen. -
@björn-günther sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Connection to 127.0.0.1 8093 port [tcp/*] succeeded!
Stört mich da seehhrrr, passend dazu dann auch Zeile #21 - #30 (das ist eine HTML-Ausgabe). Daher rühren dann auch die ganzen Fehlermeldungen, denn er kann mit dem ioB nicht kommunizieren.
Port 8093 ist eigentlich der Standard-Port der Rest-API. Die wird aber aktuell nur zum anlegen von Datenpunkten benutzt, da sie (noch) kein Bulk-Update unterstützt.
Hast du ev. Simple-API (die _muss sein) mit Rest-API (die ist optional) verwechselt? -
@chris76e Das Skript ist auf V2.16.0 aber er hat die conf nicht auf V2.16.0 gepatcht.
Dir müssten eigentlich die Einstellungsmöglichkeiten fehlen:
Dann lade dir mittels "wget" (sie paar Posts hoch) noch mal die aktuelle Version des Updaters und führe im Installationsverzeichnis
./ws_updater.sh --patch
aus, dann sollte er sich wieder starten lassen. -
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du ev. Simple-API (die _muss sein) mit Rest-API (die ist optional) verwechselt?
Arghhhhhhhhhh.
Ja, vielen Dank fürs Augen öffnen.
Kaum nimmt man die richtige Api, schon geht es. -
Ich habe gegen Mitternacht eine neue Version des "ws_updaters" hochgeladen, der die aktuellen Probleme beim nachinstallieren von 'dc' beseitigen sollte.
Dieser landet dann erst mit der V2.17.0 auf eurem System. Kein Problem, denn das Problem tritt nur auf wenn man etwas nachinstallieren muss/soll. Ist bei der kommenden 17er nicht der Fall und aktuell bei der 18er auch (noch) nicht nötig.
Wer dennoch sichergehen will im aktuellen Installationsverzeichnis stehend mittels
wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
den aktuellen Updater downloaden und ersetzen. -
Danke, läuft jetzt. Muss man jedesmal beim Update die [3] Konfigurationdatei patchen auswählen oder habe ich einfach nur pech gehabt?
-
@chris76e sagte in [Linux Shell-Skript] WLAN-Wetterstation:
oder habe ich einfach nur pech gehabt?
Wie man es nimmt, es könnte aber auch einfach am Programmierer gelegen haben
Ist systembedingt beim Beta-Test nicht aufgefallen, da der eine etwas andere Routine nutzt. Normal startet man nur den Updater und wählt Punkt "4" für das Update aus, ab da funktioniert alles automatisch (zumindest bis zur V2.16.0 ) -