NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Hatte ich oben mal irgendwo erwähnt, alias-Funktion:
Ich habe es jetzt mal aktuell so
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
da gab es auch noch Regentage pro Woche, Monat und Jahr
Das wird wohl nichts werden, da die Station dazu nichts verlässliches liefert. Zeit mäßig ist da bei einer Spanne ± 30 bis 60 Minuten nicht viel zu wollen. Da bräuchte es einen echten Regensensor.
-
Das hätte ich vielleicht etwas pragmatischer betrachtet und genommen. Man könnte es ja auch als Tage mit nennenswerten Niederschlag nennen/betrachten, eben einfach die Tage zählen, wo was für die Station messbares runterkam und getriggert wurde. Gestern fragte mich z.B. mein Kumpel wann es eigentlich das letzte mal geregnet hatte - wir sprachen über das Rasen sprengen. Ich kurz im Zeitstrahl zurück und geschaut. Dann so ein Datenpunkt der letzte Regen vor X-Tagen mit insgesamt X mm Niederschlag. Gut, man könnte das endlos weiterführen... das geht dann schon in Datenbankanalysen und sicherlich nicht Scripttauglich...
-
@lemuba
das hab ich mit einem Script gelöst, ich frage um 23:59 Uhr die aktuelle Regenmenge ab und erhöhe gegebenenfalls die "Regentage", am 1. Jänner wird der Zähler zurückgesetzt. Letzter Regentag wird über den Zeitstempel abgefragt. -
Sagt mal mal am Rande - ich würde mir mein Grafana Dashboard gerne per Telegram als PDF-Screenshot schicken lassen.
Dafür hatte ich nun mal "wkhtmltopdf" installiert.Das funktioniert ausgezeichnet für Seiten wie Amazon, Google, etc. - nur jegliches Grafana Dashboard gibt einen blankes PDF.
Mal die Parameter mit denen ich gespielt hatte:
root@DietPi:~# wkhtmltopdf --javascript-delay 40000 -O Landscape -s A3 --no-background --use-xserver http://192.168.12.127:3001/d/xKHZSljWk/wetterstation_samsung test2.pdfAlles kein Erfolg, blank...
Kenn Ihr ggf. einen Workaround? Die interne Grafana Rendering Routine ist nicht zu gebrauchen - viele Panels werden nicht richtig oder ohne Werte gerendert... Etwas OT, aber vielleicht ein kurzer Tip Eurereseits?
-
@lemuba Stichwort Adapter PhantomJS ( wenn er denn funktioniert..) ??
-
@ilovegym said in [Linux Shell-Skript] WLAN-Wetterstation:
Adapter PhantomJS
Hammer, funktioniert astrein - Wenn man/ich den Wald vor lauter Bäumen nicht sieht - danke nochmal!
Mein Setting:
phantomjs.0 2020-04-17 11:34:12.810 info (28972) Create 1680px*1400px in 20000ms - "http://192.168.12.127:3001/d/xKHZSljWk/wetterstation_samsung?orgId=1" => "/opt/iobroker/node_modules/iobroker.phantomjs/picture.png"
Bild dazu:
Werde mir dann nochmal ein Dashboard speziell für dieses Telegramm-Bild umstricken - z.B. das Regenmenge Panel wird nicht richtig dargestellt, oder die Emojis in den Ünerschriften - das ist aber nur Kosmetik für meinen Anwendungsfall.
Edit: Im Kiosk Mode ist auch der Rahmen weg:
phantomjs.0 2020-04-17 12:27:53.361 info (3497) Create 1680px*1050px in 20000ms - "http://192.168.12.127:3001/d/xKHZSljWk/wetterstation_samsung?orgId=1&refresh=30sek&kiosk" => "/opt/iobroker/node_modules/iobroker.phantomjs/picture.png"
-
@SBorg said in [Linux Shell-Skript] WLAN-Wetterstation:
Die "Sonnenstunden-Tag" (die anderen auch, nur wäre das erst am Sonntag bzw. Monatsende aufgefallen) haben noch einen Fehler. Die werden falsch resettet und nicht korrekt gespeichert. Solange man das Skript nicht vor der ersten Messung des neuen Tages neu startet fällt es auch nicht auf.
Gefixte Version auf GitHub (sub tauschen + restart genügt)
Was mich noch wundert - hatte heute meine DietPi VN rebootet - die Sonnen-Wochenstunden/Erstzählung Werte von Gestern sind wieder weg, praktisch resettet.
Also es stehen wieder alle Datenpunkte auf XXX Minuten...?:
Wo liegt mein Fehler? Oder halten die Daten z.Z. nur bist zu einem Reboot?
-
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
das geht dann schon in Datenbankanalysen und sicherlich nicht Scripttauglich...
Gehen tut das schon und auch ein Blockly etc. ist nichts weiter als ein Skript. Was bliebe den genau zu tun? Die Regenmenge haben wir ja schon und letzter Regen, Regenmenge etc. lässt sich per Grafana ebenfalls jetzt schon abbilden (die Daten liegen alle bereits in der influxdb).
@lemuba sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Oder halten die Daten z.Z. nur bist zu einem Reboot?
Nein, die sollten eigentlich überleben, denn die stehen ja in einem Datenpunkt, aber .... s.u.
Neue Version auf GitHub (alles muss raus )
- Fix gegen Datenverlust bei Wetterdaten + Sonnenschein (Test)
- Regenmenge- + Sonnenschein-Vorjahr
Sonnenschein-Tag funktioniert, deswegen sollte Woche/Monat/Jahr ebenfalls funktionieren. Muss am WE nur der Wochentrigger und am Monats letzten der Monatstrigger noch funktionieren.
-
@SBorg Dann spiele ich die mal schnell auf und mache morgen einen Reboot
-
@SBorg also, ich habe vorhin auch neu gestartet( Rechner komplett) und muss nun auch wieder die 3 Std warten
-
-
Bei mir werden alle Sonnenstunden täglich zurück gesetzt.
-
Ich denke mal ich habe den Fehler. Ich habe gestern ca. 30x "restarted" und funktioniert...
Dann hatte ich die VM in Verdacht (bei mir "echtes" System)...
Bis ich beim x-ten mal lesen endlich am "reboot" hängen blieb...
Oh, man, ist eigentlich logisch
Das Skript beinhaltet eine Routine wenn jemand "jungfräulich" anfängt und noch keinerlei Daten hat.
Genau da tritt aber jetzt das Problem auf. Der Dienst startet beim hochfahren des Systems/VM das Skript und will nun vom ioB Daten lesen. Der, bzw. der Simple-API, läuft aber so schnell noch gar nicht, er bekommt keine Daten und startet mit Null-Werten...
Das gilt für cron + systemd. Leider kann man den ioB per systemd/cron nicht prüfen ob er schon läuft.
Versuch:
sudo systemctl disable wetterstation
(schaltet den Autostart wieder ab)
sudo crontab -e
einfügen (nicht vergessen: die letzte Zeile in der crontab muss immer eine Leerzeile sein!)@reboot sleep 600 && systemctl start wetterstation
Die "600" ist die Anzahl der Sekunden die dann gewartet wird bis der ioB/simple-API wirklich läuft.
-
@SBorg Ich habe da glaube ich auch noch einen kleinen Bug gefunden - bei mir werden die Sonnensekunden um Einiges zu wenig gezählt.
Beispiel seit Reboot:
Iobroker Online: 4Std:54 Min.
Sonnenstunden von Takt zu Takt: 9312 Sek.: 9328 Sek (16 Sek. hinzuaddiert)
Realtime Sekunden: ca. 30Von Zeitstempel zu Zeitstempel:
13:10:37
13:11:07
13:11:37Also bei mir kommen somit ca. alle 30 Sekunden ein neues Datenpaket rein, aber es werden nur jeweils 16 Sekunden dazu gezählt...???
Was mich dann eigentlich auch wieder wundert - laut Firmware sollte das Teil alle 16 Sekunden einen Meßintervall ausführen...
Mein Upload Intervall steht auf 16 Sekunden.... (WH4000SE)Der Sensor steht zur Zeit in der prallen Sonne, blauer Himmel, 670w/m2...
Ein Understatement für Schleswig-Holstein
Vielleicht kannst Du in die Wetterstation.config einen anpassbaren Korrekturwert/Parameter mit einpflegen?
Hmm???
Edit: Ich kann den Upload Intervall in WSView auch ändern und speichern wie es mir gefällt, z.B. auf 60 Sek. und die Zentrale/das Display rebooten - an den Zweitstempel 30 Sekunden Intervallen ändet sich nichts....
-
Falls das mit dem booten von oben klappt habe ich sogar eine komfortable Lösung: do some magic bash voodoo
while ! nc -v -z $(echo $IPP|sed -e 's/:/ /'); do sleep 30; done
Aber warten wir erst mal ab
@lemuba Ne, dass mutt schon so sein bzw. gibt es das schon: WS_POLL
Das muss auf deinem tatsächlichen Intervall stehen wie du die Daten empfängst. Aufgrund dessen werden auch die Sonnenstunden addiert. Ich kann ja schlecht wissen in welchem Intervall der Anwender seine Daten haben möchte und kann somit auch keinen Intervall zwischen zwei "Messimpulsen" festlegen. Wenn deine Station also im 30 Sekundenraster sendet, stellst du WS_POLL auf 30 Sekunden, dann addiert er auch brav immer 30 Sekunden pro "Impuls" dazu -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Falls das mit dem booten von oben klappt
eingetragen hab ich es mal so mit dem reboot sleep, jedoch noch nicht getestet
-
@crunchip Keine Eile, hänge eh gerade hier dran:
btw: Ich bin immer noch am überlegen bzgl. Regen/Sonnenschein was die Balken eigentlich aussagen sollen? Das "Jahr" bestimmt den höchsten Wert (oder ist fest eingestellt, dann in Bezug aber auf was...?) Das ich bei 1000mm Regenmenge pro Jahr dann wenn der Monat 100mm anzeigt 10% des willkürlich festgelegten Wertes erreicht habe, oder xx% des wie hoch dann auch immer "Auto-Wertes"?
Die Balken sehen zwar nett aus, aber eine echte Aussagekraft haben die IMHO nicht (im Gegensatz dazu wenn ich sie bspw. als Füllstandsanzeige nutze). -
@SBorg da bin ich auch grad am basteln/tüfteln, wie man das am besten mit dieser Anzeige hin bekommen könnte. Je nach Vergleich von Durchschnittswerten pro Monat/Jahr. Da man eben nur einen "Bezugswert" hinterlegen kann.
Bleibt ja bestenfalls nur das Aufteilen der Anzeigen, damit man ne tatsächliche "Füllstandsanzeige/Kalkulation" bekommt, separat eben für Tag/Woche/Monat/Jahr, was wiederum sehr viel Platz in Anspruch nimmt und "schei..." aussieht.
Aktuell habe ich mir für Regen nen Max 1000 eingetragen.
Für die Sonnenstunden auf nen Monat (2592000) bezogen
letztendlich finde ich die Anzeige für Sonne als Graph für mich schöner
mal sehen, vllt gibt es noch ne andere Variante, das sinnvoll zu gestaltenübrigens, das mit der Firmware scheint zu funktionieren, hatte gestern update
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aktuell habe ich mir für Regen nen Max 1000 eingetragen.
Hehehe, ich habe nach der durchschnittlichen Regenmenge pro Jahr für "hier" gegoogelt und aufgerundet.
Für Sonnenstunden und Solarenergie habe ich leider nichts gefunden. -