seit ein paar Tagen habe ich ein neues Spielzeug. Den Homematic Stromsensor HM-EM-TX-WM mit Ferraris Zaehler ES-Fer. Die installation war relativ simple. Ich habe das Geräte fertig zusammengebaut bei myhomematic.de bestellt.
Hier mal meine Config:
ITEMS
Code: Alles auswählen
Group gOGStrom_Zaehler "Stromzähler Obergeschoss" (gKeller)
Number OGStrom_Energy_Counter ""
Number OGStrom_Zaehler "Zählerstand [%.2f Wh]" <energy> (gOGStrom_Zaehler) {channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXX:1#ENERGY_COUNTER"}
Number OGStrom_Aktueller_Verbrauch_W "Aktuelle Leistungsaufnahme in W [%.2f W]" <energy> (gOGStrom_Zaehler) {channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXX:1#POWER"}
Number OGstrom_Aktueller_Verbrauch_Kw "Aktuelle Leistungsaufnahme in KWh [%.2f KWh]" <energy> (gOGStrom_Zaehler)
Number OGStrom_Letzter_Tagesverbrauch "Letzter Tagesverbrauch [%.2f KWh]" <energy> (gOGStrom_Zaehler)
Number OGStrom_Aktueller_Tagesverbrauch "Aktueller Tagesverbrauch [%.2f KWh]" <energy> (gOGStrom_Zaehler)
Number OGStrom_Jahresverbrauch "Aktueller Jahresverbrauch [%.2f KWh]" <energy> (gOGStrom_Zaehler)
Number OGStrom_Zaehler_Gesamt "Gesamt Zählerstand HT/NT [%.2f KWh]" <energy>
Number OGStrom_Verbrauch_Seit_Letzter_Ablesung "Verbrauch seit letzter Ablesung [%.2f KWh]" <energy>
Number OGStrom_Verbrauch_Laufendes_Kalenderjahr"Verbrauch im laufendem Kalenderjahr [%.2f KWh]"<energy>
Number OGStrom_Verbrauch_Laufender_Monat "Verbrauch aktueller Monat [%.2f KWh]" <energy>
Number OGStrom_Verbrauch_Laufend_Woche "Verbrauch aktuelle Woche [%.2f KWh]" <energy>
Number OGStrom_ZaehlerRSSI "Feldstärke am Device [%d dbm]" (gOGStrom_Zaehler,gSysRSSI)
{channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXXX:0#RSSI_DEVICE"}
Switch OGStrom_ZaehlerBattery "Stromzähler (OG) [MAP(battery.map):%s]" <batterie> (gOGStrom_Zaehler,gSysBattery)
{channel="homematic:HG-HM-ES-TX-WM:D15834B4-DC13-20C5-4917-23DEC3941DE8:XXXXXXXXXX:0#LOWBAT"}
RULE
Code: Alles auswählen
var Number letzteAblesungWert = 561069
rule "Letzter täglicher Stromverbrauch"
when
Time cron "0 59 23 * * ?"
then
var Number letzterTagesverbrauch = (OGStrom_Zaehler.state as DecimalType) - (OGStrom_Zaehler.historicState(now.withTimeAtStartOfDay).state as DecimalType)
if(OGStrom_Letzter_Tagesverbrauch.state != letzterTagesverbrauch)
{
OGStrom_Letzter_Tagesverbrauch.postUpdate(letzterTagesverbrauch)
}
end
rule "Stromverbrauch"
when
Item OGStrom_Zaehler received update
then
var Number Aktuell_Zaehler = OGStrom_Zaehler.state as DecimalType
// Jahresverbrauch
OGStrom_Verbrauch_Laufendes_Kalenderjahr.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusYears(1)))
// Monatsverbrauch
OGStrom_Verbrauch_Laufender_Monat.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusMonths(1)))
// Wochenverbrauch
OGStrom_Verbrauch_Laufend_Woche.postUpdate(OGStrom_Zaehler_Gesamt.deltaSince(now.minusWeeks(1)))
// Tagesverbrauch
OGStrom_Aktueller_Tagesverbrauch.postUpdate(Aktuell_Zaehler - OGStrom_Zaehler.historicState(now.withTimeAtStartOfDay).state as DecimalType)
// Verbrauch seit letzer Ablesung
OGStrom_Verbrauch_Seit_Letzter_Ablesung.postUpdate (OGStrom_Zaehler_Gesamt.state as DecimalType - letzteAblesungWert)
// aktueller Tagesverbrauch in KWh
OGstrom_Aktueller_Verbrauch_Kw.postUpdate (OGStrom_Aktueller_Verbrauch_W.state as DecimalType / 1000)
//logInfo("StromRules:", "States:" + OGstrom_Aktueller_Verbrauch_Kw.state)
//Gesamtzählerstand (HT/NT)
var Number gesamtZaehlerstand = (Aktuell_Zaehler /1000) + letzteAblesungWert
OGStrom_Zaehler_Gesamt.postUpdate (gesamtZaehlerstand)
//Zählerüberlauf
//OGStrom_Energy_Counter.postUpdate = OGStrom_Zaehler.state as DecimalType
//if ((OGStrom_Zaehler.state as DecimalType + 0.001) < OGStrom_Energy_Counter.state as DecimalType) {
// OGStrom_Energy_Counter.postUpdate (OGStrom_Zaehler.state as DecimalType + 838.8607)
//}
end
Aufgrund der technischen Eigenschaften des HM-EM-TX-WM (intern wird nur ein 23 Bit-Zähler verwendet) läuft dessen Datenpunkt bei Erreichen
von 838860,7 Wh über und beginnt wieder bei 0. Dies führt dazu, dass nach diesem Überlauf falsche negative Werte in den einzelnen Zählern angezeigt werden(https://www.elv.de/topic/zaehler-setzt- ... auf-0.html)
Es gibt diverse Ansätze für die CCU, aber nicht wirklich brauchbares für openHAB. Vielleicht hat ja einer von Euch ne Idee wie man das lösen könnte.
CYA
Cyrelian