NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
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. -
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
übrigens, das mit der Firmware scheint zu funktionieren, hatte gestern update
Firmware Update? Hm, steht im DP bei mir auf true d.h. es ist was da, aber wo finde ich das.
Habe schon alles durchgewühlt aber finde nichts dazu oder geht das über die App. -
@Nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Habe schon alles durchgewühlt aber finde nichts dazu oder geht das über die App.
Über die App ...
-
@crunchip 39,- Ökker pro Monat ist ne Hausnummer
...aber immerhin waren es im März 175 Sonnenstunden. Nächstes Jahr könnte man natürlich die eigenen Vorjahreswerte heranziehen, wenn auch die Daten bis ~ März dann noch fehlen.@Nashra Kommt darauf an ob es wirklich eines gab. Aktuell ist die 1.4.9
Ich ziehe die installierte aus der Station (hier Ausgabe mittels --debug) :
und vergleiche sie mit "meiner" hinterlegten auf GitHub:
Sind die unterschiedlich --> DP auf true
Dann in die WS-View-App --> Menü --> Device List --> Station anklicken dann siehst du- die installierte Version
- kannst ein FW-Upgrade anstoßen
Solarenergie ist nun auch fertig, teste aber mal heute Nacht noch die Rückstellung:
-
@SBorg na zahlen würd ich dafür auch nicht(hab ja keinen Geldschei.... ), ... mir nur zwischen den Zeilen paar Werte heraus gelesen, so als Richtwert
-
Habs gefunden d.h. hatte mir zwar die Device List angesehen aber die Anzeige
selbst nicht nochmal angetippt
Jetzt zeigt er mir ein Update an, Danke Euch -
...und Firmwareupgrade geht auch
Der DP sollte dann um Mitternacht automatisch auf false wechseln.
Das Ganze funktioniert aber nur wenn ich auch ein FW-Upgrade mitbekomme, denn ich muss die "firmware.version" auf GitHub anpassen. Erst dann kann die Prüfung um Mitternacht erfolgreich sein -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
...und Firmwareupgrade geht auch
Der DP sollte dann um Mitternacht automatisch auf false wechseln.
Das Ganze funktioniert aber nur wenn ich auch ein FW-Upgrade mitbekomme, denn ich muss die "firmware.version" auf GitHub anpassen. Erst dann kann die Prüfung um Mitternacht erfolgreich seinWie sieht es mit einem Datenpunkt für die Firmware-Version aus
-
@SBorg
1.) wie wäre es mit dieser Anzeige im oberen Teil, anstatt mit den Balken?
Ich weiss ja, das Problem sitzt oft vor dem Bildschirm helf mir mal auf die Sprünge
Wert/3600
sollte mir doch die richtige Stundenanzeige geben -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@reboot sleep 600 && systemctl start wetterstation
Damit läuft das Script bei mir auf dem Pi nach einem Neustart nicht wieder los.
-
@Nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wie sieht es mit einem Datenpunkt für die Firmware-Version aus
Gut
Füge ich hinzu.@crunchip War ich auch schon am überlegen. Mir gefallen zwar beide Balken-Diagramme, aber so ohne Bezug...
...und ja, stimmt aber auch: Sekunden/3600 = Stunden,Rest
Sind bei dir also 7,75 Stunden, oder anders ausgedrückt 7 Stunden und 45 Minuten
Entweder musst du mit Modulo (%) rechnen, oder den Rest von sek/3600 wieder durch 60 teilen. Das wären dann die Minuten und der Rest vom Rest dann Sekunden@Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@reboot sleep 600 && systemctl start wetterstation
Damit läuft das Script bei mir auf dem Pi nach einem Neustart nicht wieder los.
600 Sekunden sind 10 Minuten. Hast du so lange gewartet? Es geht im Moment auch hauptsächlich nur darum, ob es einen Reboot überlebt. Der "Magic Voodoo" von oben kommt dann bei Erfolg ins Skript und prüft damit einfach ob der Simple-API beim Start des Skriptes auch wirklich schon läuft. Sonst wartet er 30 Sekunden und probiert es erneut....bis er ihn erreicht, dann macht das Skript weiter. Deswegen brauchst du die Sekunden auch nicht großartig an das Startverhalten deines ioBs anpassen.
-
@SBorg ja, soweit war ich auch schon, bin nur zu blöd das im Query umzusetzen (Hintergrund, ich möchte die Sekunden nicht mit anzeigen)
oder eben automatisch gerundet