NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hallo zusammen,
ich nutze seit ein paar Tagen das Skript wie auch die Statistik mit meiner Froggit HP1000SE und bin sehr begeistert.
Eine Frage habe ich jetzt allerdings zum Datenpunkt "Kommunikationsfehler". Ich musste heute morgen zum ersten Mal seit Benutzung des Skripts meine Wetterstation neu starten. Der Datenpunkt verblieb jedoch auf dem alten Status "false", nach Wiederinbetriebnahme sprang der Status auf "true", also Kommunikationsfehler vorhanden. Seitdem ist der Status auf true, Daten kommen aber rein. Muss ich nach einem Kommunikationsfehler noch etwas manuell machen, z.B. Skript neu starten oder ähnliches?@banza Der DP verbleibt wenn er einmalig true war solange auf true bis du
- das WLAN-Skript neu startest
- den DP per Hand auf false setzt
Ich habe dazu in der VIS eine Anzeige bei "fehlerhafter Kommunikation" und kann dann dort per Widget den Fehler quittieren. Durch das quittieren setze ich dann gleichzeitig den DP auf false zurück ;)
-
Neue Version des Wetterstation-Statistik-Addons auf GitHub V0.1.9
- +Regenmenge eines kpl. Monats im Jahr und Rekord
Wie immer zu finden im GitHub (wetterstation-statistik.js)
Dabei wird der Jahreswert nur zum 01. des Monats aktualisiert (sollte also am 01.02. auf jeden Fall eine Menge stehen, denn aktuell ist es ja "Null"; dann halt nur noch wenn im entsprechenden Monat mehr Regen fiel als bei allen bisherigen Monaten diesen Jahres).
Abweichend davon wird der Rekordwert aber täglich geschrieben. Sollte sich also ggf. bis 31.01. zu einem Monatsrekordwert aufsummieren, dann nur noch wenn auch tatsächlich ein neuer Rekordwert erreicht wurde.Beispiel: 5mm Regen an drei Tagen im Monat
Jahreswert zeigt am folgenden 01. 15mm/m² an
Rekord zeigt am 1. Tag 5mm, am 2. Tag 10mm, am 3. Tag 15mm an und verbleibt dann bei 15mm im Monat xyznächster Monat kein Regen:
Jahreswert dann am 01. weiterhin 15mm (war ja kein neuer Rekord für dieses Jahr)
Rekord (er summiert zwar munter weiter, aber 0 + 0 + 0 + ....+0 = immer noch 0), ebenfalls weiterhin bei 15mmMonat(e) mit weniger als den 15mm : es bleibt wie es ist...
Monsun-Monat: 5 Tage a 10mm
Jahreswert zeigt dann am folgenden 01. 50mm an (war ja ein neuer Rekord für dieses Jahr)
Rekord zeigt dann am 1. Tag weiterhin die bisherigen 15mm (ist ja noch kein neuer Rekord), am 2. Tag jetzt aber 20mm (da neuer Rekord), am 3. Tag 30mm (da wieder neuer Rekord), am 4. Tag 40mm (da schon wieder neuer Rekord) und am 5. Tag 50mm (da abermals neuer Rekord) an und verbleibt dann bei 50mm im Monat xyz bis er (oder auch nie mehr) gebrochen wird. Am Monatsersten wird dann der interne Wert wieder genullt und neu addiert.Verwirrt? Keine Ahnung wie man das "einfach" schreibt...
Neue Version des Wetterstation-Statistik-Addons auf GitHub V0.2.0
- ~Bugfixing Benennung DPs / Korrektur Regenmenge
Wie immer zu finden im GitHub (wetterstation-statistik.js)
Ob die Regenmengenrekorde nun richtig funktionieren muss erst der nächste Niederschlag zeigen, dafür wird jetzt bei keinem Niederschlag aber auch nichts mehr hinzu addiert. Die falschen Rekordwerte müssen ggf. per Hand in den DPs korrigiert werden. Ich warte bei mir einfach mal ab, der Monat ist noch jung und ich überschreite den fehlerhaften Rekordwert bestimmt noch (neue Spitzenwerte sollten jetzt korrekt im DP landen).
-
@banza Der DP verbleibt wenn er einmalig true war solange auf true bis du
- das WLAN-Skript neu startest
- den DP per Hand auf false setzt
Ich habe dazu in der VIS eine Anzeige bei "fehlerhafter Kommunikation" und kann dann dort per Widget den Fehler quittieren. Durch das quittieren setze ich dann gleichzeitig den DP auf false zurück ;)
-
@schittl said in [Linux Shell-Skript] WLAN-Wetterstation:
P.S.: Wenn jetzt noch ein DP60 mit eingebunden werden könnte wäre es nahezu mehr als perfekt. Hier mal ein Auszug aus dem Protokoll:
Die Werte wären dabei interessant:&lightning_time=&lightning_num=0&lightning=Hi, ist eigentlich kein größeres Problem. Nur habe ich kleinere Probleme bei der Zuordnung:
- lightning_time = ist wohl Zeitpunkt des Ereignisses? Format (wahrscheinlich UTC-Zeitstempel oder Unix-Timestamp)?
- lightning_num = Anzahl der Blitze?
- lightning = fehlt ja noch etwas wie Stärke etc. pp., um die Entfernung/Richtung zu bestimmen? Format...?
So wie es aussieht ist wahrscheinlich auch nur ein DP60 pro Station vorgesehen. Mehrere ergäbe wohl auch keinen Sinn... ;)
-
Ich melde mich nochmal zurück. Ich hab das Script auf nem normalen Raspi nativ aufgesetzt und konnte die Debug ausgaben auslesen.
Soweit so schön. Ich vermute, dass die Froggit WH3000SE die Werte für Regen_Event, Regen_total, Regen_Stunde sowie Windboeen_max gar nicht liefert. Dann leb ich halt ohne.
Nochmals vielen Dank für alle Helfer. -
Ich melde mich nochmal zurück. Ich hab das Script auf nem normalen Raspi nativ aufgesetzt und konnte die Debug ausgaben auslesen.
Soweit so schön. Ich vermute, dass die Froggit WH3000SE die Werte für Regen_Event, Regen_total, Regen_Stunde sowie Windboeen_max gar nicht liefert. Dann leb ich halt ohne.
Nochmals vielen Dank für alle Helfer.@rene55 Stell mal das Protokoll auf ecowitt. Du erhältst dann mehr Werte, die die WS liefert. Allerdings werden Chill-Faktor und Luftdruck relativ nicht übertragen. Jetzt musst du entscheiden, was dir wichtiger ist.
Falls du noch weitere Sensoren auslesen möchtest, dann ist ecowitt eh das Protokoll deiner Wahl.
-
@rene55 Stell mal das Protokoll auf ecowitt. Du erhältst dann mehr Werte, die die WS liefert. Allerdings werden Chill-Faktor und Luftdruck relativ nicht übertragen. Jetzt musst du entscheiden, was dir wichtiger ist.
Falls du noch weitere Sensoren auslesen möchtest, dann ist ecowitt eh das Protokoll deiner Wahl.
-
@a200 Direkt versucht. Beim Ecowitt-Protokoll kommt gar nichts. Ich musste doch nur in der .conf das von 1 auf 2 umstellen, oder?
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@a200 Direkt versucht. Beim Ecowitt-Protokoll kommt gar nichts. Ich musste doch nur in der .conf das von 1 auf 2 umstellen, oder?
Nein. Du musst auch noch in der App die Ausgabe auf ecowitt einstellen. Link Text
Punkt 2 -
@a200 Danke für die (erweiterte) Hilfe. ich hab die App aufm Tablet, da sieht es etwas anders aus. Aber, he, es funktioniert:
Muss ich mir jetzt mal in Ruhe anschauen. Auf jeden Fall, Danke für den Tip.Erste Erkenntnis: Die fehlenden Werte sind da, leider Verlust des Chill-Faktor und des Taupunkts.
-
@SBorg Moin!
Bin heute durch einen Issue zu meinem Docker Container auf dieses interessante Stückchen Code gestoßen. Ich gebe zu ich habe jetzt nicht alle 2100 Beiträge gelesen, aber nach einem oberflächlichen Studium der Doku auf Github stellt sich mir gerade die Frage, warum aus diesem Projekt noch kein Adapter geworden ist. :) Das Interesse scheint ja relativ groß zu sein.Wenn ich die Struktur richtig verstehe, dann agiert das Script als Broker zwischen der Wetterstation und dem ioBroker. Aus meiner kleine Docker Welt Sicht wäre es sicherlich auch möglich das Script zu einem Docker Container weiter zu entwickeln (Adapter ist zwar schöner, aber da könnte ich leider auch nicht helfen). ;)
Egal ob Adapter oder Container, damit würde man m. E. diese tolle Integration auch Usern verfügbar machen die nicht so versiert im Umgang mit Scripten und Linux sind. Gibt es diesbezüglich Überlegungen im Hinblick auf die Weiterentwicklung der Lösung?
MfG,
AndréPS: Noch habe ich leider keine Wetterstation, steht aber auf meiner Wishlist...
-
@SBorg Moin!
Bin heute durch einen Issue zu meinem Docker Container auf dieses interessante Stückchen Code gestoßen. Ich gebe zu ich habe jetzt nicht alle 2100 Beiträge gelesen, aber nach einem oberflächlichen Studium der Doku auf Github stellt sich mir gerade die Frage, warum aus diesem Projekt noch kein Adapter geworden ist. :) Das Interesse scheint ja relativ groß zu sein.Wenn ich die Struktur richtig verstehe, dann agiert das Script als Broker zwischen der Wetterstation und dem ioBroker. Aus meiner kleine Docker Welt Sicht wäre es sicherlich auch möglich das Script zu einem Docker Container weiter zu entwickeln (Adapter ist zwar schöner, aber da könnte ich leider auch nicht helfen). ;)
Egal ob Adapter oder Container, damit würde man m. E. diese tolle Integration auch Usern verfügbar machen die nicht so versiert im Umgang mit Scripten und Linux sind. Gibt es diesbezüglich Überlegungen im Hinblick auf die Weiterentwicklung der Lösung?
MfG,
AndréPS: Noch habe ich leider keine Wetterstation, steht aber auf meiner Wishlist...
ZITAT:
Ich würde das Script für die Wetterstation nicht manuell mit in den Container installieren. Das ist einfach völlig entgegen des Docker gedanken und wird spätestens beim Update des Containers zu Problemen (eine notwendigen Neuinstalltion des Scripts) führen.Sehr guter Hinweis hier im Thread (für Docker), denn einige sind sich nicht im klaren wie und was sie damit verursachen .
Habe es vorher auf der Raspberry gehabt und nach einen Tip von @lembua in eine VM von der Synology ausgelagert.
-
Kurze Frage zur Wetter-Statistik.
Wenn ich das Script ausführe, wird mir lediglich unter:
javascript.0.Wetterstation ein weiterer "Ordner" Statistik angelegt, und darin ein DP "Wetter".
Ist das so richtig? Also werden die anderen DPs erst dann erstellt wenn sie auch das erste mal befüllt werden,
oder läuft da was schief bei mir? -
ZITAT:
Ich würde das Script für die Wetterstation nicht manuell mit in den Container installieren. Das ist einfach völlig entgegen des Docker gedanken und wird spätestens beim Update des Containers zu Problemen (eine notwendigen Neuinstalltion des Scripts) führen.Sehr guter Hinweis hier im Thread (für Docker), denn einige sind sich nicht im klaren wie und was sie damit verursachen .
Habe es vorher auf der Raspberry gehabt und nach einen Tip von @lembua in eine VM von der Synology ausgelagert.
@glasfaser Darf ich fragen wie du das gemacht hast. Ich bin mit Linux, Docker usw noch recht unerfahren.
Hab akt. den iobroker Docker von @andre am laufen, und hab den inhaltlich sicher schon mehr als zerstört :) sorry andre ;)In meinem jugendlichen Leichtsinn würd ich sagen ich brauch nen neuen Docker (hab ne QNAP) der einfach nur n Ubuntu bereitstellt und installier darin dann das WLan Wetterstation Script?
meinen IOB Docker müsste ich dann hald zum 4. mal neu machen, aber ist ja noch nicht so schlimm.
-
ZITAT:
Ich würde das Script für die Wetterstation nicht manuell mit in den Container installieren. Das ist einfach völlig entgegen des Docker gedanken und wird spätestens beim Update des Containers zu Problemen (eine notwendigen Neuinstalltion des Scripts) führen.Sehr guter Hinweis hier im Thread (für Docker), denn einige sind sich nicht im klaren wie und was sie damit verursachen .
Habe es vorher auf der Raspberry gehabt und nach einen Tip von @lembua in eine VM von der Synology ausgelagert.
@glasfaser Grundsätzlich wäre ich bereit da Richtung Docker was bei zu steuern. Wollte mir nur vorher mal einen Überblick verschaffen. :) Da vermutlich ein Adapter die bessere Lösung wäre, würde ich vorher gerne einmal ergründen woran es liegt, dass diese Lösung noch nicht zum Adapter gewachsen ist und was ggf. dagegen sprechen würde. Ganz getreu dem Motto: Das Rad muss ja nicht neu erfunden werden...
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hab akt. den iobroker Docker von @andre am laufen, und hab den inhaltlich sicher schon mehr als zerstört
Das ist das Problem was ich sehe. Erfahrungsgemäß endet das dann früher oder später in einem schier unendlichen Forum Thread, weil Adapterupdates o. Ä. im Container nicht laufen und wir vergeblich den Fehler suchen. :grimacing:
MfG,
André -
@glasfaser Grundsätzlich wäre ich bereit da Richtung Docker was bei zu steuern. Wollte mir nur vorher mal einen Überblick verschaffen. :) Da vermutlich ein Adapter die bessere Lösung wäre, würde ich vorher gerne einmal ergründen woran es liegt, dass diese Lösung noch nicht zum Adapter gewachsen ist und was ggf. dagegen sprechen würde. Ganz getreu dem Motto: Das Rad muss ja nicht neu erfunden werden...
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hab akt. den iobroker Docker von @andre am laufen, und hab den inhaltlich sicher schon mehr als zerstört
Das ist das Problem was ich sehe. Erfahrungsgemäß endet das dann früher oder später in einem schier unendlichen Forum Thread, weil Adapterupdates o. Ä. im Container nicht laufen und wir vergeblich den Fehler suchen. :grimacing:
MfG,
AndréZur Info: Ich betreibe es schon in einem Docker was auch super funktioniert ;) Hier mal meine Lösung. Soll aber lediglich als Hilfe/Unterstützung dienen. Das Dockerfile ist ganz easy, wenn man weiß wie man eigene Docker erstellt. Ich kenne mich allerdings nicht so aus, wie man ggf. fertige Dockerimages bereitstellt auf Docker Hub und diese parametrierbar macht zweck wetterstation.conf. Hier mal mein Dockerfile Beispiel:
FROM amd64/debian:buster ENV DEBIAN_FRONTEND noninteractive # Install prerequisites RUN apt-get update && apt-get install -y \ bc \ jq \ curl \ netcat-openbsd \ && rm -rf /var/lib/apt/lists/* RUN useradd -ms /bin/bash wh3000se # Create wh3000se scripts directorys and copy scripts WORKDIR /home/wh3000se/ COPY scripts/wetterstation.conf wetterstation.conf COPY scripts/wetterstation.sh wetterstation.sh COPY scripts/wetterstation.sub wetterstation.sub RUN chmod +x wetterstation.sh USER wh3000se # Run startup-script ENTRYPOINT ["/bin/bash", "-c", "/home/wh3000se/wetterstation.sh"]Ich habe einfach dieses Dockerfile erstellt und per folgendem Befehl ein Image erstellt. Darauf ist zu achten, dass es den Unterordner scripts geben muss mit den angepassten Dateien, um diese ins Docker-Image zu kopieren(Pfad etc. muss natürlich individuell angepasst werden):
docker build -t wh3000se:latest /share/Container/_dockerfile/iobroker/wh3000seAnschließend einfach mit folgendem Befehl gestartet:
docker run -d --name wh3000se --restart always --net=host -e TZ=Europe/Berlin wh3000se:latestDas ist mein Weg womit ich zufrieden bin.
-
Zur Info: Ich betreibe es schon in einem Docker was auch super funktioniert ;) Hier mal meine Lösung. Soll aber lediglich als Hilfe/Unterstützung dienen. Das Dockerfile ist ganz easy, wenn man weiß wie man eigene Docker erstellt. Ich kenne mich allerdings nicht so aus, wie man ggf. fertige Dockerimages bereitstellt auf Docker Hub und diese parametrierbar macht zweck wetterstation.conf. Hier mal mein Dockerfile Beispiel:
FROM amd64/debian:buster ENV DEBIAN_FRONTEND noninteractive # Install prerequisites RUN apt-get update && apt-get install -y \ bc \ jq \ curl \ netcat-openbsd \ && rm -rf /var/lib/apt/lists/* RUN useradd -ms /bin/bash wh3000se # Create wh3000se scripts directorys and copy scripts WORKDIR /home/wh3000se/ COPY scripts/wetterstation.conf wetterstation.conf COPY scripts/wetterstation.sh wetterstation.sh COPY scripts/wetterstation.sub wetterstation.sub RUN chmod +x wetterstation.sh USER wh3000se # Run startup-script ENTRYPOINT ["/bin/bash", "-c", "/home/wh3000se/wetterstation.sh"]Ich habe einfach dieses Dockerfile erstellt und per folgendem Befehl ein Image erstellt. Darauf ist zu achten, dass es den Unterordner scripts geben muss mit den angepassten Dateien, um diese ins Docker-Image zu kopieren(Pfad etc. muss natürlich individuell angepasst werden):
docker build -t wh3000se:latest /share/Container/_dockerfile/iobroker/wh3000seAnschließend einfach mit folgendem Befehl gestartet:
docker run -d --name wh3000se --restart always --net=host -e TZ=Europe/Berlin wh3000se:latestDas ist mein Weg womit ich zufrieden bin.
@schittl Jo, das ist schonmal ein guter Ansatz. :) Würde das dann noch ein wenig weiter treiben und dem Container z.B. die Konfigurationsparameter dann per Umgebungsvariable mitgeben. Und natürlich als Multi Arch Image bereitstellen... die Frage ist halt ob es sich wirklich lohnt die Arbeit in ein Docker Image zu investieren, denn generell kann die gesamte Lösung eigentlich aus meiner Sicht auch als Adapter abgebildet werden.
So ähnlich ist es ja mit dem Heos Script auch gelaufen. Am Anfang stand ein Script welches nun zum Adapter geworden ist....
MfG,
André -
@SBorg Moin!
Bin heute durch einen Issue zu meinem Docker Container auf dieses interessante Stückchen Code gestoßen. Ich gebe zu ich habe jetzt nicht alle 2100 Beiträge gelesen, aber nach einem oberflächlichen Studium der Doku auf Github stellt sich mir gerade die Frage, warum aus diesem Projekt noch kein Adapter geworden ist. :) Das Interesse scheint ja relativ groß zu sein.Wenn ich die Struktur richtig verstehe, dann agiert das Script als Broker zwischen der Wetterstation und dem ioBroker. Aus meiner kleine Docker Welt Sicht wäre es sicherlich auch möglich das Script zu einem Docker Container weiter zu entwickeln (Adapter ist zwar schöner, aber da könnte ich leider auch nicht helfen). ;)
Egal ob Adapter oder Container, damit würde man m. E. diese tolle Integration auch Usern verfügbar machen die nicht so versiert im Umgang mit Scripten und Linux sind. Gibt es diesbezüglich Überlegungen im Hinblick auf die Weiterentwicklung der Lösung?
MfG,
AndréPS: Noch habe ich leider keine Wetterstation, steht aber auf meiner Wishlist...
@andre Zum einen aus der Historie heraus. Es entstand ursprünglich als kleiner Mehrzeiler. Mittlerweile ist es "etwas" umfangreicher. Die Diskussion warum kein Adapter gab es schon zur Genüge ;)
Es braucht so gut wie keinerlei Ressourcen und ist jedem Adapter überlegen. Außer mal einen Bug entfernen und neue Funktionen hinzufügen läuft es seit > 1 Jahr völlig problemlos im Dauerbetrieb, hat jedwedes wie auch immer geartetes Update überstanden. Ich habe keine JS- oder sonstige Abhängigkeiten (bspw. Wegfall/Umstallung von request etc.). Ich habe extra eine ausführliche Doku geschrieben mit C&P-Befehlen, so dass auch der Linux-N00b damit zu Rande kommt, solange er eben lesen kann.
Warum also meine Zeit mit einem Adapter verschwenden, mehr Zeit in die Wartung dessen, wenn der Anwender selbst nicht mal paar Minuten investieren will? Einen halbfertigen Adapter gibt es übrigens schon...
...und ich erkläre auch geduldig zum x-ten mal immer dieselben Fehler, wenn es auch so schon in der Wiki steht. Es braucht also auch der Anfänger keine Angst vor der Installation zu haben.
...und sorry, meine Meinung: Windows als BS für ein SmartHome ist IMHO eh ein "no go" ;)
Außerdem wird ja keiner davon abgehalten einen Adapter zu schreiben, zB. VirtualBox als VM für eine kleine Linux-Distri einzusetzen, oder wie bspw. bei mir Proxmox mit VMs/LXC-Containern, einen alten RaspberryPi oder Zero zu nutzen...Mit Docker hatte ich mich einfach nicht beschäftigt, ich nutze Proxmox.
Es ist zwar alles mehr oder minder Hobby und geschieht in meiner Freizeit, aber ich persönlich opfere für einen Adapter, den ich nicht mal selbst benutzen würde, nichts von meiner knappen Zeit (die unschöne Wahrheit: das kostet mich dann auch Geld).
...und jetzt mal alle melden bei denen es nach der Installation nicht problemlos läuft... :)