NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
PS: gerade im Log geschaut. Um 1:03 lief das Script.
Scheint nur diese 1 Zeile auf.2020-09-19 01:03:00.029 - [32minfo[39m: javascript.1 (32533) script.js.Wetter.Wetterstatistik: Auswertung durchgeführt...
-
0_userdata.0.Statistik.Wetter.aktueller_Monat.Regenmenge_Monat
wird nicht aktualisiert!0_userdata.0.Statistik.Wetter.VorTag.Temperatur_Durchschnitt
funktioniert! -
-
@Negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
PS: gerade im Log geschaut. Um 1:03 lief das Script.
Scheint nur diese 1 Zeile auf.2020-09-19 01:03:00.029 - [32minfo[39m: javascript.1 (32533) script.js.Wetter.Wetterstatistik: Auswertung durchgeführt...
Mehr sollte auch nicht (mehr) kommen, alles andere wären Fehlermeldungen. Vorher waren das alles Debug-Ausgaben, damit ich sehe was für Werte (ihr/ich) da bekomme. Außer ihr wollt noch weitere Ausgaben? Müllt aber IMHO nur die Log zu.
@Rushmed Notiert Da ich tippfaul bin, zitiere ich mich immer selbst, lösche den Zitat-Teil raus und editiere nur den Text. Muss ich also sogar nur einmalig dran denken den Link mit einzufügen
@Negalein bzgl. Regenmenge:
Funktioniert zumindest noch wie erwartet. Ob es letztendlich tatsächlich funktioniert muss der nächste Regen zeigen.
Die Regenmenge ist nicht so ganz einfach, da hier der Wert fortgeschrieben wird (er steigt wenn es regnet, bleibt dann auf dem Stand stehen wenn es aufhört zu regnen, bis er bei weiterem Regen wieder weiter steigt oder um Mitternacht auf "0" gesetzt wird). Temperatur, Wind etc. sind einfache momentan Werte.
Du schreibst zB. in die Influx jeden Messwert des Regens = du hast ~3.000 Datensätze pro Tag
Ich schreibe nur jede Änderung oder alle 2h einen Messwert (wg. Lücken in Grafana) = idR. < 50 Datensätze pro TagUm jetzt den Regen rückwirkend zu ermitteln, müsste ich jeden Tag die Datenbank abgrasen. Das wären in deinem Fall zum Monatsende alleine für den Regen bis zu 100k Datensätze. Nutzt du nun noch einen älteren PI, bist du für mehrere Minuten kpl. lahm gelegt. Ich muss halt nicht nur deinen Fall berücksichtigen, sondern vom worst case ausgehen.
Von daher, und wie bei einer Statistik auch üblich, funktioniert das Ganze erst ab Start des Skriptes. Dein Excel-Kollege kann auch erst Daten auswerten ab dem Zeitpunkt ab dem er angefangen hat es in Excel einzutragen.Zum besseren Verständnis ev. mal eine Timeline:
18.09. - 3l Regen - (Skript noch ohne monatliche Regenmenge!) - Anzeige max. Regenmenge pro Tag 0l/m²
19.09. ab 1:03 Uhr - kein Regen mehr - Anzeige nun bei max. Regenmenge pro Tag 3l/m² (Statistik ist rückwirkend)
19.09. xx Uhr - kein Regen mehr - du ersetzt das Skript nun mit monatlicher Regenmenge
20.09. 1:03 Uhr - weiter kein Regen - Anzeige max. Regenmenge pro Tag noch immer 3l/m² (war ja bisher die max. Regenmenge eines Tages) - Anzeige Regenmenge pro Monat 0l/m² (da rückwirkend die Regenmenge vom Vortag aufaddiert wird, am 19.09. hat es aber nicht geregnet)
20.09. xx Uhr - es regnet 8l (oh ja bidde ^^) - Anzeige max. Regenmenge pro Tag 3l/m² - Anzeige Regenmenge pro Monat 0l/m²
21.09. ab 1:03 Uhr - kein Regen - Anzeige max. Regenmenge pro Tag 8l/m² (neuer Spitzenwert) - Anzeige Regenmenge pro Monat 8l/m²
...Du musst einfach einen Schnitt machen. Ab (+ 1 Tag) Einsatz der entsprechenden Skript-Version funktioniert es erst (bzw. die entsprechende Funktion/Wert). Was vorher war ist quasi nicht vorhanden. Das gilt übrigens auch für die anderen Werte. Temperaturen sammeln wir zwar schon eine Zeit lang, aber bspw. Werte vom 01. September haben wir alle nicht
-
Neue Version des Wetterstation-Statistik-Skriptes auf GitHub V0.0.7 new Beta
- ~ Fix für Min.- + Max.-Temperatur vom Vortag
Wie immer zu finden im GitHub
Sorry, habe aus versehen meine Entwicklerversion hochgeladen, da hießen die DPs vom VorTag noch ohne "Temperatur_..."
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Zum besseren Verständnis ev. mal eine Timeline:
Ok, jetzt hab ich es verstanden
-
@Negalein Bist wahrscheinlich eh der 1. bei dem es (hoffentlich) funktioniert. "Hier" (Raum Frankfurt/Main) weiterhin Regenwahrscheinlichkeit der nächsten 5 Tage: 0% ...
-
Mal ein kleiner Ausblick auf die kommende V0.1.0:
Diese wird den "Beta-Status" verlassen, darum auch die Anhebung in der Versionszweignummerierung. Die bisherigen Anforderungen sind alle erfüllt und der finale Test wird nun in 12 Monaten erfolgen. Das ist mE. schon weit über "Beta" hinaus, notfalls gibt es halt einen Patch
VorTag arbeitet nun auch korrekt. Neu ist nun Control:
- Statusmeldung: hier steht zukünftig was passiert ist [sollte nur "Skript gestartet" + "erfolgreich" sein. Falls mehr gewünscht, bitte melden. Aber daran denken, dass ist nur ein DP. Es wird also immer nur die letzte Meldung angezeigt werden ]
- Reset Jahresstatistik: bool - mit ihm kann man durch "true" [direkt oder bspw. per VIS] die Jahresstatistik resetten
- AutoDelete Data: number - nach welcher Zeit soll der (derzeit noch leere) Ordner Data bereinigt werden
IMHO schöner als immer alles im Skript zu konfigurieren und so kann man auch mittels bspw. VIS Änderungen vornehmen.
Der "Reset Jahresstatistik" soll noch einen weiteren DP beigestellt bekommen (ich muss aber erst mal die Jahresstatistik implementieren). Dieser wird dann bestimmen ob die Statistik am 01.01. automatisch resettet wird, oder falls einer die Daten noch haben möchte, erst durch händischen "true" bei Reset_Jahresstatistik".Irgendwelche Ideen, Meinungen, Senf... dazu ?
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Irgendwelche Ideen, Meinungen, Senf... dazu ?
Wow, sehr cool
Senf? Nö, aber jetzt hab ich Hunger
Ideen hab ich im Moment keine.
-
mir ist noch was eingefallen. Eventuell hab ich es auch überlesen und du hast schon daran gedacht (eventuell in
0_userdata.0.Statistik.Wetter.Data
)0_userdata.0.Statistik.Wetter.aktueller_Monat
wird ja am 1. des Monats wieder mit Daten des aktuellen Monat neu beschrieben.Wo werden die Daten des/der Vormonat/e des aktuellem Jahr gespeichert?
Ich müsste nur noch 1,5 Wochen warten. Aber ich bin so neugierig!
-
@Negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
und du hast schon daran gedacht
Na logisch
Ließ mal die Beschreibung hinter "Data"...
Ich hatte es auch schon ein- zweimal hier erwähnt. Darauf bezieht sich auch ganz aktuell "AutoDelete Data".
Daraus sollte am 01.10. 1:03 Uhr ein Ordner werden. In diesem sich dann ein Ordner "2020" befinden. Darunter ein Datenpunkt "09". In diesem steht dann ein JSON-String mit den bisherigen Daten vom September.
Nächstes Jahr im September wird dann nicht mehr eine kpl. Vorjahresstatistik für den Sep. 2020 gefahren, sondern genau dieses JSON eingelesen. Darin stehen ja alle Werte vom Sep 2020, warum muss ich also (zeit-)aufwändig nochmals den ganzen Monat auswerten? Das wird natürlich am 01.10. passieren müssen, da du den JSON-String für Okt. 2019 nicht hast (gab es das Skript ja noch nicht). Zusätzlich hast du aber auch keine Influx-Daten vom Okt. 2019, es wird also bei 99999 für die VorMonatswerte bleiben -
Wer mal testen möchte (wäre nicht schlecht ) :
Neue Version des Wetterstation-Statistik-Skriptes auf GitHub V0.1.0 Beta-Testversion
- + DP für Statusmeldungen / Reset Jahresstatistik / AutoDelete "Data"
- + Jahresstatistik Min-/Max-/Durchschnittstemperatur/Trockenperiode
Wie immer zu finden im GitHub (wetterstation-statistik_test.js)
Dies ist eine Beta-Testversion!
Sie wird zwar nichts kaputt machen, aber Fehler sind möglich und nicht alles funktioniert auch. Ich brauche aber etwas Hilfe, um zu sehen ob das auch so funktioniert. Die Daten werden weiter gesammelt/ausgewertet, auch wenn man später wieder auf eine andere Version switchen sollte (nur der Reset-Test [s.u.] wird die entsprechenden Daten wirklich ins Nirwana schicken).
- AutoDelete_Data: bin ich gerade dran, funktioniert (noch) nicht - ignorieren
- Reset Jahresstatistik: wenn mit Werten nach dem Schedule befüllt auf "true" setzen. Dann sollte nach dem nächsten Schedule die Statistik resettet sein (IMO kein Beinbruch, da die Werte eh noch nicht wirklich aussagekräftig sind) + der DP wieder auf "false" stehen. "Tiefstwert" sollte auch gehen, hatte noch einen Tippfehler drin...
- Statusmeldung: wie im Bild, bzw. nach dem Schedule erfolgreich
Der Ordner "Data" bleibt bei euch noch ein leerer DP. Ich habe zum testen für "AutoDelete" dort per Hand DPs zum löschen angelegt, also nicht wundern.
Die restlichen Funktionen sollten wie gehabt laufen. Ihr könnt es mit der bisherigen Version ersetzen oder einfach ein neues JS anlegen (dann aber nicht vergessen das Andere zu stoppen!). -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wer mal testen möchte (wäre nicht schlecht ) :
gesagt, getan
-
@Negalein Hattest du zwischenzeitlich noch mal Regen, da du 6l/m² für "Regenmenge Monat" stehen hast?
AutoDelete_Data funktioniert mittlerweile auch schon fast komplett. Muss nur noch das Löschen des Jahresordners realisieren.
Wenn dann morgen die Jahreswerte alle kpl. sind fehlt nur noch der Reset-Test. Ich habe das extra nicht "on-the-fly" implementiert, sonst muss man ggf. noch eine Sicherheitsabfrage in die VIS einbauen. Ansonsten wären bei einem falschen Klick in der VIS sofort die Jahreswerte alle weg. So wird es erst mit dem nächsten Schedule-Termin gelöscht und man hat noch Zeit den DP per Hand wieder auf false zu setzen. -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hattest du zwischenzeitlich noch mal Regen, da du 6l/m² für "Regenmenge Monat" stehen hast?
Ja und heute schüttet es auch schon den ganzen Tag!
So wird es erst mit dem nächsten Schedule-Termin gelöscht und man hat noch Zeit den DP per Hand wieder auf false zu setzen.
das ist sehr gut.
-
Sieht bis jetzt alles gut aus + endlich auch mal wieder etwas Regen
...dann mal den Reset aktiviert...
Die 4 Jahreswerte kann man bei Bedarf auch wieder händisch nachtragen. -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Sieht bis jetzt alles gut aus
guten Morgen
Frage: sollten diese Werte nicht gleich sein?
-
@Negalein Normal schon, aber der Tiefstwert des aktuellen Monats funktioniert seit bspw. 15. September (müsste nachschauen seit wann genau). Da waren es halt mal "nur" 6°C und das wurde geloggt.
Die Jahreswerte funktionieren aber erst seit gestern korrekt, da war es halt bisher nicht kälter als 13°C
So richtig aussagekräftig werden die Jahreswerte erst ab 01. Januar, denn dann sammelt man wirklich das kpl. Jahr. Ich kann an der Stelle keine Auswertung über die InfluxDB fahren, da es einfach mal wieder zu viele Daten sind/sein könnten: ~1.500 Messwerte (oder mehr) x 365 Tage (schlimmstenfalls) = ~>500k Datensätze
Das würde auf einem PI etliche Minuten, wenn nicht sogar Stunden, dauern. Deswegen der einfache/schnelle Weg:
Prüfe Temperatur (egal jetzt welche) mit altem Wert im DP; ist dieser nun größer/kleiner/,,, (halt je nachdem ob Höchst-/Tiefstwert...) schreibe neuen Wert in den DP. Damit funktioniert es aber auch erst mit Start des Skriptes bzw. ab wann die entsprechende Funktion implementiert wurde.
Aber aussagekräftig ist es bis dato eh nicht. Denn stell dir mal vor, es waren im Januar -20°C und den Tiefstwert überschreitest (oder unterschreitest?) du für den Rest des Jahres nicht mehr. Dann steht da bspw. -11°C (da es von Sep-Dez einfach nicht kälter wurde), obwohl du doch im Januar -20°C hattest...
Wichtig ist im Moment bei den Jahreswerten eigentlich nur, ob sich die Werte ändern wenn ein neuer Höchst-/Tiefstwert/... erreicht wurde. Richtig "nutzen" dann erst ab 01. Januar 2021 -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Die Jahreswerte funktionieren aber erst seit gestern korrekt, da war es halt bisher nicht kälter als 13°C
Ah, die sind mit gestrigem Script hinzu gekommen.
Muss ich gestern verpeilt haben.Richtig "nutzen" dann erst ab 01. Januar 2021
Aye aye, Käpt'n
-
@Negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aye aye, Käpt'n
Warum denke ich da sofort als erstes an ein sinkendes Schiff...
Sodele, habe fertig. Wenn der Reset-Test noch funktioniert kann die V0.1.0 als Final ins offizielle Release gehen. Ob dann wirklich alles funktioniert wird sich in 1Jahr(+) erweisen. Aber Release ist vor dem Patch...
Dann heißt es wieder Wiki schreiben. Danach dürfen auch zögerlich Feature-Requests gestellt werden