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
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

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
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

rasti

#5
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 ?

PS: Wo unten  VL-Soll steht ist VL-Heizkreis-Temp. (im Heizungskreis-Rücklauf vor Parallelpuffer) gemeint. Die Rücklauf WP - Temp ist ca. 1k höher weil in der WP gemessen.

Gisbert

Hallo Ralf,

den Text, den du aus der Anleitung zitierst, passt zum Wiedereinschalten der Anlage. Es könnte sich um dieses Topic handeln, welches man per MQTT zur Panasonic schicken kann:
SET18    SetFloorHeatDelta    Set floor heating delta in Kelvin    1-15Das Topic 23 könnte das DeltaT zwischen Vor- und Rücklauf im Heizbetrieb sein:
TOP23    main/Heat_Delta    Heat delta (K)Bei meiner Panasonic schwankt der Wert grob zwischen 3 bis 5°C. Wenn die Wärmepumpe bei mittlerer bis hoher Leistung läuft, dann ist dieser Wert exakt 4.0°C.
Topic 23 kann man anscheinend nur am Wand-Panel ändern, nicht über Heishamon.

Ich versuche die Panasonic mal mit
SET18    SetFloorHeatDelta 2 oder 8°C laufen zu lassen - irgendeine Reaktion wird es geben, aus der man rückschließen kann, um welche Größe es sich handelt. Blöderweise steht dieser Wert aktuell bei 4°C - wie der Wert von Topic 23.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

rasti

Zitat von: Gisbert am 25 November 2025, 13:45:11Hallo Ralf,
den Text, den du aus der Anleitung zitierst, passt zum Wiedereinschalten der Anlage. Es könnte sich um dieses Topic handeln, welches man per MQTT zur Panasonic schicken kann:
SET18    SetFloorHeatDelta    Set floor heating delta in Kelvin    1-15Das Topic 23 könnte das DeltaT zwischen Vor- und Rücklauf im Heizbetrieb sein:
TOP23    main/Heat_Delta    Heat delta (K)Bei meiner Panasonic schwankt der Wert grob zwischen 3 bis 5°C. Wenn die Wärmepumpe bei mittlerer bis hoher Leistung läuft, dann ist dieser Wert exakt 4.0°C.
Topic 23 kann man anscheinend nur am Wand-Panel ändern, nicht über Heishamon.
Hallo Gisbert, Topic23 ist genau das was zur Wiedereinschaltbedingung (siehe Anleitung) gehört. Ich hab da übers Bedienpanel 10K eingestellt und sehe diesen Wert bei Topic23 in Heishamon. Ich glaube, das DeltaT zwischen Vor- und Rücklauf im Heizbetrieb was die Jeisha versucht hinzuregeln, also diesen deltaT-Wert kann man denke ich nicht einstellen, ich vermute der ist fix.

Gisbert

#8
Hallo Ralf,

ich hab eine neue Erkenntnis zu SET18 und TOP23. Mit dem Topic main/SetFloorHeatDelta setzt man den Vorgabewert von DeltaT zwischen Vorlauf und Rücklauf. TOP23 liest dann diesen Wert aus.
Ich hab den Wert jetzt mal auf 3°C gesetzt. Die Erwartung ist, dass der Durchfluss sich um 1/3 gegenüber einem DeltaT von 4°C erhöht. Sobald die Wärmepumpe wieder läuft und stabile Daten liefert, melde ich mich nochmals.

