LoxBerry: Statistik Plugin - Diskussion
Einklappen
X
-
Hannes Schellnast
Dein Input ist willkommen! Zu deinen Punkten.
Grundsätzlich möchte ich die eigentliche Problematik nochmal herausstreichen:
Das Problem ist nicht Speicherplatz! Selbst wenn man die Minutenwerte für 10 Jahre speichert, sind das gerade mal ca. 40 MB.
Das Problem ist immer die Aufbereitung für die Visualisierung!
Möchte ich aus diesem minutenweisen Dataset ein Monat anzeigen, sind das ca. 43.000 Datenpunkte.
Will ich die Tagesdurchschnittstemperaturen vom Jahr 2015 anzeigen, müssten 525.000 Datensätze gelesen und dann noch tageweise gemittelt werden.
Mit RRDTool werden bei dieser Abfrage - mit meinen Vorgaben für die Standardeinstellung - exakt 365 Datensätze gelesen, und die sind schon gemittelt.
Das eventbasierte Aufzeichnen ist grundsätzlich eine gute Idee, hat aber im Zusammenhang mit Loxone einige Nachteile:
Dieses Event muss dann vom Miniserver ausgelöst werden. Schon alleine das Anlegen eines virtuellen Ausgangs zum Senden eines Wertes ist schon ziemlich lästig und fehleranfällig.
Um in Loxone einen Zyklus (z.B. 5 Minuten) zu implementieren, sind pro Wert schon zusätzliche Funktionsbausteine nötig (Impulsgeber, Analogspeicher).
Um dann noch eine Logik einzubauen, die Schwellen definiert, ab der mehr oder weniger gesendet werden soll, wäre pro Wert so aufwändig, dass man es besser gleich sein lässt.
Daher haben wir das Pushen der Werte von Loxone gleich ad acta gelegt, weil für die Anwender das viel zu aufwändig wäre.
Bezüglich der eventbasierten Aufzeichnung gäbe es dann auch auf der Empfängerseite Probleme:
Das RRDTool kann das schon mal grundsätzlich gar nicht - hier muss der Zyklus eingehalten werden.
Wenn eine andere Datenbank verwendet wird, die ein "Heartbeat" nicht berücksichtigt, gibt es meist wieder bei der Visualisierung Probleme. Zum einen - woher weiß ich, dass sich der Wert nicht geändert hat, oder ist vielleicht der Miniserver ausgefallen, oder die Netzwerkverbindung unterbrochen? Dann kann es ein Problem bei der Visualisierungssoftware geben, die zyklische Werte erwartet, oder dann zwischen zwei Werten interpoliert (um 8;00 Uhr war 14 Gead, um 12:00 Uhr war 20°, um 18:00 Uhr ist 10° - was macht die Visu draus? Was ist der Mittelwert?). Das muss dann auch wieder berücksichtigt werden.
Am kompatibelsten sind jedenfalls zyklusbasierte Datenspeicherungen, und Platz ist wie gesagt kein Problem.
lg, ChristianZuletzt geändert von Christian Fenzl; 04.11.2016, 13:52. -
Warst nicht Du es, der schrieb das Du die Daten in einer CSV hast? Naja, da stehen die als Text und belegen sicher mehr Speicher als in der DB mit Wertefeldern. Ebenso ist das Abrufen der Werten, gerade über einen so langen Zeitraum, sicher effizienter über eine DB. Was hast Du da dagegen?
Klar ist eigentlich leider auch, dass der Raspi mit seiner SD-Karte ebensowenig für solche Dinge gemacht ist wie der MiniServer -
Ja, weil wir uns genau über diesen Punkt bereits Gedanken gemacht haben und beschlossen haben, sowohl AVG als auch Min und Max immer zu speichern. Das kannst Du oben alles nachlesen wenn Du möchtest.
Und nein: Ich bin weder beleidigt noch betroffen ;-) Aber wenn einem so etwas schon zu unrecht vorgeworfen wird, dann musst Du auch damit leben, dass wir Dir erläutern, dass Du falsch liegst.
Kannst ja auch etwas anderes nehmen. Ich schlage vor, Du machst Dir erstmal Gedanken darüber ;-)>Robert steuert sicherlich den entsprechenden Code bei ;-)
nein, weil ich es nicht in eine SQL DB schreiben würde, .. steht aber auch alles weiter oben..
Einen Kommentar schreiben:
-
Ein Gast antworteteAlso da ich wohl mit den Min/Max Werte hier den Einstieg gegeben habe: zum einen war das nicht als Begrenzung gedacht sondern als "Hey, das war die maximale Luftfeuchtigkeit, die wir je in dem Raum hatten." oder "Wow, dieser Sommer hat einen neuen Hitzerekord bei mir daheim aufgestellt." Da geht es nur um einen Indikator, was der maximale Werte eines Sensors war, der jemals (seit Aufzeichnungen mit dem Statistik-Plugin gemacht wurden).
Ich selbst kenne mich viel zu wenig mit RRdTool aus, als das ich hier irgendjemand irgendwas empfehlen könnte. Meine Stärken liegen in anderen Bereichen. Daher seht es bitte als Feature-Vorschlag und nicht als Kritik an eurer Arbeit. Ich persönlich freue mich sehr auf das Plugin und habe großen Respekt vor eurer Programmierleistung. Ich kann zwar nur rudimentär programmieren, weiß aber sehr genau, wie schwer das sein kann!Einen Kommentar schreiben:
-
>Aaaaaalso, Kritik ist erlaubt, uns zu unterstellen, dass wir nicht nachgedacht hätten, nicht.
das "erst machen dann denken" bezog sich auf folgendes Posting:
Moin zusammen, ich möchte mich daran machen ein Statistik-Plugin für den LoxBerry zu erstellen. Es gibt/gab ja schon viele Versuche hier im Forum das
genauer auf
>>Min und Max Werte wären schön - gerade beim Wetter. Aber das ist ne andere Diskussion
das hab ich auch so zitiert..
(warum sich hier plötzlich "alle" betroffen fühlen ist mir schleierhaft)
wenn man das machen WÜRDE (also nur AVG speichern, im RRD , ..)
wird man sich später über die verlorenenden Daten ärgern.
(so wie man sich bei der Loxone statistik eben auch ärgert, dass es nur "mittelwert über 5, 10, 30 " usw. gibt aber keine min/max über diese zeit
Mein Vorschlag wäre sicher die bessere Lösung, dass ihr/wir keine Resourcen dafür haben ist auch klar.. (ist halt wie bei loxone ;-))
>aber bei mir gehört das Editieren von irgendwelchen Statisitiken der letzten 20 Jahre nicht dazu
meines auch nicht, aber nach Stromausfall z.b.
(https://loxfeedback.uservoice.com/fo...en-k%C3%B6nnen)
>Robert steuert sicherlich den entsprechenden Code bei ;-)
nein, weil ich es nicht in eine SQL DB schreiben würde, .. steht aber auch alles weiter oben..
Einen Kommentar schreiben:
-
Aaaaaalso, Kritik ist erlaubt, uns zu unterstellen, dass wir nicht nachgedacht hätten, nicht.
Ich weiß nicht was ihr in eurer Freizeit so treibt, aber bei mir gehört das Editieren von irgendwelchen Statisitiken der letzten 20 Jahre nicht dazu. Aber jeder hat andere Hobbies... Das RRdTool bietet auf jeden Fall die MinMax Begrenzung, damit dürften Ausreißer zu einem großen Teil schon mal erledigt sein. Ein Export in XML, CSV oder ähnlich ist ebenfalls jederzeit möglich.
Und ja: später noch die Möglichkeit zu schaffen jeden Wert parallel in eine SQL DB zu feuern ist simpel. Robert steuert sicherlich den entsprechenden Code bei ;-)Einen Kommentar schreiben:
-
Brainstorming von meiner Seite: Wäre vielleicht auch zu überlegen, ob neben der zyklusgetriebenen Aufzeichnung auch eine von Events getriebene Aufzeichnung sinnvoll wäre. Das RRD-Tool basiert (so nehme ich an) auf zyklischen Samplewerten. Vielleicht gibt es auch einige Usecases, bei denen über eine eventgetriebenen Aufzeichnungsmethode Speicher gespart werden könnte. Bsp. Ein Signalverlauf ändert sich über Stunden nicht, und dann gibt es plötzliche Signalschwankungen, die für den User über eine kurze Zeitspanne interessant sein könnten. Ev. könnte es auch interessant sein, eine gewisse Bandbreite vorzugeben, und die Werte erst dann aufzuzeichnen, sobald der Messwert über diese Toleranzschwelle rausfährt.
Eine genaue Abschätzung der Datenmenge wäre bei der eventbasierten Datenaufzeichnung natürlich nicht möglich, jedoch kann bei einigen Anwendungen sicher viel Speicher eingespart werden.
Jede dieser Datenaufzeichnungsmethoden hat ihre Vor- u. Nachteile. Deshalb wäre es optimal, wenn der User für verschiedene Anwendungen verschiedenen Methoden zur Speicherung wählen könnte.
MfG
HannesEinen Kommentar schreiben:
-
könnte ich ja, hab abere andere Prioritäten ;-)
na, ernsthaft, a bisserl kritik wird "man" ja wohl noch vertragen...
gerade das editieren von "Ausreißern" ist ja jetzt nicht auf meinem Mist gewachsen, sondern eines der Hauptkritikpunkte an loxone statistiken..
zum Archiv: ich hab z.B. alle Heizungswerte (30 werte ca. ) ,ok nur 5 Minütig, aber viel mehr gibt die alte Anlage nicht her,
seit ca. 8 Jahren gespeichert (auch) als csv
da geht es aber um Megabyte größen, nicht um Gigabyte (das ist also vernachlässigbar)
ich könnte also ganz einfach die Werte in das zukünftige LoxBerry: Statistik Plugin - importieren
ohne Archiv wäre das schwierig.. -
Hallo Robert,
Ja, man kann am Ende alles editieren in den RRD Datenbanken. Ob es allerdings Sinn macht, muss jeder für sich selbst entscheiden. Man kann sogar eine erstellte Daten nachträglich in der Struktur ändern.
Einen Kommentar schreiben:
-
Aus meiner Sicht ist eh das Einfachhalten der Einrichtung das Schwierigste. RRDTool ist echt nicht einfach zu verstehen, aber wenn du einem Laien die SQL-Commands zum Anlegen von Datenbanken und Tabellen um die Ohren wirfst, ist das auch das gleiche.
Wenn Michael also eine coole Visu zum Einrichten und einen fertigen Poller hat, kann man sich da noch hineinhängen und auch gleich ein INSERT in eine Datenbank schicken. Gleiches bei der Visualisierung.
Editieren kann man ein RRD-Archiv nur über Umwege - das ist prinzipbedingt nicht vorgesehen, weil man ja mit aggregierten Daten zu tun hat. Editieren heißt: XML-Backup, Editieren, XML-Restore.Einen Kommentar schreiben:
-
Christian Fenzl Robert scheint sich ja prächtig auf dem Gebiet auszukennen. Für meinen Teil hätte er doch genug KnowHow um Wörtern auch Taten folgen zu lassen, oder?Einen Kommentar schreiben:
-
die Antwort hat sich überschnitten, siehe oben
VISU natürlich nur aus dem RRD -
PS: Es dürfte ein leichtes sein, die abgegolten Daten auch in eine SQL-Datenbank zu schicken. Daran wird es nicht scheitern. Es soll nachher nur niemand jammern, wenn die Visu 30 Sekunden braucht, um die Monatswerte für ein paar Temperaturen anzuzeigen.Einen Kommentar schreiben:
Einen Kommentar schreiben: