FHEM Forum

FHEM - Anwendungen => Heizungssteuerung/Raumklima => Thema gestartet von: rasti am 22 November 2025, 11:40:10

Titel: Panasonic Wärmepumpe - Heishamon per mqtt auslesen
Beitrag von: rasti am 22 November 2025, 11:40:10
Hallo,

ich wollte auch wieder mal was zum Forum beitragen.....hab gerade meine Wärmepumpe (Panasonic Monobloc 9kW) in Betrieb genommen.

Die kann man mit einer kleinen Zusatzplatine namens Heishamon (einfach mal googeln) per mqtt auslesen.

Unten mein Code dazu.

Viele Grüße

Ralf


#############################################
## HeishaMon über Mosquitto (MQTT)
#############################################

define HeishaMon MQTT_DEVICE
attr HeishaMon IODev Mosquitto
attr HeishaMon alias Panasonic HeishaMon
attr HeishaMon event-on-change-reading .*
attr HeishaMon room 1__Wärmepumpe
attr HeishaMon stateFormat {\
  "Fehler :    ".ReadingsVal("HeishaMon","Error","-")."<br><br>" .\
  "AT:".sprintf("%d",ReadingsNum("HeishaMon","Outside_Temp","-"))."°C<br>" .\
  "Soll:".sprintf("%d",ReadingsNum("HeishaMon","Main_Target_Temp","-"))."°C<br>" .\
  "VL:".sprintf("%d",ReadingsNum("HeishaMon","Main_Outlet_Temp","-"))."°C<br>" .\
  "RL:".sprintf("%d",ReadingsNum("HeishaMon","Main_Inlet_Temp","-"))."°C<br>" .\
  "HK1:".sprintf("%d",ReadingsNum("HeishaMon","Z1_Water_Temp","-"))."°C<br>" .\
  "Puffer:".sprintf("%d",ReadingsNum("HeishaMon","Buffer_Temp","-"))."°C<br><br>" .\
  "Kompr:".ReadingsVal("HeishaMon","Compressor_Freq","-")." Hz<br>" .\
  "Pumpe:".ReadingsVal("HeishaMon","Pump_Flow","-")." L/min<br>" .\
  "Pth:".ReadingsVal("HeishaMon","Heat_Power_Production","-")." kW<br>" .\
  "Pel:".ReadingsVal("HeishaMon","Heat_Power_Consumption","-")." kW<br>" .\
  "COP:".ReadingsVal("HeishaMon","COP","-")\
}
attr HeishaMon subscribeReading_Buffer_Tank_Delta panasonic_heat_pump/main/Buffer_Tank_Delta
attr HeishaMon subscribeReading_Buffer_Temp panasonic_heat_pump/main/Buffer_Temp
attr HeishaMon subscribeReading_Compressor_Freq panasonic_heat_pump/main/Compressor_Freq
attr HeishaMon subscribeReading_Cool_Delta panasonic_heat_pump/main/Cool_Delta
attr HeishaMon subscribeReading_Error panasonic_heat_pump/main/Error
attr HeishaMon subscribeReading_Heat_Delta panasonic_heat_pump/main/Heat_Delta
attr HeishaMon subscribeReading_Heat_Power_Consumption panasonic_heat_pump/main/Heat_Power_Consumption
attr HeishaMon subscribeReading_Heat_Power_Production panasonic_heat_pump/main/Heat_Power_Production
attr HeishaMon subscribeReading_Heatpump_State panasonic_heat_pump/main/Heatpump_State
attr HeishaMon subscribeReading_Main_Inlet_Temp panasonic_heat_pump/main/Main_Inlet_Temp
attr HeishaMon subscribeReading_Main_Outlet_Temp panasonic_heat_pump/main/Main_Outlet_Temp
attr HeishaMon subscribeReading_Main_Target_Temp panasonic_heat_pump/main/Main_Target_Temp
attr HeishaMon subscribeReading_Operations_Counter panasonic_heat_pump/main/Operations_Counter
attr HeishaMon subscribeReading_Operations_Hours panasonic_heat_pump/main/Operations_Hours
attr HeishaMon subscribeReading_Outside_Temp panasonic_heat_pump/main/Outside_Temp
attr HeishaMon subscribeReading_Pump_Flow panasonic_heat_pump/main/Pump_Flow
attr HeishaMon subscribeReading_Room_Thermostat_Temp panasonic_heat_pump/main/Room_Thermostat_Temp
attr HeishaMon subscribeReading_Z1_Water_Temp panasonic_heat_pump/main/Z1_Water_Temp

#############################################
## Heihamon alle 3 min ein log
#############################################

define HeishaMon_tick at +*00:03 { fhem("setreading HeishaMon ping ".time()) }




#############################################
## Heihamon Logfile
#############################################



define FileLog_HeishaMon FileLog ./log/HeishaMon-%Y.log HeishaMon:.*(Main_Outlet_Temp|Main_Inlet_Temp|Outside_Temp|Main_Target_Temp|Compressor_Freq|Pump_Flow|Z1_Water_Temp|Buffer_Temp|Heat_Power_Production|Heat_Power_Consumption|COP).*
attr FileLog_HeishaMon room 1__Wärmepumpe

define SVG_HeishaMonTemp SVG FileLog_HeishaMon:SVG_HeishaMonTemp:CURRENT
attr SVG_HeishaMonTemp plotsize 1200,200
attr SVG_HeishaMonTemp room 1__Wärmepumpe

define SVG_HeishaMonTemp2 SVG FileLog_HeishaMon:SVG_HeishaMonTemp2:CURRENT
attr SVG_HeishaMonTemp2 plotsize 1200,150
attr SVG_HeishaMonTemp2 room 1__Wärmepumpe

define SVG_HeishaMonPower SVG FileLog_HeishaMon:SVG_HeishaMonPower:CURRENT
attr SVG_HeishaMonPower label HeishaMon-Leistung
attr SVG_HeishaMonPower plotsize 1200,250
attr SVG_HeishaMonPower room 1__Wärmepumpe


#############################################
## HeishaMon COP-Berechnung
## Notify reagiert auf Änderungen von Heat_Power_Production oder Heat_Power_Consumption
#############################################

define HeishaMon_COP notify HeishaMon:(Heat_Power_Production|Heat_Power_Consumption):.* { my $p=ReadingsNum("HeishaMon","Heat_Power_Production",0);; my $c=ReadingsNum("HeishaMon","Heat_Power_Consumption",0);; my $cop=($c>0)?sprintf("%.2f",$p/$c):0;; fhem("sleep 0.1;; setreading HeishaMon COP $cop");;\
}\

attr HeishaMon_COP event-on-change-reading .*
attr HeishaMon_COP room 1__Wärmepumpe