NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
V2.17.0 (Beta)
ich natürlich gleich auf Git gesprungen.
Mennoooo, da ist noch keine Beta -
@sborg HI, nein habe ich nicht. Ich kann auch den Service nicht starten, weder mit root noch einem anderen User.
Ich bekomme als Fehlersudo systemctl start wetterstation Failed to connect to bus: No such file or directory
Ich mag ja Docker, aber so langsam nervt es, dass alles immer anders läuft als auf einer physischen Hardware. Hast du da noch ein paar Tipps für mich
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
V2.17.0 (Beta)
ich natürlich gleich auf Git gesprungen.
Mennoooo, da ist noch keine BetaIch release gerade die 16er, die 17er Beta folgt dann zeitnah
...ich glaub euch (oder zumindest einigen) ja dass es in den Fingern juckt (geht mir an anderer Stelle doch genauso ), aber bedenkt auch, dass ist nicht mit ein paar Maus-Klicks erledigt. Das publishen neuer Releases/Betas ist schon mit "etwas" Aufwand verbunden
...und ich bin nicht mehr der jüngste/schnellste -
@meerkat sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich mag ja Docker, aber so langsam nervt es, dass alles immer anders läuft als auf einer physischen Hardware. Hast du da noch ein paar Tipps für mich
Nicht wirklich, "Docker-Spezialist" eben...
Genau aus den Gründen nutze ich lieber Proxmox. Wahrscheinlich wäre Docker genauso gut wenn ich mich mehr damit beschäftigen würde.
Ich vermute einfach mal, dass Docker in der Konstellation einfach keinen Service unterstützt.
Du könntest im Container einfach ein Terminal offen lassen und im Installationsverzeichnis stehend dann einfach./wetterstation.sh
ausführen. Genau das macht der Service auch, nur halt ohne extra Terminal und automatisch beim booten. Denkbar wäre es auch einfach mittels cronjob zu starten. -
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Roadmap
V2.18.0 - + lasst euch überraschen...
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 ist -
Da keine offensichtlichen Fehler aufgetreten sind:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.16.0
- + Windrichtung der letzten 10 Minuten für alle Stationen (benötigt wird dafür nun noch 'dc')
- + durchschnittliche Windgeschwindigkeit der letzten 10 Minuten für alle Stationen
- ~ Bugfix gelegentlicher "jq parse"-Fehler
- ~ Bugfix Regenmenge des meteorologischen Sommers aktualisiert sich nicht
Wie immer zu finden im GitHub
Update-Routine von Vorgängerversion:
- aktuellen WS-Updater nutzen (Download falls älter als V2.12.1:
wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
) ./ws_updater.sh
im Installationsverzeichnis ausführen (ggf. muss nun 'dc' nachinstalliert werden)- Menüpunkt "4" wählen und die Fragen beantworten
Update sollte durchgeführt werden wenn man die beiden neuen Funktionen haben möchte und eine Aktualisierung der Regenmenge des meteorologischen Sommers. Der "jq parse"-Fehler ist nur optischer Natur, keine Funktionsbeeinträchtigung.
Dieses Release ist mit der Beta-Version identisch.
Falls 'dc' nachinstalliert werden muss, funktioniert danach der ws_updater nicht mehr.
Temporäre Fehlerbeseitigung: den ws_updater von GirHub nochmals laden und ihn dann wieder starten
wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
./ws_updater.sh
hmm. sollte dc nachinsten. danach fehlermeldung bei ./ws_updater.sh. leider gelöscht. bei neuaufruf ./ws_updater.sh bekomm ich nur mehr:
woody@ioBroker:~$ ./ws_updater.sh -bash: ./ws_updater.sh: /bin/bash^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden woody@ioBroker:~$
bin aber definitiv in
woody@ioBroker:~$ ls wetterstation.conf wetterstation.conf.backup wetterstation.js wetterstation.sh wetterstation.sub ws_updater.sh woody@ioBroker:~$
-
@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.