Stromverbrauch der letzten Tage berechnen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Stromverbrauch der letzten Tage berechnen

Beitrag von Baumtasche »

Hallo zusammen,

ich hänge seid längeren an ein Problem, das ich einfach nicht lösen kann. Ich habe den Wallplug von fibaro, der neben den aktuellen Stromverbrauch, auch den Stromverbrauch kummuliert - also den Gesamtverbrauch seit dem letzten Reset anzeigt.
Beide Werte kann man in einer Variable auslesen.

Jetzt habe ich mir folgendes überlegt, wenn ich den Gesamtverbrauch täglich persistiere und danach resete, dann sollte ich doch den Stromverbrauch über eine rule, für z.B. die letzten 7 Tage berechnen können. Das funktioniert leider nicht. Die Itemvariable "ItemOfficeEngeryDay" bleibt immer bei Null.

Ich hoffe mir kann jemand helfen

Code: Alles auswählen

strategies {
        everyMinute : "0 * * * * ?"
        everyHour   : "0 0 * * * ?"
        everyDay    : "0 0 0 * * ?"
        default = everyChange

}

Items {       
        
        Office_MeterKwh:     strategy = everyDay, restoreOnStartup // Gesantverbrauch wird gespeichert
            
} 
Rule:

Code: Alles auswählen


rule "Reset Office Stromverbrauch"  

when
        Time cron "2 0 0 * * ?"
then 
    
        Office_MeterReset.sendCommand(ON)  //reset Gesamtverbrauchs
        Office_MeterReset.sendCommand(OFF)


end


rule "Berechnung Stromverbrauch Office"

when
     Time cron "0 0 0 * * ?"
then
     var Number Office3Tage = Office_MeterKwh.sumSince(now.minusDays(3))
     ItemOfficeEngeryDay.postUpdate(Office3Tage)
     
end


Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von udo1toni »

Welche Persistence nutzt Du?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von Baumtasche »

Ich nutze rrdj4.

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von udo1toni »

Dann geht das so nicht :)

rrd4j ist ein wenig zickig, wenn es um solche Berechnungen geht. Eigentlich müsstest Du den Momentanverbrauch minütlich persistieren und rrd4j müsste dann daraus den Verbrauch ermitteln. Da müsste man allerdings mal scharf vergleichen, ob die ermittelten Werte auch schlüssig sind.

Da Du den Tagesverbrauch bequem ermitteln kannst, wäre mein Tipp, die Werte manuell in vier Items zu halten, in der Art:

Code: Alles auswählen

rule "Berechnung Stromverbrauch Office"

when
     Time cron "0 0 0 * * ?"
then
    val nDay2 = OfficeEnergyDay2.state 
    val nDay1 = OfficeEnergyDay1.state
    val nDay0 = Office_MeterKwh.state
    OfficeEnergyDay2.postUpdate(nDay1)
    OfficeEnergyDay1.postUpdate(nDay0)
     ItemOfficeEngeryDay.postUpdate(nDay0+nDay1+nDay2)
     Office_MeterReset.sendCommand(ON)
     // Office_MeterReset.sendCommand(OFF) // sollte eigentlich gar nicht nötig sein
end
Das sieht zwar nicht sonderlich elegant aus, sollte aber funktionieren. die Items OfficeEnergyDay2 und OfficeEnergyDay1 halten dann die Werte des vorletzten und letzten Tags, Office_MeterKwh liefert die Summe des aktuell vergangenen Tags und ItemOfficeEngeryDay bekommt die Summe dieser drei Items. Gleichzeitig werden die Items mit dem jeweils neuen Wert gefüllt und der Zähler wird zurückgesetzt. Ich gehe stark davon aus, dass der Reset nicht manuell auf OFF gewechselt werden muss.

Ich habe hier im Code nicht abgefangen, dass die Items zunächst keinen gültigen Wert halten, Du musst die Items also einmal mit 0 beschreiben, damit die Rule nicht mit einem Fehler abbricht. Alternativ könnte man den Code auch noch erweitern...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von Baumtasche »

Super, vielen Dank. Ich werde das mal umsetzen und probieren.

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von Baumtasche »

Eine Frage noch dazu, wenn rrdj4 zu zickig ist, gibt es dann überhaupt einen sinnvollen Einsatz für "everyday". Ich habe in einem anderen Thread auch gelesen, das wenn man mit everyday speichert, das Diagramm leer bleibt. :|

Benutzeravatar
udo1toni
Beiträge: 13944
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von udo1toni »

Wenn Du Diagrame verwenden willst, ist bei rrd4j everyMinute als Strategy zwingend. Das hängt mit der Datenstrukturen und dem Zugriff durch die Diagramm-Engine (keine Ahnung, wie die genau heißt...)

Grundsätzlich ist rrd4j schon in Ordnung, aber grade was lange auseinanderliegen Werte betrifft, ist rrd4j nicht die erste Wahl :) bei drei Tagen werden verschiedene Ebenen des Datenvorhalts benötigt, und rrd4j berechnet aus den Einzelwerten Durchschnittswerte für die nächste Stufe. Es kann gut sein, dass das mit so wenigen Werten (einer pro Tag) einfach nicht geht.


Gesendet von iPad mit Tapatalk
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Stromverbrauch der letzten Tage berechnen

Beitrag von Baumtasche »

Danke udo1toni

Antworten