Schau mal:
Items:
Code: Alles auswählen
Number Stromzaehler "Stromzähler [%f Wh]" (Strom) {channel="homematic:HMIP-PSM:3014F711******************:0001DD89******:6#ENERGY_COUNTER"}
Number Stromzaehler_kWh "Zählerstand [%.2f kWh]" (Strom)
Number Stromzaehler_Verbrauch_Aktuell "Verbrauch aktuell [%.0f W]" (Strom)
Number Stromzaehler_Verbrauch_Tag "Verbrauch heute [%.2f kWh]" (Strom)
Number Strom_Kosten_Tag "Kosten heute [%.2f €]" (Strom)
Rules:
Code: Alles auswählen
rule "Stromzaehler kWh"
when
Item Stromzaehler received update
then
Stromzaehler_kWh.postUpdate(Stromzaehler.state as DecimalType / 1000)
end
rule "Stromzähler Verbrauch Aktuell"
when
Item Stromzaehler_kWh received update
then
Stromzaehler_Verbrauch_Aktuell.postUpdate(Stromzaehler_kWh.deltaSince(now.minusMinutes(6))*10*1000)
end
rule "Stromzaehler Verbrauch Tag"
when
Item Stromzaehler_kWh received update
then
Stromzaehler_Verbrauch_Tag.postUpdate(Stromzaehler_kWh.deltaSince(now.withTimeAtStartOfDay))
end
rule "Stromkosten heute"
when
Item Stromzaehler_kWh received update
then
Strom_Kosten_Tag.postUpdate(Stromzaehler_Verbrauch_Tag.state as DecimalType * 0.3)
end
So schwer ist das nicht...
Erst mal ist dazu zu sagen, wie oben erwähnt, das ist eine Anleitung für openHAB2.
Das Item
Stromzaehler ist das einzige Item, welches tatsächlich mit der Hardware verbunden ist (also über das Homatic Binding). Ob der der richtige ist, weiß ich natürlich nicht. Was aber schon mal auffällt, ist, dass Du in dem Screenshot oben "Energy Counter" stehen hast, aber das Item, welches Du zeigst, hat da "Stromzähler" als Label, das passt also nicht zueinander.
Es kann auch gut sein (je nachdem, wie Du das Item angelegt hast), dass der Channel-Link nicht korrekt ist. Ich habe hier mal die IDs mit Sternchen versehen, auch wenn es gewöhnlich keine wirkliche Sicherheitslücke ist
Weiter im Text... Die erste Rule greift auf den Status des Items
Stromzaehler zu. Es verwendet den Status als DecimalType (das kann schon mal knallen, es ist nicht sicher, dass der Status den Typ DecimalType enthält ). Der Wert wird durch 1000 geteilt und in
Stromzaehler_kWh gespeichert..
Dadurch wird die zweite Rule getriggert (received update), welche das Delta zum Stand vor 6 Minuten berechnet. (Das kann auch knallen. Ich habe bisher nicht gesehen, dass das Item überhaupt persistiert wird. Die Persistence stellt die Historie eines Items zur Verfügung, ohne Historie kein deltaSince.
Eine weitere Rule triggert auf den selben Trigger (ungünstig, aber sei's drum) und berechnet den aktuellen Tagesverbrauch. Das geht unter openHAB3 totsicher schief, weil
now.withTimeAtStartOfDay eine Joda Time Eigenschaft ist, die unter JavaTime so nicht zur Verfügung steht. Stattdessen musst Du dann
ZonedDateTime.now().with(LocalTime.MIDNIGHT) verwenden.