NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Falls du noch mal testen willst genügt nun die "einfache" Variante:
perfekt
dietpi@DietPi:/home/iobroker$ ./ws_updater.beta --patch ┌────────────────────────┐ │ │ │ WS-Updater V2.16.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 Version ist bereits aktuell... dietpi@DietPi:/home/iobroker$
-
Hallo zusammen,
Habe (noch) die vielleicht etwas komische Konstellation einer GW1100A und nur eines weiteren WH31 (aber das dnt derivat DNT000005) am laufen. GW1100A meldet auch alles inkl. dem WH31.
Script ist installiert, läuft mit WU auch wunderbar, aber eben ohne den WH31 (ich glaube das liegt am WU Format).
Mit Ecowitt bekomme ich einen Kommunikationsfehler, aber leider keine Infos warum. Schickt der GW1100A irgendwie Daten, die das Script nicht versteht?
Hier der Debug Log:
WLAN-Wetterstation V2.15.0 - (c)2019-2022 by SBorg Config-Version: V2.15.0 Sub-Version : V2.15.0 'bc' installiert: [✓] 'jq' installiert: [✓] 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 192.168.1.77 8087 port [tcp/*] succeeded! Messwerteblock: Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windgeschwindkeit 10min : km/h Windböengeschwindigkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Windrichtung 10min : ° Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Batteriestand: : Gateway-Modell : Zusatzsensoren: Datenstring für ioBroker: DATA von Wetterstation: PASSKEY=xxxxxx&stationtype=GW1100A_V2.1.5&runtime=164656&dateutc=2022-07-21+17:18:09&tempinf=80.24&humidityin=51&baromrelin=29.007&baromabsin=29.007&temp1f=77.54&humidity1=48&batt1=0&freq=868M&model=GW1100A Debug VAR: Installationsverzeichnis: /home/pi/wetterstation IPP: 192.168.1.77:8087 WS_PORT: 9999 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 1 Script-Version: V2.15.0 Config-Version: V2.15.0 Sub-Version: V2.15.0 Kommunikationsfehler!
Vielleicht kann mir ja jemand helfen
Danke schon mal!
-
@mi28havoc sagte in [Linux Shell-Skript] WLAN-Wetterstation:
die vielleicht etwas komische Konstellation
Da ist auch dein Problem. Eigentlich ist es für Wetterstationen gedacht und da gibt es eine Außentemperatur.
Beim Ecowitt-Protokoll wird nun das empfangene Datenpaket geprüft:- Länge > 150 Zeichen
- enthält einen Part PASSKEY
- enthält die Außentemperatur ( )
Fehlt etwas ist das Paket nicht valide + die Kommunikation ist gestört.
Bei "(noch)" gehe ich mal davon aus es kommt mal noch was dazu. Aktuell kannst du nur die Version selbst patchen.
Öffne die wetterstation.sub mittels zB. "nano" --> STRG+W --> tempf= eingebenDa landest du bei der Zeile:
if [ "$STRLEN" -gt "150" ] && [[ "$DATA" =~ "PASSKEY=" ]] && [[ "$DATA" =~ "tempf=" ]]; then return 0; else return 1; fi
Die ändern wir auf einen kürzeren String und auf die Innentemperatur (einfach ersetzen):
if [ "$STRLEN" -gt "100" ] && [[ "$DATA" =~ "PASSKEY=" ]] && [[ "$DATA" =~ "tempinf=" ]]; then return 0; else return 1; fi
Speichern, dann sollte es eigentlich auch mit dieser Konfiguration laufen
-
@sborg ja nice, vielen Dank! Das funktioniert. Leider kommen die Daten des zweiten Sensors noch nicht mit.
WLAN-Wetterstation V2.15.0 - (c)2019-2022 by SBorg Config-Version: V2.15.0 Sub-Version : V2.15.0 'bc' installiert: [✓] 'jq' installiert: [✓] 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 192.168.1.77 8087 port [tcp/*] succeeded! [ { "id": "javascript.0.Wetterstation.Innentemperatur", "val": 26.3 }, { "id": "javascript.0.Wetterstation.Innenfeuchtigkeit", "val": 50 }, { "id": "javascript.0.Wetterstation.Druck_absolut", "val": 982.08 }, { "id": "javascript.0.Wetterstation.Druck_relativ", "val": 1020.11 }, { "id": "javascript.0.Wetterstation.Zeitstempel", "val": "21.07.2022 20:37:16" }, { "id": "javascript.0.Wetterstation.Info.FW_Version", "val": "GW1100A_V2.1.5" }, { "id": "javascript.0.Wetterstation.Info.Wetterstation_Gateway", "val": "GW1100A" }, { "id": "javascript.0.Wetterstation.Regenstatus", "val": "" }, { "id": "javascript.0.Wetterstation.UV_Belastung", "val": "" }, { "id": "javascript.0.Wetterstation.Windrichtung_Text", "val": "" }, { "id": "javascript.0.Wetterstation.Info.Hitzeindex", "val": "" } ] Messwerteblock: 26.30 50 982.08 1020.11 21.07.2022%2020:37:16 GW1100A_V2.1.5 GW1100A Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : 26.30 °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : 50 % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windgeschwindkeit 10min : km/h Windböengeschwindigkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Windrichtung 10min : ° Luftdruck absolut : 982.08 hPa Luftdruck relativ : 1020.11 hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : 21.07.2022 20:37:16 Firmware : GW1100A_V2.1.5 Batteriestand: : Gateway-Modell : GW1100A Zusatzsensoren: Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=26.30&javascript.0.Wetterstation.Innenfeuchtigkeit=50&javascript.0.Wetterstation.Druck_absolut=982.08&javascript .0.Wetterstation.Druck_relativ=1020.11&javascript.0.Wetterstation.Zeitstempel=21.07.2022%2020:37:16&javascript.0.Wetterstation.Info.FW_Version=GW1100A_V2.1 .5&javascript.0.Wetterstation.Info.Wetterstation_Gateway=GW1100A&javascript.0.Wetterstation.Regenstatus=&javascript.0.Wetterstation.UV_Belastung=&javascrip t.0.Wetterstation.Windrichtung_Text=&javascript.0.Wetterstation.Info.Hitzeindex= DATA von Wetterstation: PASSKEY=xxxxxx&stationtype=GW1100A_V2.1.5&runtime=1372&dateutc=2022-07-21+18:37:16&tempinf=79.34&humidityin=50&baromrelin=30.124&baromabsin=29.001&temp1f=7 0.70&humidity1=66&batt1=0&freq=868M&model=GW1100A Debug VAR: Installationsverzeichnis: /home/pi/wetterstation IPP: 192.168.1.77:8087 WS_PORT: 9999 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 1 Script-Version: V2.15.0 Config-Version: V2.15.0 Sub-Version: V2.15.0
Sensor ist in Config eingetragen, hast du da auch noch einen Tipp?
P.S. Ja, Außensensoren kommen definitiv noch Bin nur nicht sicher ob WS69 oder lieber WH80 + WH40 - tendiere zu Letzterem, auch wenn es teurer ist.
-
@mi28havoc sagte in [Linux Shell-Skript] WLAN-Wetterstation:
hast du da auch noch einen Tipp?
Jupp, lt dem Datenstring des Gateways meldet er sich wie ein DP50. WH31 und DP50 sind eigentlich identisch, nur hat da Froggit/Ecowitt ein wenig Kuddelmuddel...
Also trag ihn mal beim WH31 aus und als DP50 ein. Wenn er sich dann bei der Debug-Ausgabe meldet, noch im JS-Adapter auf DP50 umstellen und ausführen, sonst hast du keine DPs/Daten im ioB -
@sborg und auch das hat wunderbar funktioniert, vielen Dank für deine Hilfe
-
@mi28havoc Immer gerne
Solange du halt nicht wenigstens die Außentemperatur als Sensorwert hast, musst du bei einem Update des Skriptes nur daran denken die Zeile nach dem Update wieder zu ändern.
-
Hi,
ich versuche schon seit Stunden das Script zum laufen zu bekommen, bekomme aber immer einen Kommunikationsfehler. Kann mir jemand helfen?WLAN-Wetterstation V2.15.0 - (c)2019-2022 by SBorg Config-Version: V2.15.0 Sub-Version : V2.15.0 'bc' installiert: [✓] 'jq' installiert: [✓] 'nc' in der Openbsd-Variante installiert: [✓] 'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] Connection to 10.20.12.21 31087 port [tcp/*] succeeded! Messwerteblock: Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windgeschwindkeit 10min : km/h Windböengeschwindigkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Windrichtung 10min : ° Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Batteriestand: : Gateway-Modell : Zusatzsensoren: Datenstring für ioBroker: DATA von Wetterstation: Debug VAR: Installationsverzeichnis: /opt/wetterstation IPP: 10.20.12.21:31087 WS_PORT: 2080 WS_POLL: 30 PRE_DP: 0_userdata.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 WH31: 0 Script-Version: V2.15.0 Config-Version: V2.15.0 Sub-Version: V2.15.0 Kommunikationsfehler!
Edit: läuft im Docker mit dem Image raspbian/stretch:latest
-
@meerkat
versuch mal den WS Port in der App der Wetterstation zu ändern z.b. 9080 und dann auch im config file des Scriptsbei der IPP hast du den Port des Simple-adapters geändert? Der ist default denke ich auf 8087 eingestellt.
Die 31087 ist hoffentlich richtig.Hier meine Einstellung im ioB:
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die 31087 ist hoffentlich richtig.
Jepp, ist sie. Sieht man in Zeile #12 :
Connection to 10.20.12.21 31087 port [tcp/*] succeeded!
Besagt es wurde eine Verbindung zum ioB und der API hergestellt. Was allerdings nicht funktioniert ist die Verbindung vom Display/Gateway zum Auswerte-Rechner (=der auf dem das Skript läuft).
@meerkat Als bekennender "Docker-Spezialist" (Ok, [/Ironie AUS]) den Port 2080 hast du durch gereicht? Dieser ist auch von außerhalb wirklich erreichbar (von einem anderen Rechner aus
nc -vz 10.20.12.xxx 2080
[xxx natürlich durch die korrekte IP ersetzen ])
IP des Auswerte-Rechners, Port und Pfad stimmen in der WS View[+] App ? -
@sborg
Jein. Mir ist eben noch eingefallen, dass ich sowas ähnliches schon einmal hatte. Habe dem Container eine eigene IP gegeben und nun funktioniert die Verbindung. Einzige ist, dass die ersten Werte geschrieben werden, aber dann nicht mehr. Ich setze nachher noch einmal ein neuen Container auf, habe dort nun doch sehr viel dran herumgespielt, vielleicht ist dort was nicht sauber konfiguriert.Danke für die Hilfestellung
-
Keine Ahnung ob das in dem langen Thread schon wo erwähnt wurde:
Wenn die Weatherstation WeatherUnderground Protokoll kann, dann könnte der Adapter
"Sainlogic Weatherstation" auch von Interesse sein. Dieser unterstützt lt. Info folgende Geräte (
Zitat:Grundsätzlich wird bei jedem Gerät, das mit der Sainlogic-Hardware arbeitet, die Firmware normalerweise als "EasyWeather Vx.x.x)" gemeldet.
Bekannte Arbeitsgeräte:
ELV WS980Wifi
Eurochron EFWS2900 (nur Listener-Modus)
Froggit WH400SE
Froggit DP1500
Sainlogic WS3500 (nur Listener-Modus)
WH51 Feuchtigkeitssensor
Ecowitt GW1000 -
@mcm57 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
könnte der Adapter
"Sainlogic Weatherstation" auch von Interesse seinhab ihn vor einiger Zeit mal getestet. Der kann nicht das, was @SBorg mit seinem Script macht.
-
@meerkat sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Einzige ist, dass die ersten Werte geschrieben werden, aber dann nicht mehr.
Hast du ev. in der Config
debug=true
stehen? Dann wird nach einem Durchlauf automatisch gestoppt
@mcm57 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Keine Ahnung ob das in dem langen Thread schon wo erwähnt wurde
Schon öfters. Ist halt etwas einfacher zu installieren, aber ich wollte extra diesmal keinen Adapter. Braucht etwa 5x weniger Ressourcen und vom Funktionsumfang wollen wir erst gar nicht reden. Zudem überlebt es jeglichen Javascript, node, NPM oder sonstiges Updates (bzw. benötigt die erst gar nicht)
-
Die v2.16.0 geht demnächst ins Release und für die V2.17.0 (Beta) melde ich "Flasche all, habe fertig..."
Nun wesentlich weniger "Gezappel" (Beispiel von wetter.com) :
...und der Temperaturtrend werkelt auch munter (+ der Datenpunkt wurde korrekt mittels Rest-API und ws_updater-Beta erzeugt ) :
...und eine neue Idee habe ich auch noch, allerdings genügen die Änderungen für die V2.17.0
Lieber kleine Schritte "step by step", so lassen sich Fehler einfacher identifizieren. Dank des WS-Updaters sind die Updates ja auch ratz-fatz durch
Roadmap
V2.18.0 - + lasst euch überraschen...
-
Roadmap
V2.18.0 - + lasst euch überraschen...
-
@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.