NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
bzgl. Sensoren: hast du auf Ecowitt-Protokoll umgestellt? Sonst bräuchte ich mal deinen "--data" - String (StationID etc. x-en) bzw. werden Daten von denen bei "--debug" angezeigt?
Hier mal der Datastring:
Connection from 10.10.80.180 17287 received! GET /weatherstation/updateweatherstation.php?ID=Garden&PASSWORD=123456&indoortempf=81.1&tempf=53.4&dewptf=31.5&windchillf=53.4&indoorhumidity=30&humidity=43&windspeedmph=0.0&windgustmph=0.0&winddir=78&absbaromin=29.380&baromin=29.380&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.118&yearlyrainin=0.118&solarradiation=0.00&UV=0&soilmoisture=48&dateutc=2021-03-28%2017:50:33&softwaretype=EasyWeatherV1.5.7&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0
Nein, auf Ecowitt war ich nur kurz zum testen, bin dann aber wieder auf WU Einstellung, da mich auch der Batteriestatus der Sensoren interessiert (was ja mit Ecowitt nicht geht wie du geschrieben hast).
Warum soll ich die ID x-en? Die kann doch in den Custom-Einstellungen anders sein als bei WU, oder? Und Garden ist jetzt nix geheimes
Grüße
Protheus -
@protheus Ich denke halt auch immer an die Paranoiker die ihre internen IPs x-en. Wenn ich in deren Netzwerk bin dauert es ungefähr zwei Sekunden alle IPs auszulesen...
Kleiner Schlingel, RTFM mal genau: Batteriestatus geht nur bei Ecowitt, genau wie Zusatzsensoren (die fehlen nämlich in deinem String + werden im WU-Format vom Display nicht übertragen)
...oder sollte ich mich im Manual verschrieben haben...?
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@protheus Ich denke halt auch immer an die Paranoiker die ihre internen IPs x-en. Wenn ich in deren Netzwerk bin dauert es ungefähr zwei Sekunden alle IPs auszulesen...
Ich bin zwar auch etwas paranoid, aber ich hab ne gute Firewall, und mit meinen zig internen Netzen kann eh keiner was anfangen
Kleiner Schlingel, RTFM mal genau: Batteriestatus geht nur bei Ecowitt, genau wie Zusatzsensoren (die fehlen nämlich in deinem String + werden im WU-Format vom Display nicht übertragen)
...oder sollte ich mich im Manual verschrieben haben...?Ja, so langsam wirds peinlich für mich. Nein, du hast dich nicht verschrieben. Mit Ecowitt klappts tatsächlich.
Jetzt funktioniert es wie es soll und ich kann mein Bewässerungsprojekt fortführen (die Wetterstation und das Sktipt, sind meine zentrale Informationsstelle ob wässern oder nicht).Kann man die Werte der Batterie evtl. noch umwandeln? Mit 1.6 kann man wenig anfangen finde ich.
Grüße
Protheus -
Hallo,
wenn ich auf die aktuelle Version updaten will, also derzeit die, V2.5.0 vom 08.02.2021, wie muss ich dann genau vorgehen?
Derzeit habe ich die Version, V2.3.0 vom 26.01.2021 installiert.
Dann noch eine weitere Frage, im Moment wird der Regen am Tag und in der Woche angezeigt. Gibt es eine Möglichkeit die Regenmenge vom Vortag anzeigen zu lassen?
Danke schon mal.
-
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ja, so langsam wirds peinlich für mich...
Kann man die Werte der Batterie evtl. noch umwandeln? Mit 1.6 kann man wenig anfangen finde ich.
Nö, solange es funzt
Prinzipiell ja, allerdings habe ich weder Sensoren noch Doku dazu. Deswegen kann ich mit deinen/den "1.6" im Grunde leider genauso wenig anfangen wie du. Wenn 0=leer ist und 5=voll, könnten 1.6 theoretisch 32% entsprechen, aber absolut geraten...
-
@chrissi1 Nicht anders wie im 1. Post beschrieben:
- *.sub + *.sh durch aktuelle Version ersetzen
- *.js im ioB anlegen und 1x ausführen (damit die neuen DPs angelegt werden)
./ws_updater.sh
sooft starten bis er "meckert", dass nix mehr zu tun ist (müsste bei dir 3x sein)- neu starten des Skripts:
sudo systemctl restart wetterstation
Da die Station keinen Wert vom Vortag liefert, kann es das Skript alleine auch nicht. Je nach dem wo/wie du es darstellen möchtest (Grafana, VIS...) kannst du die Regenmenge mit Influx oder History loggen.
Wenn du das Statistik-Javascript-Addon nutzt ist es auch als DP im ioB vorhanden:
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ja, so langsam wirds peinlich für mich...
Kann man die Werte der Batterie evtl. noch umwandeln? Mit 1.6 kann man wenig anfangen finde ich.
Nö, solange es funzt
Prinzipiell ja, allerdings habe ich weder Sensoren noch Doku dazu. Deswegen kann ich mit deinen/den "1.6" im Grunde leider genauso wenig anfangen wie du. Wenn 0=leer ist und 5=voll, könnten 1.6 theoretisch 32% entsprechen, aber absolut geraten...
naja, die Akkus sind neu/voll.
Ich denke die 1.6 sind 1.6VBatterien zeigen ja je nach Ladestand glaube ich unterschiedliche V-Werte an (ich komm da immer durcheinander ). Ist aber bei den großen 1865er Akkus meiner E-Zigarette auch so. Im Ladegerät werden 3.4V angezeigt und es wird weniger wenn der Akkustand sinkt.
Allerdings habe ich keine Ahnung wie weit es sinken darf, bevor die Sensoren nimmer gehen.
Ist aber nur eine grobe Laienhafte Einschätzung/Beobachtung. Kann auch falsch sein.
Aber weil ich eh grad schreibe: scheinbar überträgt das Skript nicht korrekt an meine InfluxDB (sollte doch auch ohne den iobroker Adapter gehen oder?)
Username und Passwort sind definitiv korrekt, aber es werden keine Datensätze angelegt.
Wenn ich aber die Werte über iobroker in die InfluxDB schreiben lasse, geht es.Hast du da auch eine Idee?
Grüße
ProtheusEDIT:
Mir ist gerade noch ein Problem aufgefallen:
Wenn ich die Simple-api auf HTTPS umstelle mit Authtifizierung, funktioniert die Datenübertragung nicht mehr (--debug zeigt aber Daten an - diese werden wohl eben nicht ins iobroker geschrieben)
Aber nun kommen wieder meine Freunde (die Syntaxfehler) und ein SSL3 Handshake errorDrauf ist ein selbsigniertes Zertifikat (von einer PKI) und das Root-Zertifikat ist systemweit als vertrauenswürdig eingestuft.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Da die Station keinen Wert vom Vortag liefert, kann es das Skript alleine auch nicht. Je nach dem wo/wie du es darstellen möchtest (Grafana, VIS...) kannst du die Regenmenge mit Influx oder History loggen.
Wenn du das Statistik-Javascript-Addon nutzt ist es auch als DP im ioB vorhanden:
Ich habe das Statistik-Javascript im ioBroker vor drei Tagen angelegt.
Danach habe ich unter VorTag, bei:
- Regenmenge
- Temperatur_Durchschnitt
- Temperatur_Hoechstwert
- Temperatur_Tiefstwert
- Windboe_max
ganz rechts auf den Schraubenschlüssel (Einstellungen) geklickt und History aktiviert.
Leider klappt da aber anscheinend irgendwas nicht, die Werte bleiben unverändert, s. Screenshot.
Muss ich für die History noch etwas anderes einstellen oder sonst noch eine Einstellung vornehmen?
-
@chrissi1 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
noch etwas anderes einstellen oder sonst noch eine Einstellung vornehmen?
verwendest du Influx?
Zitat aus dem Wiki
Voraussetzung: laufendes WLAN-Wetterstation Shellscript, laufender Javascript- und InfluxDB-Adapter im ioBroker, aktiviertes logging per InfluxDB der drei benötigten Datenpunkte "Aussentemperatur", "Wind_max" und "Regen_Tag" (falls diese noch nicht für Grafana oä. schon geloggt werden) -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Naja bei mir steht das ja bei "Wetter_aktuell"
Schon, aber sollte zeigen, dass auch das Display durchaus das aktuelle Wetter nicht wiedergibt. Es gibt halt vom Wetterdienst eine Liste bei der bei einem Luftdruck von "a bis b" schönes Wetter ist, "c bis d bewölkt" usw. Mehr ist das nicht. Luftdruck x ist zwar ein Indiz für Wetterlage y, muss aber nicht stimmen.
Ich hatte von WU, DWD & Co. auch schon Regenwahrscheinlichkeit von 100% und kein einziger Tropfen fiel...Hi sborg:
Das Skript läuft ja nun seit einigen Tagen (leider immernoch auf HTTP) aber ich habe nun nochmal geprüft.
Der Datenpunkt javascript.0.Wetterstation.Wetter_aktuell steht noch immer auf "regnerisch" (unverändert seit installation)
(Seit 3 Tagen ballert die Sonne voll drauf und nicht ein Tropfen ist gefallen)Im Datenstring für iobroker konnte ich da auch keinen Eintrag sehen (odfer ich bin blind):
Datenstring für ioBroker: javascript.0.Wetterstation.Innentemperatur=27.61 javascript.0.Wetterstation.Aussentemperatur=10.11 javascript.0.Wetterstation.Taupunkt=2.24 javascript.0.Wetterstation.Gefuehlte_Temperatur=10.11 javascript.0.Wetterstation.Innenfeuchtigkeit=33 javascript.0.Wetterstation.Aussenfeuchtigkeit=58 javascript.0.Wetterstation.Wind=2.89 javascript.0.Wetterstation.Wind_max=5.47 javascript.0.Wetterstation.Windrichtung=57 javascript.0.Wetterstation.Druck_absolut=985.91 javascript.0.Wetterstation.Druck_relativ=985.91 javascript.0.Wetterstation.Regenrate=0 javascript.0.Wetterstation.Regen_Tag=0 javascript.0.Wetterstation.Regen_Woche=0 javascript.0.Wetterstation.Regen_Monat=0 javascript.0.Wetterstation.Regen_Jahr=2.9 javascript.0.Wetterstation.Sonnenstrahlung=170.41 javascript.0.Wetterstation.UV_Index=1 javascript.0.Wetterstation.Zeitstempel=02.04.2021%2010:59:22 javascript.0.Wetterstation.Info.FW_Version=EasyWeatherV1.5.7 javascript.0.Wetterstation.Info.Station_Batteriestatus=0 javascript.0.Wetterstation.Windboeen_max=14.80 javascript.0.Wetterstation.Regen_Event=0 javascript.0.Wetterstation.Regen_Stunde=0 javascript.0.Wetterstation.Info.Wetterstation_Gateway=HP2550A_Pro_V1.6.9 javascript.0.Wetterstation.DP50.1.Temperatur=23.50 javascript.0.Wetterstation.DP50.1.Feuchtigkeit=41 javascript.0.Wetterstation.DP50.2.Temperatur=23.11 javascript.0.Wetterstation.DP50.2.Feuchtigkeit=36 javascript.0.Wetterstation.DP50.8.Temperatur=28.50 javascript.0.Wetterstation.DP50.8.Feuchtigkeit=22 javascript.0.Wetterstation.DP100.1.Bodenfeuchtigkeit=44 javascript.0.Wetterstation.DP100.2.Bodenfeuchtigkeit=36 javascript.0.Wetterstation.DP50.1.Batterie=OK javascript.0.Wetterstation.DP50.2.Batterie=OK javascript.0.Wetterstation.DP50.8.Batterie=OK javascript.0.Wetterstation.DP100.1.Batterie=1.6 javascript.0.Wetterstation.DP100.2.Batterie=1.6 javascript.0.Wetterstation.Regenstatus=kein Regen javascript.0.Wetterstation.UV_Belastung=gering javascript.0.Wetterstation.Windrichtung_Text=ONO javascript.0.Wetterstation.Info.Hitzeindex=
Aber so als Laie mal in Trashcode gedacht:
**Wenn** draußen >30 Klux (Helligkeit) **UND** UV-Index >2 **UND** "Regenstatus" == kein Regen **DANN** ist das Wetter wohl aktuell Sonnig/Klar
Zumindest würde sowas gehen wenn der Wert "Wetter_Aktuell" per Skript ermittelt wird. Müsste man dann halt noch weiter abstufen, aber dafür reicht meine Vorstellungskraft nich aus (deswegen bin ich kein Programmierer )
Beim aktuellen Wetter spielt der Luftdruck ja eigentlich keine Rolle (sondern nur für die Vorhersage) denke ich.Wenn ich hier nen Denkfehler habe, dürft Ihr mich gern korrigieren
Grüße
Protheus -
Sodele, mal wieder hier
Dauert bei mir aktuell einfach + ändert sich wohl in naher Zukunft auch nicht.Ein herzliches Danke schön an "HK" ( ) für die großzügige Spende
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
naja, die Akkus sind neu/voll.
Ich denke die 1.6 sind 1.6VNö, ich nicht, denn es sind wohl mindestens zwei verbaut = 3V, sonst wäre auch die Laufzeit zu gering. Zwei volle Akkus sollten dann je nach Typ zumindest 2.4V bringen. In Relation zu Batterien würden dann da auch wieder ~30% passen.
Allerdings werde ich mich hüten irgendwas zu implementieren das "geraten" istAber weil ich eh grad schreibe: scheinbar überträgt das Skript nicht korrekt an meine InfluxDB (sollte doch auch ohne den iobroker Adapter gehen oder?)
Username und Passwort sind definitiv korrekt, aber es werden keine Datensätze angelegt.
Wenn ich aber die Werte über iobroker in die InfluxDB schreiben lasse, geht es.Der Zugriff auf die InfluxDB erfolgt nur lesend (bspw. "Temperatur vor 1 Jahr"), nicht schreibend. Das lässt sich wesentlich komfortabler über den Influx-Adapter handeln, als wenn ich da das Rad nochmals neu erfinden würde.
EDIT:
Mir ist gerade noch ein Problem aufgefallen:
Wenn ich die Simple-api auf HTTPS umstelle mit Authtifizierung, funktioniert die Datenübertragung nicht mehr (--debug zeigt aber Daten an - diese werden wohl eben nicht ins iobroker geschrieben)Drauf ist ein selbsigniertes Zertifikat (von einer PKI) und das Root-Zertifikat ist systemweit als vertrauenswürdig eingestuft.
Das liegt wohl leider am Zertifikat. Mein "dazutun" ist lediglich das "s" an "http" anzuhängen. Da die Kommunikation mittels curl zwischen Skript und Simple-API stattfindet, geht dies standardmäßig nicht, denn curl verweigert aus Sicherheitsgründen die Nutzung von selbst signierten Zertifikaten. Man kann dies zwar auch wieder umgehen, dann brauche ich aber auch keine verschlüsselte Verbindung mehr. Das wäre dann in etwa "Haustüre schön abschließen, aber einen Zettel an die Türe hängen: Notschlüssel liegt im Blumenkasten..."
Ich nutze Letsencrypt und erneuere das Zertifikat automatisch mittels "Challenge" (weil ich keinen Web-Server betreibe / Port 80 öffnen möchte) mittels "certbot".
-
@SBorg Ist eigentlich was geplant, auch die Daten vom DP60 in die Statistiken mit aufzunehmen? Also Blitze per Monat, Monat mit den meisten Blitzen, durchschn. Entfernung usw. ?
-
@chrissi1 Wie @Negalein schon schrieb + das Skript läuft auch bzw. um 1:03 Uhr (default Uhrzeit oder deine geänderte) läuft auch der ioB/javascript-Adapter?
Loggen musst du bei den Werten nicht unbedingt, außer du möchtest sie bspw. in Grafana darstellen. Da geht nur der Umweg per Influx/History loggen....und gerade kam dein EDIT: ließ mal was @Negalein als Zitat aus der Wiki gepostet hat: laufender Javascript- und InfluxDB-Adapter im ioBroker, aktiviertes logging per InfluxDB
-
Da die Station keinen Wert vom Vortag liefert, kann es das Skript alleine auch nicht. Je nach dem wo/wie du es darstellen möchtest (Grafana, VIS...) kannst du die Regenmenge mit Influx oder History loggen.
Wenn du das Statistik-Javascript-Addon nutzt ist es auch als DP im ioB vorhanden:
Hallo @SBorg,
Influx habe ich nicht installiert, aber History ist aktiviert.
Ich habe History bei Aussentemperatur, Wind_max und Regen_Tag aktiviert, die Werte werden auch unter Einstellungen aufgelistet.
Leider wird mir in der Statistik nichts angezeigt. Die Aufzeichnung läuft jetzt 2 Tage.
Muss ich noch irgendwas aktivieren?
-
Mein javascript.0-Adpater ist auf grün und läuft.
Habe ich das jetzt richtig verstanden?
Ich muss also den InfluxDB-Adapter installieren, dann wird mir unter der Statistik hoffentlich etwas angezeigt?
In Grafana möchte ich aber erstmal nichts darstellen.
Wenn ja, was muss ich im InfluxDB-Adapter dann alles einstellen?
-
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Der Datenpunkt javascript.0.Wetterstation.Wetter_aktuell steht noch immer auf "regnerisch" (unverändert seit installation)
(Seit 3 Tagen ballert die Sonne voll drauf und nicht ein Tropfen ist gefallen)Blöde Frage: hast du deine Station kalibriert? Es funktioniert nämlich "recht" gut. So ganz hundertprozentig wird das nie werden, aber selbst die Meteorologen mit ihrem ganzen Equipment liegen auch mal daneben. Da kann man mit einer Home-Wetterstation auch keine Wunder erwarten. Wenn dein Luftdruck bspw. nur um 20hPa zu niedrig liegt, kommst du aus dem "Tiefdruckgebiet" nie heraus und er wird immer "Regen" anzeigen.
Das System basiert rein auf Luftdruckveränderung nach dem alten Barometer-Prinzip: https://fischer-barometer.de/media/image/25/00/d3/15-01_2-Shop.jpgDein "Trashcode" ( ) wird so auch nicht funktionieren, denn bspw. Nachts hast du kaum Lux (also auch keine Anzeige), im Winter wird dann der UV-Index nicht hinhauen...
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@protheus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Der Datenpunkt javascript.0.Wetterstation.Wetter_aktuell steht noch immer auf "regnerisch" (unverändert seit installation)
(Seit 3 Tagen ballert die Sonne voll drauf und nicht ein Tropfen ist gefallen)Blöde Frage: hast du deine Station kalibriert? Es funktioniert nämlich "recht" gut. So ganz hundertprozentig wird das nie werden, aber selbst die Meteorologen mit ihrem ganzen Equipment liegen auch mal daneben. Da kann man mit einer Home-Wetterstation auch keine Wunder erwarten. Wenn dein Luftdruck bspw. nur um 20hPa zu niedrig liegt, kommst du aus dem "Tiefdruckgebiet" nie heraus und er wird immer "Regen" anzeigen.
Das System basiert rein auf Luftdruckveränderung nach dem alten Barometer-Prinzip: https://fischer-barometer.de/media/image/25/00/d3/15-01_2-Shop.jpgDein "Trashcode" ( ) wird so auch nicht funktionieren, denn bspw. Nachts hast du kaum Lux (also auch keine Anzeige), im Winter wird dann der UV-Index nicht hinhauen...
Hi,
nein kalibriert habe ich nichts.
Da fehlen mir halt die Referenzdaten um den Offset festzulegen.Mal schauen ob ich da was finde.
Grüße
Protheus -
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg Ist eigentlich was geplant, auch die Daten vom DP60 in die Statistiken mit aufzunehmen? Also Blitze per Monat, Monat mit den meisten Blitzen, durchschn. Entfernung usw. ?
Aktuell nicht, da ich nichts von den DPxxx mein eigen nenne. So ganz ohne Werte und nur per Simulation wird das recht schwierig. Anfangs ging das noch wegen der geringen Komplexität des Ganzen, mittlerweile ist das aber eine andere Hausnummer geworden.
Aus dem Sponsoring von Ecowitt ist nichts weiter geworden und ich will mir die Teile weder kaufen, noch möchte ich sie anderweitig haben (bevor da wer auf die Idee kommt ).
Aktuell habe ich auch schlichtweg ein Zeitproblem. Was aber zB. denkbar wäre, eine "Sonderversion" des Skriptes welche temporär bis zur Fertigstellung die benötigten Daten des DP60 (und nur die) in die Cloud oä. lädt und ich sie mir dort mittels eine JS-Skriptes quasi in den ioB hole, so als hätte ich einen echten DP60. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg Ist eigentlich was geplant, auch die Daten vom DP60 in die Statistiken mit aufzunehmen? Also Blitze per Monat, Monat mit den meisten Blitzen, durchschn. Entfernung usw. ?
Aktuell nicht, da ich nichts von den DPxxx mein eigen nenne. So ganz ohne Werte und nur per Simulation wird das recht schwierig. Anfangs ging das noch wegen der geringen Komplexität des Ganzen, mittlerweile ist das aber eine andere Hausnummer geworden.
Aus dem Sponsoring von Ecowitt ist nichts weiter geworden und ich will mir die Teile weder kaufen, noch möchte ich sie anderweitig haben (bevor da wer auf die Idee kommt ).
Aktuell habe ich auch schlichtweg ein Zeitproblem. Was aber zB. denkbar wäre, eine "Sonderversion" des Skriptes welche temporär bis zur Fertigstellung die benötigten Daten des DP60 (und nur die) in die Cloud oä. lädt und ich sie mir dort mittels eine JS-Skriptes quasi in den ioB hole, so als hätte ich einen echten DP60.Ich unterstütz dich gern, da müsstest du mir ggf dann nur n bissl helfen, da ich ein Linux Depp bin, und das Script bei mir als eigener Docker/Container läuft.
Oder ggf. ist einer der anderen DP60 besitzer da versierter als ich -
@chrissi1 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ich muss also den InfluxDB-Adapter installieren, dann wird mir unter der Statistik hoffentlich etwas angezeigt?
Nicht hoffentlich, frag mal die anderen Nutzer, das funktioniert.
Du musst einfach unterscheiden: die Station kann immer nur Momentanwerte anzeigen. Auch eine Monatsregenmenge ist nur ein Momentanwert (einfach die bisherige Summe der Tageswerte). Die Station selbst hat aber keinen Speicher (oder Datenbank), um zB. die Temperatur von vor x Tagen anzuzeigen.
Dafür braucht es immer eine Datenbank, die eben die gewünschten Werte über den gewünschten Zeitraum speichert. Da kommt InfluxDB ins Spiel....und nur der Adapter alleine nutzt dir nichts, du musst auch InfluxDB selbst noch installieren.