NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@SBorg
Wann wird denn in der Statistik der
höchster Jahrestemperaturdurchschnitt
niedrigste Jahrestemperaturdurchschnitt
Wert befüllt? Erst nachdem schon ein Jahr Datenvorhanden sind?
Aktuell sind die beiden DPs bei mir nämlich (noch) leer. Aber mein Script läuft auch erst seit grob 2 Wochen.Ach ja mein DP60 und ein zweiter DP50 sollte dann auch nächste Woche kommen - hoffentlich.
-
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Also eigentlich für ne Richtung doch nicht? Die Entfernung ist eigentlich viel komplizierter da so ein Blitz ja eigentlich doch recht unterschiedliche Stromstärken und damit Impulse generieren kann, aber das geht ja schon
Denke mal das ist alles sehr hypothetisch, da zumindest ich mal überhaupt keine Ahnung davon habe
Wäre aber die Richtung mit der Mini-Antenne zu detektieren, wäre das auch bestimmt vorhanden. Ist ja quasi Mehrnutzen (=lässt sich teurer/besser verkaufen) ohne Mehr(material)aufwand.Aktuelle Mini-Roadmap für die nächsten Versionen: implementieren von Luftgüte- und Leckage-Sensoren + 2 weitere Überraschungswerte
-
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wert befüllt? Erst nachdem schon ein Jahr Datenvorhanden sind?
Jepp, das wird am 01.01.2022 um 01:03 Uhr (falls default) generiert, bzw. dann jeden 01.01.
Es würde nichts bringen jetzt schon einen Jahresdurchschnitt zu generieren, gerade weil das die rechen-/Datenbankintensivste Aktion ist. Das dauert auf einem PI3 mehre Minuten, da macht man das nicht öfters als nötig -
Hallo @SBorg,
irgendwie fluppt das bei mir immer noch nicht mit der Regenmenge ("0_userdata.0.Statistik.Wetter.aktueller_Monat.Regenmenge_Monat" und "0_userdata.0.Statistik.Wetter.Rekordwerte.value.Regenmengemonat") im Statistikscript.
Am 16.01. hatte ich auf v0.2.0 geupdated und die beiden Werte nochmal manuell angepasst.
Der Datenpunkt aus dem WLAN-Script "javascript.0.Wetterstation.Regen_Jahr_kumuliert":
Das passt soweit wunderbar.
Der Datenpunkt "0_userdata.0.Statistik.Wetter.aktueller_Monat.Regenmenge_Monat":
Für Rekord ist es identisch, nur eben einen Tag später versetzt.
Hast du noch eine Idee?
-
Zu den Jahreswerten noch ne doofe Frage:
Muss ich das komplette Jahr in der influxDB haben? Ich speichere aktuell die Daten nur sechs Monate lang. -
@rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Zu den Jahreswerten noch ne doofe Frage:
Muss ich das komplette Jahr in der influxDB haben? Ich speichere aktuell die Daten nur sechs Monate lang.Ich kann Dir aus dem Kontext der Scripte die Frage zwar nicht direkt beantworten. Ich kann Dir aber sagen, dass ich seit über zwei Jahren 250 Datenpunkte ohne Ende speichere und die Datenbank nicht mal 1Gigabyte groß ist. Stell also einfach mal alle geloggten DPs auf unendlich und freue Dich an langer Datenvorhaltung, die wenig Platz weg nimmt...
-
@rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Zu den Jahreswerten noch ne doofe Frage:
Muss ich das komplette Jahr in der influxDB haben? Ich speichere aktuell die Daten nur sechs Monate lang.Doofe Frage, ne... nur dumme Antworten...
Ja. Das ist auch der Grund warum das nur einmalig im Jahr ausgeführt wird. Erstens braucht man halt alle Werte des Zeitraumes, zweitens dauert das beim PI einfach. Wenn ihr alle 30 Sekunden ein Datenpaket loggt, sind das etwas mehr als 1 Million (!) Datensätze. Da dauert die Abfrage einen Augenblick, dann müssen 1 Mio. Addition durchgeführt werden und das Ergebnis wieder durch 1 Mio. geteilt werden, um den Durchschnitt zu errechnen.
Aber wie schon @XxJooO schreibt, die Datenbankgröße ist nicht so dramatisch. Wenn du die drei Werte 1 Jahr Jahr loggst, sind das nur wenige MB (rechnerisch müssten es <10MB sein).Ich könnte mir auch später noch DPs vorstellen wie bspw. Höchst-/Tiefswert vor einem Jahr, also Max./Min. vom 31.01.2020
-
@sonystar sagte in [Linux Shell-Skript] WLAN-Wetterstation:
irgendwie fluppt das bei mir immer noch nicht mit der Regenmenge...
Hast du noch eine Idee?Bist nicht alleine, ich habe es eben mal bei mir kontrolliert (da ich es nicht aktiv nutze fällt mir das nicht unbedingt auf).
Kann ich leider bestätigen und aktuell so mal überhaupt keine Idee.Eigentlich ist das kein Hexenwerk:
- ließ alle Regenmengen von Gestern ein
- finde den Maximalwert (da die Regenmenge pro DP nur fortgeschrieben wird und kein aktueller Messwert ist)
Dann kommt schon der ganze Voodoo:
if (Max_Regenmenge > 0) {Regenmenge_Monat = getState(PRE_DP+'.aktueller_Monat.Regenmenge_Monat').val + Max_Regenmenge; setState(PRE_DP+'.aktueller_Monat.Regenmenge_Monat', Number((Regenmenge_Monat).toFixed(2)), true);}
Wenn der Maximalwert größer als 0 (es hat heute also geregnet), dann hole den vorherigen Wert aus dem DP, addiere den Maximalwert hinzu und speichere ihn wieder im DP ab.
Da mit den Werten nichts mehr an anderer Stelle geschieht, bleibt eigentlich nur noch ein Fehler bei der Datenbankabfrage (zB. Zeitraum) oder fehlerhafter Messwert an sich. Schau ich mir jedenfalls an, aber eine echte Idee habe ich gerade nicht -
@sborg ,
Hi, ich habe auch noch eine Frage zu den DPs. Wenn ich das Script der V2.3 richtig interpretiere, dann sollte ja bei einer Station mit dem Protokoll 9 der Wert von DP Regenrate auf 0 gesetzt werden. Der DP bleibt aber weiterhin ungefüllt.
Dann wäre es total nett, wenn Du kurz erklären könntest, was die bei mir ungefüllten DP eigentlich für Werte zeigen sollten:
-
Regen_Event hat die Einheit "mm", sollte somit also sich wohl auf ein aktuelles Regenereignis beziehen. Dann müsste die Station ja vom Beginn Regen, also von da wo die gemessene Menge =0 bis da wo die gemessene Menge wieder 0 ist diese Menge aufaddieren und liefern. Ist das so gedacht?
-
Regen_Stunde hat die Einheit "mm", sollte also die gemessene Menge in der aktuell gerade laufenden Stunde abbilden
-
Regen_total hat die Einheit "mm". Auf welche Zeiteinheit aber bezieht sich total?
-
Regenrate hat die Einheit "mm/h" . Ist das nicht das Gleiche, wie Regen_Stunde?
-Regenstatus ist hingegen ein String und soll seinen Inhalt ändern in Abhängigkeit welchen Datenpunktes, der 0,1,4, 10 oder darüber enthält?
Ich frage so genau nach, da ich davon ausgehe, dass ich diese DPs mit einem Blockly über die Zeit aus dem von meiner Station gelieferten Wert für Regen_Tag berechnen kann. Ich benötige dafür aber die zeitlichen Bezüge, die sich mir leider aus Deinem Script mangels Kenntnissen nicht erschließen.
Vielen Dank!!!
-
-
@xxjooo
Regen total ist die Gesamtmenge innerhalb eines Jahres
Regen Stunde, die Menge in einer Stunde
Regenrate hingegen heisst so viel wie Regenintensität, bedeutet wie Stark es Regnen, was aber nicht heisst das eine Ganze Stunde soviel Regen fällt -
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Regenrate hingegen heisst so viel wie Regenintensität, bedeutet wie Stark es Regnen, was aber nicht heisst das eine Ganze Stunde soviel Regen fällt
Ok, aber wie stark in welcher Zeit? Für Regenstatus soll es ja mehr als 0, 1, 4, oder mehr als 10 sein, damit in Abhängigkeit davon ein entsprechender string gefüllt wird. Aber welcher Wert abhängig von welcher Zeit? Ohne die Abhängigkeiten kann ich nix berechnen...
-
@xxjooo sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ok, aber wie stark in welcher Zeit?
Am Display steht bei Regenrate "mm/hr".
Also der hochgerechnete Wert, wenn es in der aktuellen Intensität 1 Stunde durchregnet. -
@xxjooo sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dann sollte ja bei einer Station mit dem Protokoll 9 der Wert von DP Regenrate auf 0 gesetzt werden
Nicht ganz. Die Regenrate bleibt unverändert, da dieser Wert nicht berechnet wird sondern aus der Station kommt. Deswegen wird der auch bei dir nicht befüllt.
#Protokoll #9 liefert keine Regenrate(11); also auf "0" setzen if [ "$WS_PROTOKOLL" -eq "9" ] && [ -z ${MESSWERTE[11]} ]; then MESSWERTE[11]=0; fi
Sollte nur die Fehlermeldungen (zB. bei
./wetterstation.sh --debug
) unterdrücken. Mehr nicht
Auch wenn da im Kommentar "Regenrate" steht, wird an der folgenden Stelle der "Regenstatus" damit berechnet.
@Statistiker: Bitte den falschen Monatswert bei Regenmenge korrigieren ("0_userdata.0.Statistik.Wetter.Jahreswerte.Regenmengemonat") + den gespeicherten Monatswert nicht vergessen ("0_userdata.0.Statistik.Wetter.Data.2021.01").
IMHO Fehler gefunden, läuft heute Nacht mal bei mir im Test ob kein grober Schnitzer drin ist, danach könnt ihr alle testen. -
Guck mal was ich heute gesehen habe
Müssten doch eigentlich beide Werte gleich sein oder (wie bei den anderen)?
Edit. Habe gerade gesehen dass die -6.61°C am 31.1.2021 um ca. 7 Uhr waren und die -7°C am 01.02.2021 um 0:44 Uhr (Laut InfluxDB). Dann wäre das ja wieder korrekt?
Edit2: Dann wären im Umkehrschluss ja aber alle anderen Werte im Vergleich Gestern zu aktueller Monat falsch. Und außerdem gab es 0:49 Uhr nochmal -7,22 °C.Ich bin verwirrt.
-
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@Statistiker: Bitte den falschen Monatswert bei Regenmenge korrigieren ("0_userdata.0.Statistik.Wetter.Jahreswerte.Regenmengemonat") + den gespeicherten Monatswert nicht vergessen ("0_userdata.0.Statistik.Wetter.Data.2021.01").
IMHO Fehler gefunden, läuft heute Nacht mal bei mir im Test ob kein grober Schnitzer drin ist, danach könnt ihr alle testen.Sorry, ist das ein Einheitenfehler oder ein Wertefehler wegen der Tagesverschiebung? Hab scheinbar den entscheidenden Teil nicht mitbekommen - also was muss ich auf was ändern
-
DP50 und DP60 laufen, hat gleich aufs erste mal alles funktioniert. Nun mal warten auf Daten vom DP60
-
@sonystar Das hängt mit ... zusammen. Ich habe es heute nochmals geändert. Wenn es wieder nicht geht bin ich schon soweit den "Mist" einzustampfen oder zu lassen wie es ist...
Vollig OK am 26./27.:
Warum auch immer, Fehler am 27./28. (der Reset funktioniert sonst auch, warum hier erst um 0:50 Uhr? Die nicht existente Regenmenge ist dann natürlich auch in der Berechnung drin...):
Dann geht es wieder...
Solange solch Ausreißer in Influx vorhanden sind, wird es echt schwer auf vernünftige Werte zu kommen. Bei der Temperatur fällt dies nicht auf, da es nur Momentan werte sind. Der kann sich sowieso dauernd ändern und ob der Wert um 23:59 Uhr nun für den Tag oder eigentlich für den nächsten zählt, ist hierbei nicht relevant. Bei der Regenmenge dann leider schon.
Trotzdem war/ist da noch ein syntaktischer Fehler drin (gewesen). Die Temperatur am 01. habe ich aber korrigiert, er hat sie zwar korrekt resettet, dann aber anschließend mit den Vortagswerten überschrieben...
Künftig wird es dann am 01. nur einen Temperaturwert von 01:03 Uhr (default) geben. Der ist Min-/Max- und Durchschnitt zugleich, wird dann aber am 02. des Monats korrekt (hoffentlich ) berechnet. -
@rand sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
@Statistiker: Bitte den falschen Monatswert bei Regenmenge korrigieren ("0_userdata.0.Statistik.Wetter.Jahreswerte.Regenmengemonat") + den gespeicherten Monatswert nicht vergessen ("0_userdata.0.Statistik.Wetter.Data.2021.01").
Sorry, ist das ein Einheitenfehler oder ein Wertefehler wegen der Tagesverschiebung? Hab scheinbar den entscheidenden Teil nicht mitbekommen - also was muss ich auf was ändern
Wertefehler. Bei den beiden DPs die "monatliche Regenmenge", die ist zu hoch (oder nicht, je nach Regenmenge + ob der Fehler überhaupt auftritt). Wenn deine Monatsregenmenge im Januar aber größer als die Jahresmenge ist, kann ja was nicht stimmen
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nun mal warten auf Daten vom DP60
Kann wohl jemand kein schlechtes Wetter erwarten
-
@amiethaner sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nun mal warten auf Daten vom DP60
Kann wohl jemand kein schlechtes Wetter erwarten
Ja hör auf. Ich betrieb ja auch noch Astrofotografie und seit Anfang November seh ich keine Sterne mehr. Mir reichts. Jetzt is dann der Winter mit den langen nächten wieder rum und ich hab kein einziges Bild raus bekommen.
-
@amiethaner
Vieleicht solltest Du auf Wolkenfotgrafie umsteigen;)