NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Nach vielen erfolglosem Lesen hier mal mein Problem: Ich mit dem ioBroker vom Raspi auf Docker auf dem Syno-NAS umgezogen. Das Skript für die Wetterstation lief auf dem Raspi seit Jahren problemlos. Der Umzug erfolgte, weil der Raspi wohl ein Hardwareproblem hat und gelegentlich unmotiviert abstürzt. Und das NAS werkelt sowieso 24h vor sich hin...
Bis auf die Wetterstation hat beim Umzug alles gut geklappt, habe eine recht umfangreiche Installation.
Die Wetterstation bekomme ich nur über die Konsole zum Laufen: Bei Aufruf von./wetterstation.sh --debug
bekomme ich bis auf zwei "kleine" Fehler (siehe unten) das Erwartete, aber nur ein einmaliges Schreiben der Werte in den ioBroker. Sprich mein Problem liegt prinzipiell darin, dass die Konfiguration offenbar passt, aber die Datenpunkte im ioBroker eben nicht aktualisiert werden.
So sieht das aus:
WLAN-Wetterstation V2.20.0 - (c)2019-2022 by SBorg Config-Version: V2.20.0 Sub-Version : V2.20.0 'bc' installiert: [✓] 'jq' installiert: [✓] 'dc' installiert: [✓] sudo: unable to resolve host iobrokerNAS1: Name or service not known 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 192.168.2.213 8087 port [tcp/*] succeeded! [ { "id": "javascript.0.Wetterstation.Innentemperatur", "val": 20.72 }, { "id": "javascript.0.Wetterstation.Aussentemperatur", "val": 6 }, { "id": "javascript.0.Wetterstation.Taupunkt", "val": -11.61 }, { "error": "datapoint \"javascript.0.Wetterstation.Gefuehlte_Temperatur\" not found" }, { "id": "javascript.0.Wetterstation.Innenfeuchtigkeit", "val": 46 }, { "id": "javascript.0.Wetterstation.Aussenfeuchtigkeit", "val": 27 }, { "id": "javascript.0.Wetterstation.Wind", "val": 13.03 }, { "id": "javascript.0.Wetterstation.Wind_max", "val": 14.8 }, { "id": "javascript.0.Wetterstation.Windrichtung", "val": 246 }, { "id": "javascript.0.Wetterstation.Druck_absolut", "val": 1009.11 }, { "id": "javascript.0.Wetterstation.Druck_relativ", "val": 1005.72 }, { "id": "javascript.0.Wetterstation.Regenrate", "val": 0 }, { "id": "javascript.0.Wetterstation.Regen_Tag", "val": 0.203 }, { "id": "javascript.0.Wetterstation.Regen_Woche", "val": 7.289 }, { "id": "javascript.0.Wetterstation.Regen_Monat", "val": 19.989 }, { "id": "javascript.0.Wetterstation.Regen_Jahr", "val": 0 }, { "id": "javascript.0.Wetterstation.Sonnenstrahlung", "val": 0 }, { "id": "javascript.0.Wetterstation.UV_Index", "val": 0 }, { "id": "javascript.0.Wetterstation.Zeitstempel", "val": "10.01.2023 19:51:01" }, { "id": "javascript.0.Wetterstation.Info.FW_Version", "val": "EasyWeatherV1.5.9" }, { "id": "javascript.0.Wetterstation.Regenstatus", "val": "kein Regen" }, { "id": "javascript.0.Wetterstation.UV_Belastung", "val": "keine" }, { "id": "javascript.0.Wetterstation.Windrichtung_Text", "val": "WSW" }, { "error": "datapoint \"javascript.0.Wetterstation.Info.Hitzeindex\" not found" } ] Messwerteblock: 20.72 6.00 -11.61 3.27 46 27 13.03 14.80 246 1009.11 1005.72 0 .203 7.289 19.989 0 0.00 0 10.01.2023%2019:51:01 EasyWeatherV1.5.9 Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : 20.72 °C Temperatur Aussen : 6.00 °C Taupunkt : -11.61 °C Gefühlte Temperatur : 3.27 °C Luftfeuchte Innen : 46 % Luftfeuchte Aussen : 27 % Windgeschwindigkeit : 13.03 km/h Windgeschwindigkeit 10min : km/h Windböengeschwindigkeit : 14.80 km/h max. Windböe : km/h Windrichtung : 246 ° Windrichtung : WSW Windrichtung 10min : ° Luftdruck absolut : 1009.11 hPa Luftdruck relativ : 1005.72 hPa Regenrate : 0 mm/h Regenstatus : kein Regen Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : .203 mm Regen Woche : 7.289 mm Regen Monat : 19.989 mm Regen Jahr : 0 mm Regen Gesamt : mm Sonnenstrahlung : 0.00 W/m² UV-Index : 0 Zeitstempel : 10.01.2023 19:51:01 Firmware : EasyWeatherV1.5.9 Batteriestand: : Gateway-Modell : Zusatzsensoren: keine Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=20.72&javascript.0.Wetterstation.Aussentemperatur=6.00&javascript.0.Wetterstation.Taupunkt=-11.61&javas cript.0.Wetterstation.Gefuehlte_Temperatur=3.27&javascript.0.Wetterstation.Innenfeuchtigkeit=46&javascript.0.Wetterstation.Aussenfeuchtigkeit=27&j avascript.0.Wetterstation.Wind=13.03&javascript.0.Wetterstation.Wind_max=14.80&javascript.0.Wetterstation.Windrichtung=246&javascript.0.Wetterstat ion.Druck_absolut=1009.11&javascript.0.Wetterstation.Druck_relativ=1005.72&javascript.0.Wetterstation.Regenrate=0&javascript.0.Wetterstation.Regen _Tag=.203&javascript.0.Wetterstation.Regen_Woche=7.289&javascript.0.Wetterstation.Regen_Monat=19.989&javascript.0.Wetterstation.Regen_Jahr=0&javas cript.0.Wetterstation.Sonnenstrahlung=0.00&javascript.0.Wetterstation.UV_Index=0&javascript.0.Wetterstation.Zeitstempel=10.01.2023%2019:51:01&java script.0.Wetterstation.Info.FW_Version=EasyWeatherV1.5.9&javascript.0.Wetterstation.Regenstatus=kein Regen&javascript.0.Wetterstation.UV_Belastung =keine&javascript.0.Wetterstation.Windrichtung_Text=WSW&javascript.0.Wetterstation.Info.Hitzeindex= Zusatzsensoren: DATA von Wetterstation: GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=69.3&tempf=42.8&dewptf=11.1&windchillf=37.9&indoorhumidity=46&h umidity=27&windspeedmph=8.1&windgustmph=9.2&winddir=246&absbaromin=29.799&baromin=29.699&rainin=0.000&dailyrainin=0.008&weeklyrainin=0.287&monthly rainin=0.787&yearlyrainin=0&solarradiation=0.00&UV=0&dateutc=2023-01-10%2018:51:01&softwaretype=EasyWeatherV1.5.9&action=updateraw&realtime=1&rtfr eq=5 HTTP/1.0 Debug VAR: Installationsverzeichnis: /opt/iobroker IPP: 192.168.2.213:8087 WS_PORT: 1080 WS_POLL: 30 P RE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Wunderground DP10/35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 0 || WS90: 0 Script-Version: V2.20.0 Config-Version: V2.20.0 Sub-Version: V2.20.0 root@iobrokerNAS1:/opt/iobroker#
Die Fehler
"error": "datapoint \"javascript.0.Wetterstation.Gefuehlte_Temperatur\" not found"
und
"error": "datapoint \"javascript.0.Wetterstation.Info.Hitzeindex\" not found"
erscheinen mir bei meinem Problem nicht relevant. Erstaunlich ist nur, dass diese Fehlermeldungen auch kommen, nachdem die Datenpunkte angelegt wurden.
Stutzig macht mich in Zeile 10
sudo: unable to resolve host iobrokerNAS1: Name or service not known
iobrokerNAS1 ist der Name des Dockercontainers:
Von Docker habe ich genau so viel Ahnung, dass ich das nach angelesener Anleitung installieren konnte.
Die Anleitung für die Wetterstation unter Docker Link verstehe ich leider nicht.
Was kann ich tun/kontrollieren/beistellen, damit das Skript der Wetterstation wieder regelmäßig Werte an den ioBroker liefert?VG
-
@homer Das liegt zum Teil an Docker, da kann man es nicht so ohne weiteres als Service starten. Deswegen funktioniert es per Aufruf aus dem Terminal auch.
Die Fehler sollten weg sein wenn du den Web-Server und Simple-API-Adapter neu startest (oder direkt einen kpl,
iob restart
Das kann beim anlegen von Datenpunkt per JS schon mal passieren. Blöderweise sieht man sie sogar in der GUI, nur der Simple-API-Adapter hat keinen Zugriff darauf.Da du den Standard-Port 1080 nutzt brauchst du im YAML-File dort nichts zu ändern. Du lädst dir noch das Docker-YAML-File herunter (liegt auf GitHub unter Docker) und kopierst es (bei dir) nach /opt/iobroker (also in das Verzeichnis in dem wetterstation.sh & Co. liegen). Dann startest du im /opt/iobroker-Verzeichnis stehend das Ganze per
docker-compose up
Dann sollten auch wieder alle Werte im ioB landen. Docker halt ....
-
@sborg Danke!
Die Adapter habe ich neu gestartet und docker-compose.yml von GitHub kopiert, siehe 4. Zeile vom Code.Aber was läuft hier noch falsch?
root@iobrokerNAS1:/opt/iobroker# ls -lh total 2,1M drwxr-xr-x 1 iobroker iobroker 200 Jan 10 21:55 backups -rwxrwxr-x 1 1026 users 635 Jan 3 04:18 docker-compose.yml drwxrwxrwx 1 iobroker iobroker 462 Jan 12 21:04 @eaDir -rwxr-xr-x 1 iobroker iobroker 234 Dez 23 19:28 INSTALLER_INFO.txt lrwxrwxrwx 1 iobroker iobroker 22 Dez 23 19:28 iob -> /opt/iobroker/iobroker -rwxr-xr-x 1 iobroker iobroker 381 Jan 7 17:13 iobroker -rwxr-xr-x 1 iobroker iobroker 381 Jan 7 17:12 iobroker.bak drwxr-xr-x 1 iobroker iobroker 386 Jan 12 19:23 iobroker-data -rwxr-xr-x 1 iobroker iobroker 242K Jan 12 21:11 ipcam2.jpg -rwxr-xr-x 1 iobroker iobroker 254K Jan 6 19:23 ipcamBK1.jpg -rwxr-xr-x 1 iobroker iobroker 253K Jan 6 19:23 ipcamBK2.jpg -rwxr-xr-x 1 iobroker iobroker 241K Jan 6 19:23 ipcamBK3.jpg -rwxr-xr-x 1 iobroker iobroker 213K Jan 12 13:36 ipcam.jpg drwxr-xr-x 1 iobroker iobroker 488 Jan 12 21:00 log drwxr-xr-x 1 iobroker iobroker 15K Jan 1 14:31 node_modules -rwxr-xr-x 1 iobroker iobroker 1004 Jan 1 14:31 package.json -rwxr-xr-x 1 iobroker iobroker 727K Jan 1 14:31 package-lock.json -rwxr-xr-x 1 iobroker iobroker 6,7K Dez 30 12:06 wetterstation.conf -rwxr-xr-x 1 iobroker iobroker 26K Jul 21 09:53 wetterstation.js -rwxrwxr-x 1 iobroker iobroker 21K Okt 2 14:16 wetterstation.sh -rwxr-xr-x 1 iobroker iobroker 80K Dez 20 14:18 wetterstation.sub -rwxr-xr-x 1 iobroker iobroker 29K Jan 7 17:07 ws_updater.sh root@iobrokerNAS1:/opt/iobroker# docker-compose up ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. root@iobrokerNAS1:/opt/iobroker#
-
@homer said in [Linux Shell-Skript] WLAN-Wetterstation:
http+docker://localhost
-
Herr Braun würde jetzt sinngemäß sagen:
"Warum zur Hölle froscht du als root rum?" -
Hast du den Docker-Dienst mal neugestartet?
-
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Einschränkungen dieses Beta-Releases:
Aktuell funktioniert der Luftdruck nicht, ebenso wie die Regenwerte
soll ich bei den Jungs mal anrufen? Die sind nur 1,5 Std. von mir entfernt.
Vielleicht bekommen wir es dann lauffähig.Oder hast du schon dort im Forum nachgefragt?
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Herr Braun würde jetzt sinngemäß sagen:
"Warum zur Hölle froscht du als root rum?"damit hat er ja auch recht. allerdings tuts bei docker nicht ohne, soweit ich das bisher da so gelesen hab.
-
@homer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aber was läuft hier noch falsch?
Vermutlich ist der "root" nicht in der Docker-Gruppe (+ auch root darf nicht alles )
Versuch mal ein "sudo" davor:sudo docker-compose up
Wenn das funktioniert kannst du den "root" auch mittels
sudo usermod -a -G docker $USER
der Docker-Gruppe hinzufügen, dann braucht es auch kein "sudo" mehr zum starten. -
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Oder hast du schon dort im Forum nachgefragt?
Ich hatte Kontakt per Mail mit einem der Admins. Da ich das aktuelle Awekas-Konzept aber so nicht weiterverfolgen werde (Stichwort Zusatzsensoren), könnte es sein, dass es dann auch mit dem neuen Verfahren sowieso funktioniert
Ihr (...oder viel mehr du ) wolltet aber schon mal testen, deswegen auch diese halbfertige und nicht voll funktionale Beta. Aktuell habe ich aber wieder kaum Zeit (und aktuell muss ich mich jetzt zuerst dem "Wittboy-Issue" zuwenden)...
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
könnte es sein, dass es dann auch mit dem neuen Verfahren sowieso funktioniert
Ja, das wäre sehr cool!
neues Verfahren??
Wie/Was/Wo? -
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
neues Verfahren??
Wie/Was/Wo?Aktuell "baue" ich den Awekas-Datenstring von Hand zusammen und muss mir die Parameterwerte "erraten".
Einfacher wäre den aktuellen Ecowitt/wunderground zu nehmen und diesen zurecht zu patchen. Awekas nutzt eigentlich den originalen WU-String unter Zuhilfenahme des Custom-Servers unserer Displays/Gateways. Das geht so nicht, da die meisten den (besseren) Ecowitt nutzen, zusätzlich brauche ich den Custom für das Skript
Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.21.0 vom 13.01.2023
(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.])
- + Support für Awekas.at (beta)
- ~ fix fehlende Regenwerte wenn nur der WS90 ohne weitere Außeneinheit benutzt wird / Issue #51
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 .Info.Awekas_at); 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
Wer bereits die Beta-Version der V2.21.0 (vom 02.01.2023) nutzt sollte ggf. trotzdem updaten (hier muss die "sub" und "sh" getauscht werden, wetterstation.js(*) im ioB ersetzt und einmalig ausgeführt werden [wg. neuem Datenpunkt .Info.Awekas-at] und den Service neu zu starten). Zum einen als Test ob die Änderungen nix kaputt gemacht haben, zum anderen wird nun auch der Status der Datenübertragung an Awekas angezeigt.
(*) wer noch die "wetterstation.conf.backup" hat und den Rest-API-Adapter (nicht verwechseln mit dem Simple Restful-Adapter ) nutzt kann auch alternativ
- diese wieder rücksichern
cp wetterstation.conf.backup wetterstation.conf
(überschreibt aber ev. getätigte Änderungen seit des Backups) - die *.conf nun mittels
./ws_updater.beta --patch
wieder auf die V2.21.0 patchen (dank neuer Version des Updaters und API wird nun im ioB der Datenpunkt angelegt ) - Awekas ggf. aktivieren und die Zugangsdaten neu eintragen (wg. des aktuellen Backups stehen die jetzt noch in der wetterstation.conf.backup drin)
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wg. neuem Datenpunkt .Info.Awekas-at]
DP bleibt auf
false
, obwohl an Awekas übertragen wird. -
@negalein Hast du mittels JS oder REST-API den DP anlegen lassen?
Ich glaube fast da hat sich ein Bug (im ioB) eingeschlichen, bei mir hat(te) es ebenfalls per JS nicht funktioniert. Die DPs sind zwar nach dem Anlegen im ioB sichtbar, aber nicht per Simple-API erreichbar.
Egal wie/warum, restarte mal den Simple-API, dann sollte es funktionieren. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du mittels JS oder REST-API den DP anlegen lassen?
mit JS
restarte mal den Simple-API, dann sollte es funktionieren.
Bingo, das wars.
Nächstesmal mach ich es wieder mit Rest-Api.
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
sudo usermod -a -G docker $USER
Ergebnis:
root@iobrokerNAS1:/opt/iobroker# sudo docker-compose up sudo: unable to resolve host iobrokerNAS1: Name or service not known ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. root@iobrokerNAS1:/opt/iobroker#
Da bin ich echt ratlos: Ich bin im iob-Terminal auf der Syno ja auch immer root eingeloggt und habe gesucht aber keine Möglichkeit gefunden, mich als anderer User oder über SSH in den iobroker einzuloggen.
Was kann ich noch versuchen?
H.
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nächstesmal mach ich es wieder mit Rest-Api.
Wenn ich es nicht vergesse nehme ich es mit in die Beschreibung auf. Da es per REST-API funktioniert dürfte es ein Problem des Simple-Resful sein. Ob der aber hinsichtlich des neuen REST-Adapters noch gefixt würde...
Ist aber im Bedarfsfall auch schnell durchgeführt, nur wissen muss man es. Das hat mich beim ersten mal Stunden gekostet, weil ich den Fehler bei mir suchte (+der DP in den Objekten korrekt angelegt wurde) -
@homer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Was kann ich noch versuchen?
Ich habe von Docker auch recht wenig Ahnung, die Fehlermeldung besagt aber
- keine Berechtigung des Users am Container
- Docker läuft nicht
Deswegen
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du den Docker-Dienst mal neugestartet?
auch schon versucht?
sudo systemctl restart docker
-
Minimini-Update für die V2.21.0 (beta) (na, wer findet es ) :
Einfach wetterstation.sub tauschen und Service neu starten:
sudo systemctl restart wetterstation
-
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Luftdruck
Rischdisch, war ja auch super schwer
Test läuft ( ), kommt dann voraussichtlich morgen in die Beta und dann wahrscheinlich auch genau so als V2.21.0 Release
-
@sborg Alles versucht: Ohne Erfolg.
root@iobrokerNAS1:/opt/iobroker#./wetterstation.sh --debug
läuft durch. Datenpunkte im ioBroker werden aktualisiert, mittlerweile auch ohne Fehlermeldung, sprich auch die beiden vormals mit Fehlern behafteten Datenpunkte werden jetzt belegt.
Offener Fehler im Log:
sudo: unable to resolve host iobrokerNAS1: Name or service not known
Gefunden: This error indicates that your hostname failed to translate into an IP address. Usually, this error occurs when you change the hostname of your system. Please check the details in the Address field as entered by you. Also, check if the hostname of your FTP server and IP address is correct.
Da ich den ioBroker (ehemals Raspi, jetzt Syno-NAS) über ein Backup eingespielt habe: Hatte ich evt. unter dem Raspi einen anderen Hostname und das passt jetzt nicht mehr?
H.
root@iobrokerNAS1:/opt/iobroker# hostname iobrokerNAS1
Oder hängt es an "sudo": Nachfolgend ls einmal mit, einmal ohne "sudo":
root@iobrokerNAS1:/opt/iobroker# sudo ls sudo: unable to resolve host iobrokerNAS1: Name or service not known backups INSTALLER_INFO.txt iobroker.bak ipcamBK1.jpg ipcam.jpg package.json wetterstation.conf wetterstation.sub docker-compose.yml iob iobroker-data ipcamBK2.jpg log package-lock.json wetterstation.js ws_updater.sh @eaDir iobroker ipcam2.jpg ipcamBK3.jpg node_modules wetter1.sh wetterstation.sh root@iobrokerNAS1:/opt/iobroker# ls backups INSTALLER_INFO.txt iobroker.bak ipcamBK1.jpg ipcam.jpg package.json wetterstation.conf wetterstation.sub docker-compose.yml iob iobroker-data ipcamBK2.jpg log package-lock.json wetterstation.js ws_updater.sh @eaDir iobroker ipcam2.jpg ipcamBK3.jpg node_modules wetter1.sh wetterstation.sh
-> Mit sodo kommt ein Fehler, ohne keiner...