Hallo zusammen,
ich habe ein Problem mit dem Homematic Stromzähler HM-ES-TX-WM welcher mit dem Ferraris-Lesekopf ausgerüstet ist.
Er funktioniert recht genau, nur bei der Gesamtproduktion kommt es gelegentlich zu Problemen.
Ich werte bei Openhab über eine Rule die Gesamtproduktion und die Tagesproduktion aus.
Nun kommt es bei dem Zähler durch eine unglückliche Programmierung zum Überlauf des Gesamtzählers und die Gesamtproduktion ist falsch....
Ich muss dann händisch eingreifen und die Gesamtproduktion mit 838000 addieren.
Ich habe die rule mal aufgeschrieben.
Nun kann man das irgendwie mit einer rule automatisieren?
Rule zum Berichtigen des Wertes und Umrechnen
Ausrechnen der Tagesproduktion:
Ich hatte mir das so gedacht:
Ich brauche 2 rules:
1. Täglich um Mitternacht die Werte sichern:
2. Die tägliche Änderung auswerten (kann ja nur ansteigen :-))
Ist mein Ansatz richtig?
Wie haben das andere User gelöst? Der Zähler ist ja bestimmt noch öfter im Einsatz :-)
Und wie bekomme ich die Syntax vernünfitg hin?
Kann mir da jemand einen Tip geben?
Gruß
Yankee
ich habe ein Problem mit dem Homematic Stromzähler HM-ES-TX-WM welcher mit dem Ferraris-Lesekopf ausgerüstet ist.
Er funktioniert recht genau, nur bei der Gesamtproduktion kommt es gelegentlich zu Problemen.
Ich werte bei Openhab über eine Rule die Gesamtproduktion und die Tagesproduktion aus.
Nun kommt es bei dem Zähler durch eine unglückliche Programmierung zum Überlauf des Gesamtzählers und die Gesamtproduktion ist falsch....
Ich muss dann händisch eingreifen und die Gesamtproduktion mit 838000 addieren.
Ich habe die rule mal aufgeschrieben.
Nun kann man das irgendwie mit einer rule automatisieren?
Rule zum Berichtigen des Wertes und Umrechnen
Code:
//Item CounterEnergy -> Wert direkt vom Zähler //Item CounterEnergy1 -> Wert berichtigt rule "Stromzaehler Einheiten" when Item CounterEnergy changed //Wert vom Zähler then CounterEnergy1.postUpdate(CounterEnergy.state as DecimalType + 3352000) //Überlauf zum 4. Mal kompensieren (+ 838000 *4) Stromzaehler_kWh.postUpdate(CounterEnergy1.state as DecimalType / 1000) //Umrechnen in kWh end
Ausrechnen der Tagesproduktion:
Code:
rule "Stromzaehler Produktion Tag" when Item Stromzaehler_kWh received update then Stromzaehler_Produktion_Tag.postUpdate(Stromzaehler_kWh.deltaSince(now.withTimeAtStartOfDay)) Strom_PV_Ertrag_Heute.postUpdate(Stromzaehler_Produktion_Tag.state as DecimalType) end
Ich hatte mir das so gedacht:
Ich brauche 2 rules:
1. Täglich um Mitternacht die Werte sichern:
Code:
Wenn Mitternacht dann CounterEnergy_neu == CounterEnergy_alt
Code:
Wenn Item CounterEnergy sich ändert, dann wenn CounterEnergy_alt größer ist als CounterEnergy dann CounterEnergy mit 838000 addieren CounterEnergy == CounterEnergy_neu else CounterEnergy == CounterEnergy_neu
Wie haben das andere User gelöst? Der Zähler ist ja bestimmt noch öfter im Einsatz :-)
Und wie bekomme ich die Syntax vernünfitg hin?
Kann mir da jemand einen Tip geben?
Gruß
Yankee
Kommentar