Zum Takten: bei der jetzigen Wetterlage (5°C) habe ich, von den Enteisungen abgesehen, ein Takt pro Tag (d.h. die Wärmepumpe geht einmal aus, pausiert einige Stunden, geht dann wieder an - das war's).

Viele Grüße Gisbert

PS:
Ich lese gerade deinen vorigen Beitrag, während ich gleichzeitig geschrieben habe.
Das DeltaT zwischen Vor- und Nachlauf kann man nach meiner Erfahrung aktiv ändern. Ich werde berichten, wenn ich den obigen Test gemacht habe.
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

Gisbert

Hallo Ralf,

mein Test mit SET18 auf 3°C war insofern erfolgreich, dass ich sagen kann, dass es sich um das DeltaT im Betrieb handelt.
Mit dieser Einstellung ist die Differenz zwischen Vor- und Rücklauf grob 3°C. Zudem ist der Durchfluss jetzt 24 statt knapp 18 Liter/min - also eine Bestätigung meiner Vermutung.

Ich stelle jetzt wieder auf 4°C zurück, hauptsächlich, da meine Rohrleitungen suboptimal für den höheren Durchsatz geeignet sind.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

sigma415

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,
kriege demnächst auch meine Aquarea und Heishamon.
Wärest Du bereit, deinen FHEM-Code (Einbindung via MQTT und ggf. auch deine Hinweise zur Automatisierung) zur Verfügung zu stellen ?
Wäre super, vielen Dank.
FHEM auf ubuntu-Server (Notebook), 3x HMLAN, 2x goE, Tasmota-Devices via MQTT, Home Connect, Velux-KLF200, Harmony, SMA STP10, SMA HM2.0, BYD HVS10.2, evcc, ioBroker, Z2M etc. pp.  ....
Und immer noch viele, viele (Alt-) HM's (ohne -IP).

Gisbert

Zitat von: sigma415 am 05 Juni 2026, 13:13:55
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,
kriege demnächst auch meine Aquarea und Heishamon.
Wärest Du bereit, deinen FHEM-Code (Einbindung via MQTT und ggf. auch deine Hinweise zur Automatisierung) zur Verfügung zu stellen ?
Wäre super, vielen Dank.

Ja, das mache ich gerne.

Wie aus dem obigen Verlauf hervorgeht, schalte ich die Pana aktiv über Fhem ein, wenn das Einschaltkriterium erfüllt ist. Die Pana läuft dann solange, bis sie ihre Wärme im Haus nicht mehr los wird und dann selbständig ausschaltet. Danach bekommt die Pana eine Sperre (2-3.5h, je nach Außentemperatur) verpasst, damit sie nicht gleich wieder angeht, falls das Einschaltkriterium doch erfüllt sein sollte.
Zum Einschaltkriterium: ich kenne die einzelnen Raumtemperaturen und deren Abweichung von der Solltemperatur. Für die Räume, die unterhalb der Solltemperatur liegen, errechne ich eine flächengewichte Zahl, die über alle Räume aufaddiert wird. Wenn diese Zahl (mit willkürlicher Einheit) den Wert 30 (in meinem Fall) übersteigt, dann wird das Einschaltkriterium auf 1 gesetzt, sonst 0.

Das wäre jetzt mal der 1. Schritt. Zu erwähnen ist noch, dass ich kein Warmwasser über die Pana mache, was aber im wesentlichen keinen Einfluss auf meine Steuerung hätte. Da ich nicht weiß, ob die Pana beim Warmwasser vorher abschaltet und dann das 3-Wegeventil schaltet, oder ob sie einfach durchläuft, könnte das noch einen Einfluss auf die Steuerung haben.

Da ich immer noch MQTT statt MQTT2 benutze (nicht sinnvoll, aber noch nicht genügend Motivation zur Änderung gehabt), poste ich als erstes Mal, wie ich die Pana auslese. Der nächste Step ist dann die Steuerung.

Da die Pana sehr viele Readings bereithält, habe ich die Readings inhaltlich auf drei MQTT-Devices aufgeteilt (kommt separat, da ich dafür zum PC wechseln muss).

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

Gisbert

Hier das 1. Device, im raw-Format. Man kann sicher einiges weglassen, aber so hast du alles, was ich auch benutze und worauf ich bei der Steuerung Bezug nehme.
defmod HeishaMon_IP MQTT_DEVICE
attr HeishaMon_IP IODev MyBroker
attr HeishaMon_IP alias HeishaMon IP
attr HeishaMon_IP autoSubscribeReadings panasonic_heat_pump/stats
attr HeishaMon_IP comment 30.4.2026:\
Dass HeishaMon nach einem Firmware-Update Werte wie 0, -1 oder -128 anzeigt, \
liegt meistens daran, dass die Kommunikation zwischen dem HeishaMon-Modul und der Panasonic-Wärmepumpe unterbrochen ist \
oder die Register nicht korrekt gelesen werden können.\
Lösung:\
Gehen Sie ins Web-Interface und klicken Sie unter "Settings" auf Save, auch ohne Änderungen vorzunehmen. \
Dies startet die internen Prozesse oft neu.\
---\
Zur Steuerung der Heizleistung wird der Wert der beheizten Fläche verwendet.\
Zusätzlich wird der Wert für SetHeatRequestTemperature für Heishamon in diesem Device anhand der beheizten Fläche und der Temperaturvorhersage berechnet.\
Zwischen 5 und 10°C wird der Wert für SetHeatRequestTemperature um 1°C reduziert: -0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))\
Man kann Heishamon auch per Json abfragen: http://192.168.2.56/json\
---\
Anstatt den Wert SetHeatRequestTemperature zwischen 20 und 55% der beheizten Fläche stufenweise zu ändern,\
wurde eine angepasste, lineare Funktion verwendet.\
Vorher wurden für die linken Grenzen die folgenden Werte benutzt:\
20 → -1\
25 → 0\
30 → 0\
35 → 1\
45 → 2\
5.2.2025:\
Z1HeatRequestTemp weniger steil definiert, da die Anhebung nach oben in der Realität nicht funktioniert.\
Insgesamt soll sich die Änderung der Heizkurve nur zwischen ca. -2 und +3 bewegen.\
24.11.2025:\
Im DOIF-Device Panasonic_Jeisha wird nur noch eine Absenkung der Heizkurve zugelassen (<=0), \
da eine Anhebung auch bei niedrigen Außentemperaturen keine Auswirkung auf die tatsächliche Vorlauftemperatur hat.
attr HeishaMon_IP event-aggregator Beheizte_Flaeche::none:median:450
attr HeishaMon_IP event-min-interval Beheizte_Flaeche_av:300, Zeitstempel:300
attr HeishaMon_IP event-on-change-reading Beheizte_Flaeche:0.5,Beheizte_Flaeche_av:0.5,Taktsperre,Temp:0.1,Temp_eff:0.1,Z1HeatRequestTemp,Zeitstempel,clouds,dTemp_eff,wait_Wert
attr HeishaMon_IP group Panasonic Aquarea
attr HeishaMon_IP icon it_wifi
attr HeishaMon_IP room Heizung
attr HeishaMon_IP sortby 1
attr HeishaMon_IP stateFormat Beheizte Fläche: [$name:Beheizte_Flaeche_av:r1]%<br/>\
Heizkurve • check: [$name:myZ1HeatRequestTemp] • [$name:mycheck_Z1HeatRequestTemp]°C<br/>\
Aussentemperatur: [TH.Kuhlmannweg8:temperature]°C<br/>\
Cloud cover: [Leverkusen.OpenWeatherMap:cloudCover]%<br/>\
Temp<i><span style="vertical-align: -3px;; font-size: 75%;;">eff</span></i>: [$name:Temp_eff:r1]°C<br/>\
Forecast T<i><span style="vertical-align: -3px;; font-size: 75%;;">14:00</span></i> heute: [DWD.Wetter.Leverkusen:fc0_14_TTT:r1]°C<br/>\
Forecast T<i><span style="vertical-align: -3px;; font-size: 75%;;">14:00</span></i> morgen: [DWD.Wetter.Leverkusen:fc1_14_TTT:r1]°C<br/>\
[$name:IPaddress]<br/>\
<span style='vertical-align: middle;; font-size: 85%;;'>[$name:Zeitstempel]</span>
attr HeishaMon_IP subscribeReading_IP panasonic_heat_pump/ip
attr HeishaMon_IP subscribeReading_LWT panasonic_heat_pump/LWT
attr HeishaMon_IP subscribeReading_stats panasonic_heat_pump/stats
attr HeishaMon_IP userReadings Temp {if (strftime("%H", localtime) <= 18) {round(1/2*ReadingsVal('myTemperature','mytemp','') + 1/2*ReadingsVal('DWD.Wetter.Leverkusen','fc0_4_TTT',''),2)} \
else {round(1/2*ReadingsVal('myTemperature','mytemp','') + 1/2*ReadingsVal('DWD.Wetter.Leverkusen','fc1_4_TTT',''),2)}}, \
Beheizte_Flaeche {Beheizte_Flaeche_EG_OG()}, \
Beheizte_Flaeche_av {round(movingAverage($name,'Beheizte_Flaeche',900)+ReadingsNum($name,'solar_surplus',0),2)},\
clouds {if (isday() == 1) {1*(100-ReadingsVal('Leverkusen.OpenWeatherMap','cloudCover',''))/100} \
else {-1*(100-ReadingsVal('Leverkusen.OpenWeatherMap','cloudCover',''))/100}}, \
Temp_eff {if ((ReadingsVal($name,'Temp','') + ReadingsVal($name,'clouds','') >= 25)) {25} \
else {round(ReadingsVal($name,'Temp','') + ReadingsVal($name,'clouds',''),2)}}, \
dTemp_eff {if (ReadingsVal($name,'Temp_eff','') < 25) \
{round(0.545454545454545*(ReadingsVal('myTemperature','mytemp','')-ReadingsVal($name,'Temp_eff','')),3)} \
else {0}}, \
Z1HeatRequestTemp {if (ReadingsVal($name,'dtemp_eff','0')+1 > 5) {1} \
elsif (ReadingsVal($name,'dtemp_eff','0')-1 < -5) {-1} \
elsif ((22 <= strftime("%H", localtime) or strftime("%H", localtime) <= 4) and ReadingsVal($name,'Beheizte_Flaeche_av','0') < 20) \
{round((ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))-1)/2+ReadingsNum('HeishaMon_main','addCompressorFreq',0),0)} \
elsif (ReadingsVal($name,'Beheizte_Flaeche_av','0') < 20) \
{round((ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))-2)/2+ReadingsNum('HeishaMon_main','addCompressorFreq',0),0)} \
elsif (20 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') <= 75) \
{round((ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))+0.09090909*ReadingsVal($name,'Beheizte_Flaeche_av','0')-3.81818182)/2+ReadingsNum('HeishaMon_main','addCompressorFreq',0),0)} \
elsif (ReadingsVal($name,'Beheizte_Flaeche_av','0') > 75) \
{round((ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))+2)/2+ReadingsNum('HeishaMon_main','addCompressorFreq',0),0)}}, \
myZ1HeatRequestTemp {my $ret = ReadingsVal($name,'Z1HeatRequestTemp','');; $ret =~ s/-0/0/g;; return $ret}, \
mycheck_Z1HeatRequestTemp {my $ret = ReadingsVal($name,'check_Z1HeatRequestTemp','');; $ret =~ s/-0/0/g;; return $ret}, \
Zeitstempel:Beheizte_Flaeche.* {substr(ReadingsTimestamp($name,'Beheizte_Flaeche',''),0,16)}, \
IPaddress {"<a href=\"http://192.168.2.56\" style=\"color: green;; text-decoration: underline;;\" target=\"_blank\" rel=\"noopener noreferrer\">http://192.168.2.56</a>"}

2. Device, hier werden die meisten Readings erhalten.
defmod HeishaMon_main MQTT_DEVICE
attr HeishaMon_main IODev MyBroker
attr HeishaMon_main alias HeishaMon main
attr HeishaMon_main autoSubscribeReadings panasonic_heat_pump/main/+
attr HeishaMon_main comment Defrost_number: Anzahl der Enteisungen ab dem 1.1.2026\
---\
8.1.2025:\
Reset von Errormeldungen:\
http://192.168.2.56/command?SetReset=1\
---\
22.10.2024:\
Funktionseinstellung (Menü 1.6):\
E-Heizstab E-Heizung EIN\
Installateur-Setup > Betriebseinstellung (Menü 6.1):\
E-Heizstab EIN/AUS, Außentemperatur: -8°C\
Verzögerung 30 min (Standard)\
E-Heizstab EIN/AUS, Zuschaltung: -5°C\
E-Heizstab EIN/AUS, Abschaltung: -3°C\
---\
Heizstab zum Abtauen aktivieren:\
https://www.haustechnikdialog.de/Forum/t/259696/Jeisha-Heizstab-Abtauen\
Spezialmenu: Taste links / Taste runter / Menu (rechts oben)\
am besten in der Reihenfolge für 10 Sekunden drücken, dann kann man den E-Heizstab aktivieren.\
W I C H T I G :\
Nach dem Aufruf des Spezialmenus ist die Heizkurve auf den Werkszustand (Heizkörper) zurückgesetzt.\
Es ist nötig, die Heizkurve neu mit einem set-Befehl zu definieren (s. Ende des Kommentars).\
Zum Nachlesen der Topics: \
https://github.com/Egyras/HeishaMon/blob/master/MQTT-Topics.md\
Ausgabe im Json-Format: \
http://192.168.2.56/json\
MQTT: send mqtt message to base_topic/commands/SetTopic\
(e.g.: panasonic_heat_pump/commands/SetHeatpump)\
SetHeatpump - Set heatpump on or off 0=off, 1=on\
SetZ1HeatRequestTemperature - Set Z1 heat shift or direct heat temperature -5 to 5 or 20 to max\
SetFloorHeatDelta - Set floor heating delta in Kelvin 1-15\
SetHeaterStartDelta - Set heater start delta T (only J-series) in kelvin\
SetHeaterStopDelta - Set heater stop delta T (only J-series) in kelvin\
SetAltExternalSensor - Set the alternative external outdoor sensor 0=disabled, 1=enabled\
SetHeatingOffOutdoorTemp - Set Outdoor Temperature to stop heating 5 to 35\
SetQuietMode - Set quiet mode level 0, 1, 2 or 3\
SetPowerfulMode - Set powerful mode run time in minutes 0=off, 1=30, 2=60 or 3=90\
SetForceDefrost - Forces defrost routine - 0, 1\
SetBivalentControl - Set bivalent control switch - 0=disabled, 1=enabled\
SetBivalentStartTemp - Set bivalent start temp - -15 to 35\
TOP59 - main/Room_Heater_State - When enabled, backup heater can be used for room heating (0=disabled, 1=enabled)\
TOP60 - main/Internal_Heater_State - Internal backup heater state (0=inactive, 1=active)\
Offenbar kann man damit nicht die Zusatzheizung steuern, denn sie tauchen nicht bei den setTopics auf.\
---\
Ändern der Heizkurve\
nicht vollständig:\
panasonic_heat_pump/commands/SetCurves {zone1:{heat:{target:{low:25}}}}\
http://IP/command?SetCurves={zone1:{heat:{target:{low:25}}}\
vollständig, Heizkurve: +10/28 -10/36:\
set HeishaMon_main SetCurves {zone1:{heat:{target:{high:36,low:28},outside:{high:10,low:-10}}}}\
17.1.2025, geändert:\
set HeishaMon_main SetCurves {zone1:{heat:{target:{high:34,low:28},outside:{high:10,low:-10}}}}\
3.2.2025, geändert:\
set HeishaMon_main SetCurves {zone1:{heat:{target:{high:31,low:28},outside:{high:10,low:0}}}}\
17.2.2025, geändert:\
set HeishaMon_main SetCurves {zone1:{heat:{target:{high:30,low:28},outside:{high:10,low:3}}}}\
14.9.2025, minimal nach unten parallel verschobene Heizkurve, im mittleren Bereich ca. 0.487°C:\
set HeishaMon_main SetCurves {zone1:{heat:{target:{high:30,low:27},outside:{high:12,low:1}}}}\
Folgende Heizkurve wäre mit der vom 17.2.2025 quasi identisch, jedoch sind die Eckwerte niedriger/höher:\
{zone1:{heat:{target:{high:31,low:27},outside:{high:13,low:0}}}} - nicht umgesetzt.\
---\
Lüftersteuerung\
Defrosting tritt bei folgenden Bedingungen auf:\
Messwerte von einem Homematic Temperatur/Feuchte-Messgerät\
<= 4°C\
> 70% rel.h.\
Während des Defrostings darf der Lüfter nicht laufen.\
Der Lüfter geht aus, wenn während des Abtauvorgangs der Kompressor ausgeht.\
Der Lüfter geht wieder an, wenn der Kompressor wieder normal anläuft.\
Das muss bei der Steuerung des Relais beachtet werden.\
---\
Sommer/Winter-Abschaltung: 14°C\
---\
Man kann Heishamon auch per Json abfragen: http://192.168.2.56/json\
---\
Um die Panasonic länger laufen zu lassen,\
wird bei einer Kompressorfrequenz <= 24 1°C zur Heizkurve (in Heishamon_IP) dazu addiert.\
https://www.haustechnikdialog.de/Forum/t/268257/Waermepumpe-schonen-lange-Standzeit-vs-Erhoehung-der-Lebensdauer\
Die Lebensdauer des Verdichters liegt grob bei 100K Ein-/Ausschaltvorgängen.\
---\
16.11.2025: Simulation des externen Temperatursensors\
Dennis Nörmann hat einen 47k-Widerstand eingebaut, der -15°C entspricht.\
Ich hatte einen höheren Widerstand eingebaut, um auf -18°C zu kommen.\
Das sollte/muss auf 47k geändert werden.\
8.1.2026: Es wurde 2x51k (~25k) eingebaut, was in etwa -4 bis -5°C ergibt.
attr HeishaMon_main event-min-interval Pana_an:120,Heatpump_State:120,heat_power:60,heat_kWh:60,Pump_Flow:60,Main_Inlet_Temp:60,Main_Outlet_Temp:60,diff_temp:60,Outside_Temp:60
attr HeishaMon_main event-on-change-reading Pana_an,Laufzeit_h,Alt_External_Sensor,mid_temp,diff_temp,Error,heat_kWh,heat_power,\
,Zeitstempel,Pump_Speed,Heatpump_State,Pump_Flow,\
,Operating_Mode_State,Main_Inlet_Temp,Main_Outlet_Temp,Main_Target_Temp,Compressor_Freq,\
,Operations_Hours,Operations_Counter,Outside_Temp,Heat_Power_Production,Heat_Power_Consumption,\
,Outside_Pipe_Temp,Heat_Delta,Inside_Pipe_Temp,Internal_Heater_State,Pump_Flowrate_Mode,\
,Z1_Heat_Request_Temp,Fan1_Motor_Speed,Defrosting_State,Defrost_Temp
attr HeishaMon_main event-on-update-reading heat_kWh,heat_power
attr HeishaMon_main group Panasonic Aquarea
attr HeishaMon_main icon sani_heating_heatpump
attr HeishaMon_main publishSet_SetAltExternalSensor panasonic_heat_pump/commands/SetAltExternalSensor
attr HeishaMon_main publishSet_SetBivalentControl panasonic_heat_pump/commands/SetBivalentControl
attr HeishaMon_main publishSet_SetBivalentStartTemp panasonic_heat_pump/commands/SetBivalentStartTemp
attr HeishaMon_main publishSet_SetCurves panasonic_heat_pump/commands/SetCurves
attr HeishaMon_main publishSet_SetFloorHeatDelta panasonic_heat_pump/commands/SetFloorHeatDelta
attr HeishaMon_main publishSet_SetForceDefrost panasonic_heat_pump/commands/SetForceDefrost
attr HeishaMon_main publishSet_SetHeaterStartDelta panasonic_heat_pump/commands/SetHeaterStartDelta
attr HeishaMon_main publishSet_SetHeaterStopDelta panasonic_heat_pump/commands/SetHeaterStopDelta
attr HeishaMon_main publishSet_SetHeatingOffOutdoorTemp panasonic_heat_pump/commands/SetHeatingOffOutdoorTemp
attr HeishaMon_main publishSet_SetHeatpump panasonic_heat_pump/commands/SetHeatpump
attr HeishaMon_main publishSet_SetPowerfulMode panasonic_heat_pump/commands/SetPowerfulMode
attr HeishaMon_main publishSet_SetQuietMode panasonic_heat_pump/commands/SetQuietMode
attr HeishaMon_main publishSet_SetZ1HeatRequestTemperature panasonic_heat_pump/commands/SetZ1HeatRequestTemperature
attr HeishaMon_main room Heizung
attr HeishaMon_main sortby 2
attr HeishaMon_main stateFormat T<b><i><span style="vertical-align: -3px;; font-size: 75%;;">s</span></i></b> [$name:Main_Target_Temp] • T<b><i><span style="vertical-align: -3px;; font-size: 75%;;">V</span></i></b> [$name:Main_Outlet_Temp:r2] • T<b><i><span style="vertical-align: -3px;; font-size: 75%;;">R</span></i></b> [$name:Main_Inlet_Temp:r2]°C<br/>\
<b>Φ</b> • <b>P</b>: [$name:heat_power:r2] • <span style='color:{(ReadingsNum('HeishaMon_s0','Watt','') > 0.05 ? "red":"#2e5e87")}'><b>[HeishaMon_s0:Watt:r3]</b></span> kW<br/>\
Pumpenfluss: [$name:Pump_Flow:r2] l/min<br/>\
Pumpendrehzahl: <span style='color:{(ReadingsNum('HeishaMon_main','Heatpump_State','') > 0 ? "red":"#2e5e87")}'><b>[$name:Pump_Speed]</b></span> Upm<br/>\
Lüfterdrehzahl: <span style='color:{(ReadingsNum('HeishaMon_main','Heatpump_State','') > 0 ? "red":"#2e5e87")}'><b>[$name:Fan1_Motor_Speed]</b></span> Upm<br/>\
Kompressorfrequenz: <span style='color:{(ReadingsNum('HeishaMon_main','Heatpump_State','') > 0 ? "red":"#2e5e87")}'><b>[$name:Compressor_Freq]</b></span> Hz<br/>\
Außentemp. Panasonic: <span style='color:{(ReadingsNum('HeishaMon_main','Alt_External_Sensor','') == 1 ? "magenta":"#2e5e87")}'><b>[$name:Outside_Temp]°C</span></b><br/>\
Outside pipe temp.: [$name:Outside_Pipe_Temp]°C<br/>\
Betriebsstunden: [$name:Operations_Hours] h<br/>\
Kompressorstarts: [$name:Operations_Counter]<br/>\
Laufzeit pro Start: [$name:Laufzeit]<br/>\
<span style='vertical-align: middle;; font-size: 85%;;'>[$name:Zeitstempel]</span>
attr HeishaMon_main subscribeReading_Alt_External_Sensor panasonic_heat_pump/main/Alt_External_Sensor
attr HeishaMon_main subscribeReading_Anti_Freeze_Mode panasonic_heat_pump/main/Anti_Freeze_Mode
attr HeishaMon_main subscribeReading_Bivalent_Advanced_DHW panasonic_heat_pump/main/Bivalent_Advanced_DHW
attr HeishaMon_main subscribeReading_Bivalent_Advanced_DHW_Del0b panasonic_heat_pump/main/Bivalent_Advanced_DHW_Del0b
attr HeishaMon_main subscribeReading_Bivalent_Advanced_DHW_Delay panasonic_heat_pump/main/Bivalent_Advanced_DHW_Delay
attr HeishaMon_main subscribeReading_Bivalent_Advanced_Heat panasonic_heat_pump/main/Bivalent_Advanced_Heat
attr HeishaMon_main subscribeReading_Bivalent_Advanced_Start_Delay panasonic_heat_pump/main/Bivalent_Advanced_Start_Delay
attr HeishaMon_main subscribeReading_Bivalent_Advanced_Start_Temp panasonic_heat_pump/main/Bivalent_Advanced_Start_Temp
attr HeishaMon_main subscribeReading_Bivalent_Advanced_Stop_Delay panasonic_heat_pump/main/Bivalent_Advanced_Stop_Delay
attr HeishaMon_main subscribeReading_Bivalent_Advanced_Stop_Temp panasonic_heat_pump/main/Bivalent_Advanced_Stop_Temp
attr HeishaMon_main subscribeReading_Bivalent_Control panasonic_heat_pump/main/Bivalent_Control
attr HeishaMon_main subscribeReading_Bivalent_Mode panasonic_heat_pump/main/Bivalent_Mode
attr HeishaMon_main subscribeReading_Bivalent_Start_Temp panasonic_heat_pump/main/Bivalent_Start_Temp
attr HeishaMon_main subscribeReading_Buffer_Installed panasonic_heat_pump/main/Buffer_Installed
attr HeishaMon_main subscribeReading_Buffer_Tank_Delta panasonic_heat_pump/main/Buffer_Tank_Delta
attr HeishaMon_main subscribeReading_Buffer_Temp panasonic_heat_pump/main/Buffer_Temp
attr HeishaMon_main subscribeReading_Bypass_Outlet_Temp panasonic_heat_pump/main/Bypass_Outlet_Temp
attr HeishaMon_main subscribeReading_Compressor_Current panasonic_heat_pump/main/Compressor_Current
attr HeishaMon_main subscribeReading_Compressor_Freq panasonic_heat_pump/main/Compressor_Freq
attr HeishaMon_main subscribeReading_Cool_Delta panasonic_heat_pump/main/Cool_Delta
attr HeishaMon_main subscribeReading_Cool_Power_Consumption panasonic_heat_pump/main/Cool_Power_Consumption
attr HeishaMon_main subscribeReading_Cool_Power_Production panasonic_heat_pump/main/Cool_Power_Production
attr HeishaMon_main subscribeReading_Cool_To_Heat_Temp panasonic_heat_pump/main/Cool_To_Heat_Temp
attr HeishaMon_main subscribeReading_Cooling_Mode panasonic_heat_pump/main/Cooling_Mode
attr HeishaMon_main subscribeReading_DHW_Heat_Delta panasonic_heat_pump/main/DHW_Heat_Delta
attr HeishaMon_main subscribeReading_DHW_Heater_Operations_Hours panasonic_heat_pump/main/DHW_Heater_Operations_Hours
attr HeishaMon_main subscribeReading_DHW_Heater_State panasonic_heat_pump/main/DHW_Heater_State
attr HeishaMon_main subscribeReading_DHW_Holiday_Shift_Temp panasonic_heat_pump/main/DHW_Holiday_Shift_Temp
attr HeishaMon_main subscribeReading_DHW_Installed panasonic_heat_pump/main/DHW_Installed
attr HeishaMon_main subscribeReading_DHW_Power_Consumption panasonic_heat_pump/main/DHW_Power_Consumption
attr HeishaMon_main subscribeReading_DHW_Power_Production panasonic_heat_pump/main/DHW_Power_Production
attr HeishaMon_main subscribeReading_DHW_Sensor_Selection panasonic_heat_pump/main/DHW_Sensor_Selection
attr HeishaMon_main subscribeReading_DHW_Target_Temp panasonic_heat_pump/main/DHW_Target_Temp
attr HeishaMon_main subscribeReading_DHW_Temp panasonic_heat_pump/main/DHW_Temp
attr HeishaMon_main subscribeReading_Defrost_Temp panasonic_heat_pump/main/Defrost_Temp
attr HeishaMon_main subscribeReading_Defrosting_State panasonic_heat_pump/main/Defrosting_State
attr HeishaMon_main subscribeReading_Discharge_Temp panasonic_heat_pump/main/Discharge_Temp
attr HeishaMon_main subscribeReading_Economizer_Outlet_Temp panasonic_heat_pump/main/Economizer_Outlet_Temp
attr HeishaMon_main subscribeReading_Error panasonic_heat_pump/main/Error
attr HeishaMon_main subscribeReading_Eva_Outlet_Temp panasonic_heat_pump/main/Eva_Outlet_Temp
attr HeishaMon_main subscribeReading_Expansion_Valve panasonic_heat_pump/main/Expansion_Valve
attr HeishaMon_main subscribeReading_External_Compressor_Control panasonic_heat_pump/main/External_Compressor_Control
attr HeishaMon_main subscribeReading_External_Control panasonic_heat_pump/main/External_Control
attr HeishaMon_main subscribeReading_External_Error_Signal panasonic_heat_pump/main/External_Error_Signal
attr HeishaMon_main subscribeReading_External_Heat_Cool_Control panasonic_heat_pump/main/External_Heat_Cool_Control
attr HeishaMon_main subscribeReading_External_Heater_State panasonic_heat_pump/main/External_Heater_State
attr HeishaMon_main subscribeReading_External_Pad_Heater panasonic_heat_pump/main/External_Pad_Heater
attr HeishaMon_main subscribeReading_Fan1_Motor_Speed panasonic_heat_pump/main/Fan1_Motor_Speed
attr HeishaMon_main subscribeReading_Fan2_Motor_Speed panasonic_heat_pump/main/Fan2_Motor_Speed
attr HeishaMon_main subscribeReading_Force_DHW_State panasonic_heat_pump/main/Force_DHW_State
attr HeishaMon_main subscribeReading_Force_Heater_State panasonic_heat_pump/main/Force_Heater_State
attr HeishaMon_main subscribeReading_Heat_Delta panasonic_heat_pump/main/Heat_Delta
attr HeishaMon_main subscribeReading_Heat_Power_Consumption panasonic_heat_pump/main/Heat_Power_Consumption
attr HeishaMon_main subscribeReading_Heat_Power_Production panasonic_heat_pump/main/Heat_Power_Production
attr HeishaMon_main subscribeReading_Heat_Pump_Model panasonic_heat_pump/main/Heat_Pump_Model
attr HeishaMon_main subscribeReading_Heat_To_Cool_Temp panasonic_heat_pump/main/Heat_To_Cool_Temp
attr HeishaMon_main subscribeReading_Heater_Delay_Time panasonic_heat_pump/main/Heater_Delay_Time
attr HeishaMon_main subscribeReading_Heater_On_Outdoor_Temp panasonic_heat_pump/main/Heater_On_Outdoor_Temp
attr HeishaMon_main subscribeReading_Heater_Start_Delta panasonic_heat_pump/main/Heater_Start_Delta
attr HeishaMon_main subscribeReading_Heater_Stop_Delta panasonic_heat_pump/main/Heater_Stop_Delta
attr HeishaMon_main subscribeReading_Heating_Control panasonic_heat_pump/main/Heating_Control
attr HeishaMon_main subscribeReading_Heating_Mode panasonic_heat_pump/main/Heating_Mode
attr HeishaMon_main subscribeReading_Heating_Off_Outdoor_Temp panasonic_heat_pump/main/Heating_Off_Outdoor_Temp
attr HeishaMon_main subscribeReading_Heatpump_State panasonic_heat_pump/main/Heatpump_State
attr HeishaMon_main subscribeReading_High_Pressure panasonic_heat_pump/main/High_Pressure
attr HeishaMon_main subscribeReading_Holiday_Mode_State panasonic_heat_pump/main/Holiday_Mode_State
attr HeishaMon_main subscribeReading_Inside_Pipe_Temp panasonic_heat_pump/main/Inside_Pipe_Temp
attr HeishaMon_main subscribeReading_Internal_Heater_State panasonic_heat_pump/main/Internal_Heater_State
attr HeishaMon_main subscribeReading_Ipm_Temp panasonic_heat_pump/main/Ipm_Temp
attr HeishaMon_main subscribeReading_Liquid_Type panasonic_heat_pump/main/Liquid_Type
attr HeishaMon_main subscribeReading_Low_Pressure panasonic_heat_pump/main/Low_Pressure
attr HeishaMon_main subscribeReading_Main_Hex_Outlet_Temp panasonic_heat_pump/main/Main_Hex_Outlet_Temp
attr HeishaMon_main subscribeReading_Main_Inlet_Temp panasonic_heat_pump/main/Main_Inlet_Temp
attr HeishaMon_main subscribeReading_Main_Outlet_Temp panasonic_heat_pump/main/Main_Outlet_Temp
attr HeishaMon_main subscribeReading_Main_Schedule_State panasonic_heat_pump/main/Main_Schedule_State
attr HeishaMon_main subscribeReading_Main_Target_Temp panasonic_heat_pump/main/Main_Target_Temp
attr HeishaMon_main subscribeReading_Max_Pump_Duty panasonic_heat_pump/main/Max_Pump_Duty
attr HeishaMon_main subscribeReading_Operating_Mode_State panasonic_heat_pump/main/Operating_Mode_State
attr HeishaMon_main subscribeReading_Operations_Counter panasonic_heat_pump/main/Operations_Counter
attr HeishaMon_main subscribeReading_Operations_Hours panasonic_heat_pump/main/Operations_Hours
attr HeishaMon_main subscribeReading_Optional_PCB panasonic_heat_pump/main/Optional_PCB
attr HeishaMon_main subscribeReading_Outside_Pipe_Temp panasonic_heat_pump/main/Outside_Pipe_Temp
attr HeishaMon_main subscribeReading_Outside_Temp panasonic_heat_pump/main/Outside_Temp
attr HeishaMon_main subscribeReading_Pool_Temp panasonic_heat_pump/main/Pool_Temp
attr HeishaMon_main subscribeReading_Powerful_Mode_Time panasonic_heat_pump/main/Powerful_Mode_Time
attr HeishaMon_main subscribeReading_Pump_Duty panasonic_heat_pump/main/Pump_Duty
attr HeishaMon_main subscribeReading_Pump_Flow panasonic_heat_pump/main/Pump_Flow
attr HeishaMon_main subscribeReading_Pump_Flowrate_Mode panasonic_heat_pump/main/Pump_Flowrate_Mode
attr HeishaMon_main subscribeReading_Pump_Speed panasonic_heat_pump/main/Pump_Speed
attr HeishaMon_main subscribeReading_Quiet_Mode_Level panasonic_heat_pump/main/Quiet_Mode_Level
attr HeishaMon_main subscribeReading_Quiet_Mode_Priority panasonic_heat_pump/main/Quiet_Mode_Priority
attr HeishaMon_main subscribeReading_Quiet_Mode_Schedule panasonic_heat_pump/main/Quiet_Mode_Schedule
attr HeishaMon_main subscribeReading_Room_Heater_Operations_Hours panasonic_heat_pump/main/Room_Heater_Operations_Hours
attr HeishaMon_main subscribeReading_Room_Heater_State panasonic_heat_pump/main/Room_Heater_State
attr HeishaMon_main subscribeReading_Room_Holiday_Shift_Temp panasonic_heat_pump/main/Room_Holiday_Shift_Temp
attr HeishaMon_main subscribeReading_Room_Thermostat_Temp panasonic_heat_pump/main/Room_Thermostat_Temp
attr HeishaMon_main subscribeReading_Second_Inlet_Temp panasonic_heat_pump/main/Second_Inlet_Temp
attr HeishaMon_main subscribeReading_Second_Room_Thermostat_Temp panasonic_heat_pump/main/Second_Room_Thermostat_Temp
attr HeishaMon_main subscribeReading_Smart_DHW panasonic_heat_pump/main/Smart_DHW
attr HeishaMon_main subscribeReading_Solar_Frost_Protection panasonic_heat_pump/main/Solar_Frost_Protection
attr HeishaMon_main subscribeReading_Solar_High_Limit panasonic_heat_pump/main/Solar_High_Limit
attr HeishaMon_main subscribeReading_Solar_Mode panasonic_heat_pump/main/Solar_Mode
attr HeishaMon_main subscribeReading_Solar_Off_Delta panasonic_heat_pump/main/Solar_Off_Delta
attr HeishaMon_main subscribeReading_Solar_On_Delta panasonic_heat_pump/main/Solar_On_Delta
attr HeishaMon_main subscribeReading_Solar_Temp panasonic_heat_pump/main/Solar_Temp
attr HeishaMon_main subscribeReading_Sterilization_Max_Time panasonic_heat_pump/main/Sterilization_Max_Time
attr HeishaMon_main subscribeReading_Sterilization_State panasonic_heat_pump/main/Sterilization_State
attr HeishaMon_main subscribeReading_Sterilization_Temp panasonic_heat_pump/main/Sterilization_Temp
attr HeishaMon_main subscribeReading_ThreeWay_Valve_State panasonic_heat_pump/main/ThreeWay_Valve_State
attr HeishaMon_main subscribeReading_ThreeWay_Valve_State2 panasonic_heat_pump/main/ThreeWay_Valve_State2
attr HeishaMon_main subscribeReading_TwoWay_Valve_State panasonic_heat_pump/main/TwoWay_Valve_State
attr HeishaMon_main subscribeReading_Water_Pressure panasonic_heat_pump/main/Water_Pressure
attr HeishaMon_main subscribeReading_Z1_Cool_Curve_Outside_High_Temp panasonic_heat_pump/main/Z1_Cool_Curve_Outside_High_Temp
attr HeishaMon_main subscribeReading_Z1_Cool_Curve_Outside_Low_Temp panasonic_heat_pump/main/Z1_Cool_Curve_Outside_Low_Temp
attr HeishaMon_main subscribeReading_Z1_Cool_Curve_Target_High_Temp panasonic_heat_pump/main/Z1_Cool_Curve_Target_High_Temp
attr HeishaMon_main subscribeReading_Z1_Cool_Curve_Target_Low_Temp panasonic_heat_pump/main/Z1_Cool_Curve_Target_Low_Temp
attr HeishaMon_main subscribeReading_Z1_Cool_Request_Temp panasonic_heat_pump/main/Z1_Cool_Request_Temp
attr HeishaMon_main subscribeReading_Z1_Heat_Curve_Outside_High_Temp panasonic_heat_pump/main/Z1_Heat_Curve_Outside_High_Temp
attr HeishaMon_main subscribeReading_Z1_Heat_Curve_Outside_Low_Temp panasonic_heat_pump/main/Z1_Heat_Curve_Outside_Low_Temp
attr HeishaMon_main subscribeReading_Z1_Heat_Curve_Target_High_Temp panasonic_heat_pump/main/Z1_Heat_Curve_Target_High_Temp
attr HeishaMon_main subscribeReading_Z1_Heat_Curve_Target_Low_Temp panasonic_heat_pump/main/Z1_Heat_Curve_Target_Low_Temp
attr HeishaMon_main subscribeReading_Z1_Heat_Request_Temp panasonic_heat_pump/main/Z1_Heat_Request_Temp
attr HeishaMon_main subscribeReading_Z1_Pump_State panasonic_heat_pump/main/Z1_Pump_State
attr HeishaMon_main subscribeReading_Z1_Sensor_Settings panasonic_heat_pump/main/Z1_Sensor_Settings
attr HeishaMon_main subscribeReading_Z1_Temp panasonic_heat_pump/main/Z1_Temp
attr HeishaMon_main subscribeReading_Z1_Valve_PID panasonic_heat_pump/main/Z1_Valve_PID
attr HeishaMon_main subscribeReading_Z1_Water_Target_Temp panasonic_heat_pump/main/Z1_Water_Target_Temp
attr HeishaMon_main subscribeReading_Z1_Water_Temp panasonic_heat_pump/main/Z1_Water_Temp
attr HeishaMon_main subscribeReading_Z2_Cool_Curve_Outside_High_Temp panasonic_heat_pump/main/Z2_Cool_Curve_Outside_High_Temp
attr HeishaMon_main subscribeReading_Z2_Cool_Curve_Outside_Low_Temp panasonic_heat_pump/main/Z2_Cool_Curve_Outside_Low_Temp
attr HeishaMon_main subscribeReading_Z2_Cool_Curve_Target_High_Temp panasonic_heat_pump/main/Z2_Cool_Curve_Target_High_Temp
attr HeishaMon_main subscribeReading_Z2_Cool_Curve_Target_Low_Temp panasonic_heat_pump/main/Z2_Cool_Curve_Target_Low_Temp
attr HeishaMon_main subscribeReading_Z2_Cool_Request_Temp panasonic_heat_pump/main/Z2_Cool_Request_Temp
attr HeishaMon_main subscribeReading_Z2_Heat_Curve_Outside_High_Temp panasonic_heat_pump/main/Z2_Heat_Curve_Outside_High_Temp
attr HeishaMon_main subscribeReading_Z2_Heat_Curve_Outside_Low_Temp panasonic_heat_pump/main/Z2_Heat_Curve_Outside_Low_Temp
attr HeishaMon_main subscribeReading_Z2_Heat_Curve_Target_High_Temp panasonic_heat_pump/main/Z2_Heat_Curve_Target_High_Temp
attr HeishaMon_main subscribeReading_Z2_Heat_Curve_Target_Low_Temp panasonic_heat_pump/main/Z2_Heat_Curve_Target_Low_Temp
attr HeishaMon_main subscribeReading_Z2_Heat_Request_Temp panasonic_heat_pump/main/Z2_Heat_Request_Temp
attr HeishaMon_main subscribeReading_Z2_Pump_State panasonic_heat_pump/main/Z2_Pump_State
attr HeishaMon_main subscribeReading_Z2_Sensor_Settings panasonic_heat_pump/main/Z2_Sensor_Settings
attr HeishaMon_main subscribeReading_Z2_Temp panasonic_heat_pump/main/Z2_Temp
attr HeishaMon_main subscribeReading_Z2_Valve_PID panasonic_heat_pump/main/Z2_Valve_PID
attr HeishaMon_main subscribeReading_Z2_Water_Target_Temp panasonic_heat_pump/main/Z2_Water_Target_Temp
attr HeishaMon_main subscribeReading_Z2_Water_Temp panasonic_heat_pump/main/Z2_Water_Temp
attr HeishaMon_main subscribeReading_Zones_State panasonic_heat_pump/main/Zones_State
attr HeishaMon_main userReadings Zeitstempel {substr(ReadingsTimestamp($name,'Main_Outlet_Temp',''),0,16)}, \
heat_power {if (ReadingsVal($name,'Main_Outlet_Temp',30)-ReadingsVal($name,'Main_Inlet_Temp',26) > 0) \
{round(60/1000*(ReadingsVal($name,'Pump_Flow',15.5)-0.13)*0.4768/(0.086836**(1+(1-(ReadingsVal($name,'mid_temp',28)+273.15)/637.287)**0.0891497))*18.016/3600\
*(276370-2090.1*(ReadingsVal($name,'mid_temp',28)+273.15)+8.125*(ReadingsVal($name,'mid_temp',28)+273.15)**2-0.014116\
*(ReadingsVal($name,'mid_temp',28)+273.15)**3+0.0000093701*(ReadingsVal($name,'mid_temp',28)+273.15)**4)/1000/18.016\
*(ReadingsVal($name,'Main_Outlet_Temp',30)-ReadingsVal($name,'Main_Inlet_Temp',26)),4)}\
else {0}}, \
mid_temp:Main_Outlet_Temp.* {(ReadingsNum($name,'Main_Outlet_Temp',30)+ReadingsNum($name,'Main_Inlet_Temp',26))/2}, \
diff_temp:Main_Outlet_Temp.* {if (ReadingsNum($name,'Pump_Flow','')-0.13 > 0) \
{ReadingsNum($name,'Main_Outlet_Temp','')-ReadingsNum($name,'Main_Inlet_Temp','')} \
else {0}}, \
heat_kWh:heat_power.* integral {ReadingsVal($name,'heat_power',5)/3600}, \
addCompressorFreq:Compressor_Freq.* {if (24 >= ReadingsNum($name,'Compressor_Freq',0) > 0 and ReadingsNum($name,'Defrosting_State','') == 0) \
{1} else {0}}, \
Pana_an:Compressor_Freq.* {if(ReadingsNum($name,'Compressor_Freq','') == 0) {0} else {1}}, \
Laufzeit:Operations_Hours.* {sec2human_hms(ReadingsNum($name,'Operations_Hours','')/ReadingsNum($name,'Operations_Counter','')*3600)}, \
Laufzeit_h:Operations_Hours.* {ReadingsNum($name,'Operations_Hours','')/ReadingsNum($name,'Operations_Counter','')*60}, \
Defrost_number:Defrosting_State.* {ReadingsNum($name,'Defrost_number','')+ReadingsNum($name,'Defrosting_State','')}

3. Device: wird nur für das Auslesen der elektrischen Energiemenge (S0-Zähler) und der Wärmemenge benötigt. Noch ein Hinweis: ich habe eine zusätzliche Umwälzpumpe (Marke: Evosta) im Haus in den Rücklauf eingebaut, die mehrere  Aufgaben hat. Die wichtigste dabei ist als Frostwächter die Umwälzung aufrecht zu halten, falls die Pana im tiefsten Winter auf Störung gehen sollte. Worst-case-Szenario: die Pana geht abends bei -10°C Außentemperatur um 22:00 auf Störung, ich kriege es nicht mit, und morgens um 8:00 ist der Wärmetauscher im Außengerät eingefroren. Es reicht dabei völlig aus, die Evosta-Pumpe 1 Minute pro Stunde laufen zu lassen, um die Pana vor Frost zu schützen.
defmod HeishaMon_s0 MQTT_DEVICE
attr HeishaMon_s0 IODev MyBroker
attr HeishaMon_s0 alias HeishaMon s0
attr HeishaMon_s0 autoSubscribeReadings panasonic_heat_pump/s0/+/+
attr HeishaMon_s0 comment Daten von den S0-Meter im Zählerschrank stimmen nicht mit den Daten in Heishamon überein.\
Deshalb gibt es im ElectricityCalculator-Device einen Offset.\
---\
15.10.2025 (ca.):\
Der Verbrauch der Evosta-Umwälzpumpe wird im Reading Watthour_Total bilanziert.\
Dadurch entfallen an verschiedenen Stellen etliche Berechnungen, die zum Ziel hatten, \
den Verbrauch der Evosta-Umwälzpumpe zu erfassen.\
Dazu war es nötig im HourCount-Modul zur Evosta-Pumpe, die Daten per set clear auf Null zu setzen. \
---\
20.10.2025:\
Bei COPday, COPlastday, COPmonth, COPlastmonth und COPyear wird geprüft, ob die zugrundelegenden Readings vom gleichen Tag (bzw. 1. Tag) stammen. \
Dadurch wird erreicht, dass kurz nach Mitternacht die richtigen Readings benutzt werden und nicht die vom Vortag.
attr HeishaMon_s0 event-min-interval COP:150,COPtoday:150,Watt1:300,Watt2:300,Watt:150,WatthourTotal1:600,WatthourTotal2:600,Watthour_Total:150
attr HeishaMon_s0 event-on-change-reading Heatpump_State,Temptoday,Templastday,Tempmonth,Templastmonth,COPtoday,COPlastday,COPmonth,COPlastmonth,COP:0.05,Watt1,Watt2,Watt:0.005,WatthourTotal1:10,WatthourTotal2:10,Watthour_Total:0.01
attr HeishaMon_s0 event-on-update-reading Watthour_Total
attr HeishaMon_s0 group Panasonic Aquarea
attr HeishaMon_s0 icon measure_power
attr HeishaMon_s0 room Heizung
attr HeishaMon_s0 sortby 3
attr HeishaMon_s0 stateFormat COP today: {(round(ReadingsNum("$name","COPtoday",0) + 0, 2))} • T: [$name:Temptoday]°C<br/>\
COP last day: {(round(ReadingsNum("$name","COPlastday",0) + 0, 2))} • T: [$name:Templastday]°C<br/>\
COP month: {(round(ReadingsNum("$name","COPmonth",0) + 0, 2))} • T: [$name:Tempmonth]°C<br/>\
COP last month: {(round(ReadingsNum("$name","COPlastmonth",0) + 0, 2))} • T: [$name:Templastmonth]°C<br/>\
COP year • last year: [$name:COPyear:r2] • [$name:COPlastyear:r2]
attr HeishaMon_s0 subscribeReading_Heatpump_State panasonic_heat_pump/main/Heatpump_State
attr HeishaMon_s0 subscribeReading_Watt1 panasonic_heat_pump/s0/Watt/1
attr HeishaMon_s0 subscribeReading_Watt2 panasonic_heat_pump/s0/Watt/2
attr HeishaMon_s0 subscribeReading_Watthour1 panasonic_heat_pump/s0/Watthour/1
attr HeishaMon_s0 subscribeReading_Watthour2 panasonic_heat_pump/s0/Watthour/2
attr HeishaMon_s0 subscribeReading_WatthourTotal1 panasonic_heat_pump/s0/WatthourTotal/1
attr HeishaMon_s0 subscribeReading_WatthourTotal2 panasonic_heat_pump/s0/WatthourTotal/2
attr HeishaMon_s0 userReadings Zeitstempel:Watt1.* {substr(ReadingsTimestamp($name,'Watt1',''),0,16)}, \
Watthour_Total {(ReadingsNum($name,'WatthourTotal1','')\
+ReadingsNum($name,'WatthourTotal2','')\
+ReadingsNum('HourCount.Evosta2','pulseTimeOverall','')/3600*30)/1000}, \
Watt:Watt1.* {round((ReadingsNum($name,'Watt1','')\
+ReadingsNum($name,'Watt2','')\
+ReadingsNum('Evosta2','POWER1_Num','')*30)/1000,3)}, \
readingsGroup_power:Watt1.* {round(ReadingsNum($name,'Watt1','')\
+ReadingsNum($name,'Watt2','')\
+ReadingsNum('Evosta2','POWER1_Num','')*30,0)}, \
readingsGroup_temp {ReadingsNum('myTemperature','mytemp','')}, \
COP:Watt1.* {if (ReadingsNum('HeishaMon_main','heat_power','') > 0) \
{round(ReadingsNum('HeishaMon_main','heat_power','')/ReadingsNum($name,'Watt',''),3)} \
else {0}},\
COPtoday:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDay',''),8,2) == (localtime(time))[3] \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyDay',''),8,2) == (localtime(time))[3] \
and ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDay','') > 0 )\
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyDay','')\
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDay',''),3)}\
else {0}},\
Temptoday:Watt1.* {((split ' ',ReadingsVal('TH.Kuhlmannweg8','statTemperatureDay',''))[3])},\
COPlastday:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDayLast',''),8,2) == (localtime(time))[3] \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyDayLast',''),8,2) == (localtime(time))[3] \
and ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDayLast','') > 0) \
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyDayLast','')\
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDayLast',''),3)}\
else {"n/a"}},\
Templastday:Watt1.* {((split ' ',ReadingsVal('TH.Kuhlmannweg8','statTemperatureDayLast',''))[3])},\
COPmonth:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyMonth',''),8,2) == (localtime(time))[3] \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyMonth',''),8,2) == (localtime(time))[3] \
and ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyMonth','') > 0) \
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyMonth','') \
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyMonth',''),3)}},\
Tempmonth:Watt1.* {((split ' ',ReadingsVal('TH.Kuhlmannweg8','statTemperatureMonth',''))[3])},\
COPlastmonth:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyMonthLast',''),8,2) == 1 \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyMonthLast',''),8,2) == 1) \
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyMonthLast','')\
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyMonthLast',''),3)}},\
Templastmonth:Watt1.* {((split ' ',ReadingsVal('TH.Kuhlmannweg8','statTemperatureMonthLast',''))[3])},\
COPyear:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyYear',''),8,2) == (localtime(time))[3] \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyYear',''),8,2) == (localtime(time))[3] \
and ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyYear','') > 0) \
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyYear','') \
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyYear',''),3)}},\
COPlastyear:Watt1.* {if \
(substr(ReadingsTimestamp('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyYearLast',''),8,2) == 1 \
and substr(ReadingsTimestamp('myHeishaheat','HeishaMon_main_heat_kWh_EnergyYearLast',''),8,2) == 1) \
{round(ReadingsNum('myHeishaheat','HeishaMon_main_heat_kWh_EnergyYearLast','')\
/ReadingsNum('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyYearLast',''),3)}}

Der nächste Step, nachdem einigermaßen Klarheit über die drei MQTT-Devices herrscht, wäre die Steuerung.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

sigma415

Genial, vielen Dank  :)  :)  :)
Nur noch ein paar Wochen auf meine Keisha warten, dann kann ich's ausprobieren.
FHEM auf ubuntu-Server (Notebook), 3x HMLAN, 2x goE, Tasmota-Devices via MQTT, Home Connect, Velux-KLF200, Harmony, SMA STP10, SMA HM2.0, BYD HVS10.2, evcc, ioBroker, Z2M etc. pp.  ....
Und immer noch viele, viele (Alt-) HM's (ohne -IP).