NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hallo, habe kürzlich endlich meine Lieferung aus USA bekommen und möchte jetzt nach und nach mein GW1000 und die ganzen Sensoren einbinden.
Habe also heute nach Github Anleitung das Skript installiert und passend zum GW1000 per WS View konfiguriert.Es scheinen auch Daten zu kommen welche allerdings nicht korrekt gelesen zu werden scheinen...
./wetterstation.sh --debug Connection to 192.168.y.z 8087 port [tcp/*] succeeded! Listening on 0.0.0.0 1080 Connection received on 192.168.y.z 39356 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 Chill-Faktor : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windböengeschwindkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : 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=totalgeheim&stationtype=GW1000A_V1.6.3&dateutc=2019-08-22+08:25:11&tempinf=72.0&humidityin=54&baromrelin=28.928&baromabsin=28.928&freq=868M&model=GW1000_Pro Debug VAR: Installationsverzeichnis: /home/iobroker IPP: 192.168.y.z:8087 WS_PORT: 1080 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP50/100: 4 | 0 Script-Version: V2.1.0 Config-Version: V2.1.0 Sub-Version: V2.1.0 Kommunikationsfehler! Stimmt die WS_ID in der Konfiguration mit der der WS View-App überein?
WS_ID kann ich in WS View nicht setzen da ich das Ecowitt Protokoll ausgewählt habe, an Sensoren habe ich nur einen WH31A (DP50) und das GW aktiv aktuell.
Das Datum scheint noch nicht zu stimmen, aber ich nehme nicht an das das abgeglichen wird...Zwischenzeitlich hatte ich auch noch folgende Fehler:
Connection to 192.168.y.z 8087 port [tcp/*] succeeded! Listening on 0.0.0.0 1080 Connection received on 192.168.y.z 35888 (standard_in) 12: syntax error /home/iobroker/wetterstation.sub: line 365: [: : integer expression expected /home/iobroker/wetterstation.sub: line 366: [: : integer expression expected /home/iobroker/wetterstation.sub: line 367: [: : integer expression expected /home/iobroker/wetterstation.sub: line 368: [: : integer expression expected /home/iobroker/wetterstation.sub: line 369: [: : integer expression expected
Ich habe schon mal versucht im Thread herauszulesen ob denn der GW1000 überhaupt kompatibel ist aber konnte nichts genaues finden (ausser den Verweis auf die Node Red Alternative).
Am Ende suche ich etwas was mit allen möglichen Sensoren läuft (inc Blitzsensor und Ultrasonic Windsensor) ... ist das mit dem Skript machbar oder wäre da die Node Red Lösung sinnvoller?Danke
-
@rand Ich nutze auch die GW1000 mit der gleichen Firmware: GW1000A_V1.6.3 und einen DP50 dazu. Bei mir läuft alles und wir sollte es auch bei dir hinkriegen.
Als erstes solltest du in der WS App die Zeitzone und den Hacken für Auto adjust.
Live Data -> More -> Device SettingsWenn du nur einen DS50 hast, wieso hast du 4 konfiguriert?
Wenn du das eingestellt hast, dann ändere in wetterstation.sub die Zeile: 221
von
if [ "$STRLEN" -gt "400" ] && [[ "$DATA" =~ "PASSKEY=" ]]; then return 0; else return 1; fi
in
if [ "$STRLEN" -gt "200" ] && [[ "$DATA" =~ "PASSKEY=" ]]; then return 0; else return 1; fiMach also aus 400 eine 200
Das sollte vorerst helfen.
-
Hi,
danke für die schnelle Antwort.
Braucht Auto Adjust im GW einen Internetzugang? Da dürfte die FW im Weg stehen dann... Aber ich schaue malDP50 - weil im Endausbau 4 Stück da sein werden, daher war ich bequem und habe das gleich mal konfiguriert.
Wenn das allerdings Fehler verursacht dann passe ich das flugs an, das ist ja kein Thema...Edit - Autoadjust ist an (default), steht aber auf dem falschen Datum... das heisst er sucht irgendeinen Timeserver im Inet den er bei mir natürlich erstmal nicht erreicht...
-
@rand Die WS braucht Zugang zu einem Timeserver und ohne Internet wird es schwierig sein. Es geht nur mit Tricks und DNS umleitung.
-
@a200 said in [Linux Shell-Skript] WLAN-Wetterstation:
@rand Die WS braucht Zugang zu einem Timeserver und ohne Internet wird es schwierig sein. Es geht nur mit Tricks und DNS umleitung.
DNS Umleitung wäre ja trivial wenn der Server bekannt ist?
Kann ich doch dann einfach an meinen eigenen NTP umleiten... mal das Log anschauenEdit
Er versucht ne ganze Menge...
-
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 said in [Linux Shell-Skript] WLAN-Wetterstation:
@rand Die WS braucht Zugang zu einem Timeserver und ohne Internet wird es schwierig sein. Es geht nur mit Tricks und DNS umleitung.
DNS Umleitung wäre ja trivial wenn der Server bekannt ist?
Kann ich doch dann einfach an meinen eigenen NTP umleiten... mal das Log anschauenPiHole ist da ganz praktisch. Hast du den Wert auf 200 gesetzt?
-
PiHole ist da ganz praktisch. Hast du den Wert auf 200 gesetzt?
Ja, tut aber noch nicht.
Aber mag noch an der Zeit liegenEdit
Connection received on 192.168.y.z10545 (standard_in) 12: syntax error /home/iobroker/wetterstation.sub: line 365: [: : integer expression expected /home/iobroker/wetterstation.sub: line 366: [: : integer expression expected /home/iobroker/wetterstation.sub: line 367: [: : integer expression expected /home/iobroker/wetterstation.sub: line 368: [: : integer expression expected /home/iobroker/wetterstation.sub: line 369: [: : integer expression expect
kommt auch noch
-
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
PiHole ist da ganz praktisch. Hast du den Wert auf 200 gesetzt?
Ja, tut aber noch nicht.
Aber mag noch an der Zeit liegenEdit
Connection received on 192.168.y.z10545 (standard_in) 12: syntax error /home/iobroker/wetterstation.sub: line 365: [: : integer expression expected /home/iobroker/wetterstation.sub: line 366: [: : integer expression expected /home/iobroker/wetterstation.sub: line 367: [: : integer expression expected /home/iobroker/wetterstation.sub: line 368: [: : integer expression expected /home/iobroker/wetterstation.sub: line 369: [: : integer expression expect
kommt auch noch
das kommt, weil die Regenmenge nicht übertragen wird und auf der einige Berechnungen basieren. Wenn die Regenmenge kommt, dann verschwinden auch diese Fehler:
-
@a200 said in [Linux Shell-Skript] WLAN-Wetterstation:
das kommt, weil die Regenmenge nicht übertragen wird und auf der einige Berechnungen basieren. Wenn die Regenmenge kommt, dann verschwinden auch diese Fehler:
Ah ok, dann ignoriere ich das erstmal.
Zeit sieht etwas komplizierter aus bzw es gibt noch sekundäre "Probleme" mit der FW...
https://www.wxforum.net/index.php?topic=40437.msg417925#msg417925Sieht so aus als müsste ich da erstmal etwas basteln.
-
@a200
So, hat etwas gedauert bis ich die beiden FWs in Sync hatte für den NTP Redirect...Musste Zeile 221 auch noch kleiner setzen da mit dem einen Sensor die Länge nur 185 Zeichen war
Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=22.50&javascript.0.Wetterstation.Innenfeuchtigkeit=55&javascript.0.Wetterstation.Druck_absolut=978.09&javascript.0.Wetterstation.Druck_relativ=978.09&javascript.0.Wetterstation.Zeitstempel=21.01.2021%2000:18:58&javascript.0.Wetterstation.Info.FW_Version=GW1000A_V1.6.3&javascript.0.Wetterstation.Info.Wetterstation_Gateway=GW1000_Pro&javascript.0.Wetterstation.Regenstatus=&javascript.0.Wetterstation.UV_Belastung=&javascript.0.Wetterstation.Windrichtung_Text= DATA von Wetterstation: PASSKEY=SECRET&stationtype=GW1000A_V1.6.3&dateutc=2021-01-20+23:18:58&tempinf=72.5&humidityin=55&baromrelin=28.883&baromabsin=28.883&freq=868M&model=GW1000_Pro Debug VAR: Installationsverzeichnis: /home/iobroker IPP: 192.168.y.z:8087 WS_PORT: 1080 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP50/100: 1 | 0 Script-Version: V2.1.0 Config-Version: V2.1.0 Sub-Version: V2.1.0
Sieht ja schon mal ganz gut aus, danke sehr.
Funktionieren alle bekannten/verfügbaren 868MhZ Sensoren mit dem Skript oder sind da noch welche zu implementieren? -
ich komm hier noch ned ganz klar... wie kann ich denn innerhalb des Freds hier suchen?
Meine DNT zeigt mir am Display die richtige uhrzeit an - 06:58 die Daten kommen aber mit dem Zeitstempel 05:58 an.
Kann ich das iwie / iwo ändern? -
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wie kann ich denn innerhalb des Freds hier suchen?
In User Einstellung aktivieren :
STRG + F
-
@glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
wie kann ich denn innerhalb des Freds hier suchen?
In User Einstellung aktivieren :
STRG + F
Danke dir! Dann muss ich evtl manche Frage ned zum 1000, mal stellen hier
-
Frage zum Statistik-Script, ich möchte mir die Rekordwerte mit Tag anzeigen lassen, laut Skript müsste die Zeile
let REKORDWERTE_AUSGABEFORMAT="[WERT] im [MONAT] [JAHR]";
mit [TAG] ergänzt werden. Der Datenpunkt wird dann aber so geschrieben: 9.88 °C am [Tag] Januar 2021
und das Log zeigt folgendes:
2021-01-21 01:03:00.287 - warn: javascript.0 (23874) You are assigning a number to the state "0_userdata.0.Wetterstation.Statistik.Rekordwerte.Temperatur_Spitzenhoechstwert" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions. 2021-01-21 01:03:00.290 - warn: javascript.0 (23874) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1416:20) 2021-01-21 01:03:00.291 - warn: javascript.0 (23874) at Rekordwerte (script.js.common.wetterstation-statistik:562:9) 2021-01-21 01:03:00.291 - warn: javascript.0 (23874) at Object.cb (script.js.common.wetterstation-statistik:265:5) 2021-01-21 01:03:00.292 - warn: javascript.0 (23874) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5297:71) 2021-01-21 01:03:00.292 - warn: javascript.0 (23874) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41) 2021-01-21 01:03:00.293 - warn: javascript.0 (23874) at runCallback (timers.js:705:18) 2021-01-21 01:03:00.293 - warn: javascript.0 (23874) at tryOnImmediate (timers.js:676:5) 2021-01-21 01:03:00.293 - warn: javascript.0 (23874) at processImmediate (timers.js:658:5) 2021-01-21 01:03:00.294 - warn: javascript.0 (23874) at process.topLevelDomainCallback (domain.js:126:23) 2021-01-21 01:03:05.501 - warn: influxdb.0 (23336) Error on writePoint("{"value":"9.88 °C am [Tag] Januar 2021","time":"2021-01-21T00:03:05.341Z","from":"system.adapter.javascript.0","q":0,"ack":true}): Error: {"error":"partial write: field type conflict: input field \"value\" on measurement \"0_userdata.0.Wetterstation.Statistik.Rekordwerte.Temperatur_Spitzenhoechstwert\" is type string, already exists as type float dropped=1"} / "{\"error\":\"partial write: field type conflict: input field \\\"value\\\" on measurement \\\"0_userdata.0.Wetterstation.Statistik.Rekordwerte.Temperatur_Spitzenhoechstwert\\\" is type string, already exists as type float dropped=1\"}\n" 2021-01-21 01:03:05.510 - warn: influxdb.0 (23336) Add 0_userdata.0.Wetterstation.Statistik.Rekordwerte.Temperatur_Spitzenhoechstwert to conflicting Points (1 now)
-
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ich komm hier noch ned ganz klar... wie kann ich denn innerhalb des Freds hier suchen?
Meine DNT zeigt mir am Display die richtige uhrzeit an - 06:58 die Daten kommen aber mit dem Zeitstempel 05:58 an.
Kann ich das iwie / iwo ändern?- Was zeigt dein
wetterstation.sh --debug
? - Hast du in der WS-App die richtige Zeitzone ausgewählt?
- Hat dein Rechner auf dem wetterstation.sh läuft die richtige Uhrzeit?
Je nachdem (WS, Firmware, Protokoll) wird die Uhrzeit unterschiedlich übertragen (Timestamp in unterschiedlichen Variationen, now, u.ä.). Aber das kann man aus den Debug-Daten sehen.
- Was zeigt dein
-
@a200 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ich komm hier noch ned ganz klar... wie kann ich denn innerhalb des Freds hier suchen?
Meine DNT zeigt mir am Display die richtige uhrzeit an - 06:58 die Daten kommen aber mit dem Zeitstempel 05:58 an.
Kann ich das iwie / iwo ändern?- Was zeigt dein
wetterstation.sh --debug
? - Hast du in der WS-App die richtige Zeitzone ausgewählt?
- Hat dein Rechner auf dem wetterstation.sh läuft die richtige Uhrzeit?
Je nachdem (WS, Firmware, Protokoll) wird die Uhrzeit unterschiedlich übertragen (Timestamp in unterschiedlichen Variationen, now, u.ä.). Aber das kann man aus den Debug-Daten sehen.
Zeit, Zeitzone, autom. Sync (funktioniert) und autom. Sommerzeit sind eingestellt. Am PC passt auch alles, aber im Debug sieht man das es dort auch "falsch" kommt.
Kann es sein das die Station UTC sendet, und dur das Display und WU usw das umrechnet? - Was zeigt dein
-
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
ich komm hier noch ned ganz klar... wie kann ich denn innerhalb des Freds hier suchen?
Meine DNT zeigt mir am Display die richtige uhrzeit an - 06:58 die Daten kommen aber mit dem Zeitstempel 05:58 an.
Kann ich das iwie / iwo ändern?- Was zeigt dein
wetterstation.sh --debug
? - Hast du in der WS-App die richtige Zeitzone ausgewählt?
- Hat dein Rechner auf dem wetterstation.sh läuft die richtige Uhrzeit?
Je nachdem (WS, Firmware, Protokoll) wird die Uhrzeit unterschiedlich übertragen (Timestamp in unterschiedlichen Variationen, now, u.ä.). Aber das kann man aus den Debug-Daten sehen.
Zeit, Zeitzone, autom. Sync (funktioniert) und autom. Sommerzeit sind eingestellt. Am PC passt auch alles, aber im Debug sieht man das es dort auch "falsch" kommt.
Kann es sein das die Station UTC sendet, und dur das Display und WU usw das umrechnet?Das kann ich dir sagen, wenn ich sehe, was die WS sendet. Wenn sie "now" schickt, dann ist es schon i.O. Anderenfalls muss noch UCT umgerechnet werden. Siehe wetterstation.sub Ab Zeile 295
- Was zeigt dein
-
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Funktionieren alle bekannten/verfügbaren 868MhZ Sensoren mit dem Skript oder sind da noch welche zu implementieren?
Alle wahrscheinlich nicht, da es bestimmt noch "unbekannte" gibt
Aktuell fehlt noch der DP60. Hier liegt der passende String vom Sensor zwar schon vor, aber es gab halt noch keine auswertbare Daten. Dauert also noch bis zum nächsten Gewitter bei jemandem der auch einen DP60 hat und dann einen String mit Daten zur Verfügung stellen kann. -
Neue Version des Wetterstation-Statistik-Addons auf GitHub V0.2.1
- ~Bugfixing Rekordwerte Sitzenhöchst-/-tiefstwert
Wie immer zu finden im GitHub (wetterstation-statistik.js)
Update empfohlen, da sonst die Temperatur-Rekordwerte nicht korrekt gesetzt werden können.
@banza sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Frage zum Statistik-Script
Bitte auch updaten, fixed das Problem.
-
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Kann es sein das die Station UTC sendet, und dur das Display und WU usw das umrechnet?
Wenn du mit Station die Außenheit meinst, nein, die sendet überhaupt keine Uhrzeit, lediglich Messwerte. Das Display macht dann aus den Daten den hier hinlänglich ( ) bekannten Datenstring und schreibt es dann dank NTP-Kontakt (Zeitserver) in eine korrekte Uhrzeit, zumindest in UTC. Diese kann man dann in eine "richtige" dank der Zeitzone umrechnen. Du schreibst zwar Zeitzone ist korrekt, mich würde aber vom Datenempfangs-PC ein
timedatectl
interessieren (2. Befehl falls nicht Europe/Berlin) :