Heizenergie-Vaillant

Begonnen von Damian, 18 Dezember 2020, 15:45:42

Vorheriges Thema - Nächstes Thema

Damian

Falls jemand seine verbrauchte Energie pro Tag, Woche, Monat, Jahr loggen und visualisieren möchte.

Die Vaillant-Heizung ist über MQTT angebunden.

defmod Heizenergie DOIF {[+[1]:01];;foreach (qw(PrEnergySumHc1 PrEnergySumHwc1)) {fhem_set("MQTT2_FHEM_Server publish ebusd/bai/$_/get")}}\
{ [00:02];;\
  set_Reading("gesamt_Vortag_hc",get_Reading("gesamt_hc"));;\
  set_Reading("Tagesverbrauch_hc",get_Reading("heute_hc"),1);;\
  set_Reading("woche_hc",get_Reading("heute_hc")+get_Reading("woche_hc"),$wday == 1 ? 1 : 0);;\
  set_Reading("monat_hc",get_Reading("heute_hc")+get_Reading("monat_hc"),$mday == 1 ? 1 : 0);;\
  set_Reading("jahr_hc",get_Reading("heute_hc")+get_Reading("jahr_hc"),$yday == 1 ? 1 : 0);;\
  set_Reading("heute_hc",0);;\
  set_Reading("woche_hc",0) if ($wday == 1);;\
  set_Reading("monat_hc",0) if ($mday == 1);;\
  set_Reading("jahr_hc",0) if ($yday == 1);;\
}\
reset_hc {\
set_Reading ("gesamt_Vortag_hc",[?vaillant:PrEnergySumHc1_0_value]);;\
set_Reading ("heute_hc",0);;\
set_Reading ("woche_hc",0);;\
set_Reading ("monat_hc",0);;\
set_Reading ("jahr_hc",0);;\
}\
{\
  set_Reading("gesamt_hc",[vaillant:PrEnergySumHc1_0_value],0);;\
  set_Reading("heute_hc",get_Reading("gesamt_hc")-get_Reading("gesamt_Vortag_hc"),1);;\
}\
\
{ [00:03];;\
  set_Reading("gesamt_Vortag_hwc",get_Reading("gesamt_hwc"));;\
  set_Reading("Tagesverbrauch_hwc",get_Reading("heute_hwc"),1);;\
  set_Reading("woche_hwc",get_Reading("heute_hwc")+get_Reading("woche_hwc"),$wday == 1 ? 1 : 0);;\
  set_Reading("monat_hwc",get_Reading("heute_hwc")+get_Reading("monat_hwc"),$mday == 1 ? 1 : 0);;\
  set_Reading("jahr_hwc",get_Reading("heute_hwc")+get_Reading("jahr_hwc"),$yday == 1 ? 1 : 0);;\
  set_Reading("heute_hwc",0);;\
  set_Reading("woche_hwc",0) if ($wday == 1);;\
  set_Reading("monat_hwc",0) if ($mday == 1);;\
  set_Reading("jahr_hwc",0) if ($yday == 1);;\
}\
reset_hwc {\
set_Reading ("gesamt_Vortag_hwc",[?vaillant:PrEnergySumHwc1_0_value]);;\
set_Reading ("heute_hwc",0);;\
set_Reading ("woche_hwc",0);;\
set_Reading ("monat_hwc",0);;\
set_Reading ("jahr_hwc",0);;\
}\
{\
  set_Reading("gesamt_hwc",[vaillant:PrEnergySumHwc1_0_value],0);;\
  set_Reading("heute_hwc",get_Reading("gesamt_hwc")-get_Reading("gesamt_Vortag_hwc"),1);;\
}
attr Heizenergie group Aktuell
attr Heizenergie room Ebus
attr Heizenergie uiTable {package ui_Table;;\
$TC{0..4}="style='padding-left: 3px;;padding-right: 3px'"\
}\
"Heizung"|""|""|""|""\
bar([$SELF:Tagesverbrauch_hc]/100000,0,100,"Vortag",120,0,"KWh",90)|\
bar([$SELF:heute_hc]/100000,0,100,"heute",120,0,"KWh",90)|\
bar([$SELF:woche_hc]/100000,0,1000,"Woche",120,0,"KWh",90)|\
bar([$SELF:monat_hc]/100000,0,3000,"Monat",120,0,"KWh",100)|\
bar([$SELF:jahr_hc]/100000,0,20000,"Jahr",120,0,"KWh",110)\
"Warmwasser"|""|""|""|""\
bar([$SELF:Tagesverbrauch_hwc]/100000,0,10,"Vortag",120,0,"KWh",90)|\
bar([$SELF:heute_hwc]/100000,0,10,"heute",120,0,"KWh",90)|\
bar([$SELF:woche_hwc]/100000,0,100,"Woche",120,0,"KWh",90)|\
bar([$SELF:monat_hwc]/100000,0,300,"Monat",120,0,"KWh",100)|\
bar([$SELF:jahr_hwc]/100000,0,2000,"Jahr",120,0,"KWh",110)



Im Anhang ist unter Heizenergie das Ergebnis zu sehen
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

jkriegl

Wie rechnest Du die verbrauchte Energie um?
Bei mir ist PrEnergySumxx 514928916 66209107, entspricht einem Zählerstand ca. 778,24 (- 55,15 Zählerstartwert bei Rücksetzen von PrEnergySum)
Verwende uiTable für Solaranzeige, Wetter usw.
Rpi 3/4, buster, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Damian

Zitat von: jkriegl am 18 Dezember 2020, 20:09:13
Wie rechnest Du die verbrauchte Energie um?
Bei mir ist PrEnergySumxx 514928916 66209107, entspricht einem Zählerstand ca. 778,24 (- 55,15 Zählerstartwert bei Rücksetzen von PrEnergySum)
Verwende uiTable für Solaranzeige, Wetter usw.

Indem ich durch 100000 teile, siehe Code.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF