Panasonic Wärmepumpe - Heishamon per mqtt auslesen

Begonnen von rasti, 22 November 2025, 11:40:10

Vorheriges Thema - Nächstes Thema

rasti

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


Gisbert

Hallo Ralf,

ich hab eine 5kW Jeisha und gehe noch einen Schritt weiter und steuere das Gerät vollständig von Fhem aus. Nach einigen Optimierungsrunden läuft die Maschine ohne jeden manuellen Eingriff meinerseits.

Bei Interesse kann ich gerne versuchen meine Automatisierung zu schildern.

Viele Grüße
Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

rasti

Verbesserte Version


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

define HeishaMon MQTT_DEVICE
attr HeishaMon IODev Mosquitto
attr HeishaMon alias Panasonic HeishaMon
attr HeishaMon event-min-interval .*:180
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","-")." W<br>" .\
  "Pel:".ReadingsVal("HeishaMon","Heat_Power_Consumption","-")." W<br>" .\
  "COP:".ReadingsVal("HeishaMon","COP","-")."<br>" .\
  "Quiet Mode Level :".ReadingsVal("HeishaMon","Quiet_Mode_Level","-")\
}
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_Quiet_Mode_Level panasonic_heat_pump/main/Quiet_Mode_Level
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|Quiet_Mode_Level).*
attr FileLog_HeishaMon room 1__Wärmepumpe

define SVG_HeishaMonTemp SVG FileLog_HeishaMon:SVG_HeishaMonTemp:CURRENT
attr SVG_HeishaMonTemp plotsize 1200,400
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 und schreibt COP mit Event ins Device:
#############################################

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


rasti

Zitat von: Gisbert am 22 November 2025, 22:15:39Hallo Ralf,

ich hab eine 5kW Jeisha und gehe noch einen Schritt weiter und steuere das Gerät vollständig von Fhem aus. Nach einigen Optimierungsrunden läuft die Maschine ohne jeden manuellen Eingriff meinerseits.

Bei Interesse kann ich gerne versuchen meine Automatisierung zu schildern.

Viele Grüße
Gisbert

Hallo Gisbert,

ja habe prinzipiell Interesse ich muss bei meiner WP aber erst nochmal loggen und feintunen.

Was ich beispielsweise in FHEM machen würde wäre den Flüstermodus 0-1-2-3 in Abhängigkeit der Aussentemp. zu schalten.

Bei -10° brauche ich fast die volle Leistung (quitmode=0) bei Temp. um die +5°C wie jetzt muss ich den Kompressor
etwas einbremsen und schalte quietmode=3 ansonsten fängt das Ding zu takten denn bei quietmode=0 rennt er mit fast 8kw
los und bevor er runtermoduliert hat ist alles schon zu heiss und schaltet ab. Mit quietmode=3 fängt er erst um 50Hz an und moduliert
auf bis zu 20Hz runter - dauerhaft über viele Stunden. Hat gerade COP-Werte von 6-8......ich kanns kaum glauben  ;D



Gisbert

Hallo Ralf,

so wie du es schilderst, könnte es sein, dass deine Wärmepumpe etwas zu groß ist.
Eine generelle Maßnahme zur Verhinderung des Taktens ist eine Taktsperre, wenn sie die Wärme nicht mehr los wird und ausgeht. Abhängig von der Außentemperatur pausiert meine Wärmepumpe dann für 2-3.5 Stunden.
Die Wärmepumpe wird durch Fhem eingeschaltet, wenn ein Mindestheizbedarf  vorliegt.
Wichtig ist, dass die Heizkurve so niedrig wie möglich eingestellt ist. Das Delta zwischen Vor- und Rücklauf hab ich auf 4°C eingestellt. 3°C hab ich auch versucht - da hatte ich aber den Eindruck, dass dies zu vorschnellem Abschalten geführt hat.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

rasti

Zitat von: Gisbert am 24 November 2025, 21:47:28Hallo Ralf,
so wie du es schilderst, könnte es sein, dass deine Wärmepumpe etwas zu groß ist.

Ja das ist der Fall. Haus hat ca. 300qm, 3 beheizte Wohnungen und ist aus 1998.
Ich habe in den letzten 3 Wintern einen Großteil des Heizwärmebedarfs mit
Splitklimaanlagen gedeckt. Die (bisherige) Ölheizung habe ich immer erst dann angemacht,
wenn die Aussentemp dauerhaft unter ca. 5----6° C gefallen ist.  Wenn ich die Splitklimas
(die einen besseren COP habe als die LWWP) jetzt konsequent abschalten würde dann hab ich richtig Wärmebedarf
und dann wäre die 9kW Jeisha auch passender zum Haus. Aber allein bei über -10°C nicht ausreichend.

ZitatEine generelle Maßnahme zur Verhinderung des Taktens ist eine Taktsperre, wenn sie die Wärme nicht mehr los wird und ausgeht. Abhängig von der Außentemperatur pausiert meine Wärmepumpe dann für 2-3.5 Stunden.
Die Wärmepumpe wird durch Fhem eingeschaltet, wenn ein Mindestheizbedarf  vorliegt. Wichtig ist, dass die Heizkurve so niedrig wie möglich eingestellt ist. Das Delta zwischen Vor- und Rücklauf hab ich auf 4°C eingestellt. 3°C hab ich auch versucht - da hatte ich aber den Eindruck, dass dies zu vorschnellem Abschalten geführt hat.
Heizkurve so niedrig wie möglich ist klar. Aber das delta_T / Heizbetrieb bei der Jeisha ist nicht die Spreizung VL/RL
sondern die Einschaltbedingung für die Wärmepumpe lt. Anleitung.  Das delta T unterhalb der Solltemp. ist doch schon das was du als Mindestheizbedarf per FHEM als Startbedingung für die WP nimmt.
Ich hab den Wert bei mir auf 10k gestellt. Als Taktsperre wie du das bezeichnest. Und die Jeisha macht immer 4...5k Spreizung (VL-RL) egal was man da einstellt, siehe logs.
Oder hab ich da was nicht verstanden ?