-
Notifications
You must be signed in to change notification settings - Fork 1
Software
Im Moment laufen die Datenbankabfragen über alle Datensätze im Auswertungszeitraum. Bei viel Wind steigt dazu die Datenmenge, da der Sensor mehr Daten erzeugt um so mehr Wind gemessen wird.
Eine SQL-Group-By Variante habe ich schon mal versucht, war aber mit der Art, wie SQLite mit Zeit-Daten arbeitet nicht zufrieden.
Ich denke am sinnvollsten ist es:
- die Rohdaten weiter aufzuzeichnen und zu speichern wie bisher
- alle X Minuten (z.B. 5) die Daten auslesen, aggregieren und in eine zweite Tabelle schreiben.
- Die Webseite liest dann die Daten aus der Tabelle mit den aggregierten Daten.
- Die Rohdaten können wir dann nach einer gewissen zeit löschen (meine Testdatenbank hat jetzt nach einigen Tagen eine Größe von 80MB)
Wir könnten uns überlegen, welche Sensordaten "optimale Segelbedingungen" sind, z.B. konstanter West- oder Ostwind mit > 15 km/h und dann über Slack eine Nachricht versenden: "Geht segeln" :-)
Ich denke das kann man noch etwas hübscher machen. Die "Live"-Anzeige der Windrichtung kann sich auch maximal 360° drehen, wenn der Wind sich von z.B. 315° auf 45° ändert dreht sich das Rad nicht über den 0° marker sondern über den 180° marker (längerer Teil vom Kreisbogen).
Im Moment kann man nur die letzten 6 Stunden ansehen und dort sind die Messdaten in 5-Minuten Schritte unterteilt (bzw. beim Regen in Stundenschritte). Vielleicht wäre es ganz nett wenn man den Zeitraum auswählen kann und auch die Granularität, mit der der Durchschnitt gebildet wird. (Oder man nimmt hier - je nach länge des Zeitraumes - sensible defaults)