PS: Ich garantiere nicht für Fehlerfreiheit ;).
PPS: Die Funktion bricht rein präventiv ab, wenn mehr als 100000 Datensätze für den Zeitraum vorhanden sind, und gibt dann false zurück. Wenn man solche Datenmengen verarbeiten will, sollte man sich ein geeigneteres Konzept überlegen.
danke für obiges Script, so in etwa hatte ich mir vorgestellt das ich es schreiben müßte. Wenn natürlich schon ein Draft da ist dann gehts leichter.
Werd heute Abend mal damit spielen.
Weil wir grad beim Thema sind:
Wie werden denn Boolsche Variablen aggregiert ? Vermutlich gar nicht, oder ?
Oder werden die wie Float betrachtet und es gibt einen Mittelwert über die Zeit ?
Boolean, Integer und Float werden als Float-Mittelwert aggregiert. Dadurch kannst man dann schön sehen, dass die Pumpe das halbe Jahr lang gelaufen ist. Den Fall Boolean kann man deshalb auch effizienter Zeiträume lösen, indem man einfach AC_GetAggregatedValues benutzt und dann sum(Duration * Avg) für true und sum(Duration * (1 - Avg)) für false benutzt. Für Integer und Float wird das nichts, da man ja zwischen mehr als zwei Werten schwankt.
Da gab es doch mal ein ausgesprochen weit ausgeprägtes Script womit man Einschaltdauer, Energieverbrauch und so weiter darstellen konnte. Da konnte man die einzelnen AKtoren soweit konfigurieren dass man den Verbrauch entsprechend angezeigt bekam, die Einschalthäufigkeit gezählt wurde, Energieverbrauch und Kosten ebenfalls gleich mitgeloggt wurden. Trigger waren die entsprechenden Stati der Aktoren.
Ich hatte es mal laufen, es wurde aber irgendwann ersetzt. Klasse war es …weiss nur nicht mehr wo ich es hier gefunden hatte.
Ich weiß was du meinst, das Script war von mir :D:D:D
Läuft hier auch noch mehr oder weniger brav.
Liefert aber nur Endsummen und Events.
Als Plot Fan möchte ich die Daten nun aber zusätzlich hübsch grafisch darstellen.
Mit dem Highcharts Plot Modul müßte sich das einfach und optisch sehr ansprechend machen lassen.
Abgesehen von Balken und Torten soll auch noch der zeitlich kummulierte Verlauf von Verbräuchen während beliebiger Zeiträume dargestellt werden.
Mit meiner RRD Datenbank hatte ich da übrigens mal einen schönen Vorhersageplot gebaut. d.h. man sah optisch zu welchem Zeitpunkt ein bestimmter Schwellwert erreicht werden wird. Die RRD hat da nette eingebaute Funktionen für Vorhersagen.
Dafür ist sie leider für Events mit exakten Tiemstamp nicht so gut zu gebrauchen und bei weiterführenden Berechnungen der Daten recht sperrig.
Fürs neue rev 2.4 Webfront müßte man für gute Übersicht aber bisl was änderen, da sich die Kategorieen nicht mehr ausklappen lassen.
Weiters habe ich bemerkt das es zickig auf IPS Abstürze (Stromausfall) reagiert. Da stimmten dann die Summen von gerade aktiven Geräten nicht mehr.
Um dem vorzubeugen müßte irgendwie eine passende Resetlogik mit rein.
hatte aber keine Lust da noch mal hinzulangen.
@ralf: Ich habe von einer Counter-Variable gesprochen. Dort ist Avg die Summe, Min der minimale Wert, der im Zeitraum geloggt worden ist und Max entsprechend der maximale Wert, der im Zeitraum geloggt worden ist. Da Du in Deinem Fall ja keine Zähler-Variable hast, musst Du entweder alles selbst zusammenzählen oder meine zuvor gepostete Funktion abwandeln und statt Duration dort Value addieren.