Heizkurve mit Heishamon und FHEM ändern

Begonnen von Geisha2021, 31 Januar 2024, 13:59:38

Vorheriges Thema - Nächstes Thema

gvzdus

Moin. Im Prinzip richtig. Sicherheitshalber: Der WP würde ich die Sicherung ziehen, nicht "sie ausschalten".
Denn: Auch normal "soft ausgeschaltet" wird die Platine mit Strom versorgt!

Zudem: Es geht wohl, die CZ-TAW1s auf den Proxy-Port zu hängen, Du hast ja die Large. Das habe ich aus 3 Gründen nicht gemacht:
1) Erst fehlten mir die Kabel: Ich habe die CZ-TAW-Kabel wiederverwendet
2) Angeblich wird es - siehe Webseite - dann möglicherweise knapp ohne Zusatz-USB-Stromversorgung
3) Ich war mir nicht sicher, wie rum auf den Proxyport aufstecken.

Hier noch eine etwas lieblose "setList" für mein MQTT-Device (panasonic_hp1 anpassen!):

off:noArg panasonic_hp1/commands/SetHeatpump 0
on:noArg panasonic_hp1/commands/SetHeatpump 1
operationMode:0,1,2,3,4,5,6 panasonic_hp1/commands/SetOperationMode $EVTPART1
forceDHW:0,1 panasonic_hp1/commands/SetForceDHW $EVTPART1
dwhTemp:slider,40,1,75 panasonic_hp1/commands/SetDHWTemp $EVTPART1
heatRequestTemp:slider,-5,1,5 panasonic_hp1/commands/SetZ1HeatRequestTemperature $EVTPART1
heatingOffOutdoorTemp:slider,5,1,40 panasonic_hp1/commands/SetHeatingOffOutdoorTemp $EVTPART1
bufferDelta:slider,0,1,10 panasonic_hp1/commands/SetBufferDelta $EVTPART1
quietMode:0,1,2,3 panasonic_hp1/commands/SetQuietMode $EVTPART1

Gisbert

Hallo NewRasPi,

schau dir auf jeden Fall diese Seite auf GitHub an: https://github.com/Egyras/HeishaMon

Der ESP macht zunächst einen AP auf, mit dem zu dich mit deinem Handy verbinden musst, um deine WLAN-Credentials einzugeben, möglicherweise auch MQTT - letztere können aber auch bei "Settings" eingegeben werden.

Ich hatte auf der Platine die Spannungen nachgemessen, um sicher zu sein, wo 5V und GND, damit das mit dem ESP/Heishamon übereinstimmt.

Die Daten empfange ich per MQTT in Fhem. Um es etwas übersichtlicher zu haben, habe ich 3 MQTT-Devices in Fhem dafür definiert. Ich kann dir meine Definitionen bei Bedarf gerne zur Verfügung stellen, allerdings sind auch etliche userReadings enthalten, die Infos über den Heizbedarf und etliche anderes enthalten (könnte etwas verwirrend werden).

Jedenfalls ist es so, dass ich einen Heizbedarf anhand der Unterschiede zwischen Soll- und Ist-Temperatur, skaliert mit der Raumgröße definiert hab.
Wenn ein Heizbedarf vorliegt, starte ich von Fhem aus die Wärmepumpe. Da ich eine FBH ohne Pufferspeicher hab, hab ich eine Heizkurve definiert. Zusätzlich hebe/senke ich die Heizkurve je nach Heizbedarf (auch aus Fhem heraus).
Die Wärmepumpe läuft dann solange, bis sie ihre Wärme nicht mehr im Haus los wird, d.h. wenn nach und nach die Stellventile zugehen. Wenn der Kompressor aus ist, dann hab ich eine Taktsperre definiert, um zu verhindern, dass die Wärmepumpe taktet, d.h. ich sende den Abschaltbefehl und sorge per Fhem-Automation, dass sie 2~4 Stunden ausbleibt (temperaturabhängig). Damit schaffe ich eine Laufzeit von 2 Stunden pro Kompressorstart - ein sehr guter Wert. Alles größer eine Stunde wird als gut angesehen.

Das Kontrollpanel hab ich auch angeschlossen, brauche es aber so gut wie gar nicht mehr. Die einzige Anwendung ist nur die Einstellung der Wasserpumpe. Ich hab die Einstellung gewählt, die mir den maximalen Durchfluss liefert. Es gibt dann noch höhere Einstellungen, die zwar die Drehzahl aber nicht den Durchsatz erhöhen. Den Heizstab hab ich bewusst aktiviert, um ggf. eine Reserve bzw. ein Backup zu haben , falls etwas mit dem Kompressor ist bzw. es sehr kalt oder Energie zum Abtauen benötigt wird

Heishamon kann auch Fehler übermitteln. Diese lasse ich mir per Messages (in Fhem) auf's Handy schicken - bisher ist jedoch gottseidank noch nichts angekommen.

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

gvzdus

Gisbert, wie wir vielleicht noch helfen können:
Zunächst hatte ich FHEM als MQTT-Ziel angegeben. Dann kommt aber auch der "Binär-Müll" per MQTT rein.
Für mehr Stabilität und andere Consumer haben ich dann einen Mosquitto-Server verwendet, gegen den sich dann FHEM wieder als Client verbindet. Für diese Konstellation, die "NewRaspi" aber vermutlich nicht verwendet, sieht ein "Laber-Armes"-Setup so aus:
defmod hp1_mqtt MQTT2_CLIENT 192.168.0.5:1883
attr hp1_mqtt autocreate simple
attr hp1_mqtt subscriptions panasonic_hp1/main/# panasonic_hp1/extra/# panasonic_hp1/LWT
Auch hier wieder: Wegen 2 Wärmepumpen ist bei mir das Topic nicht das Heishamon-Default, sondern "panasonic_hp1" - das muss angepasst werden.

Punkt 2 an Gisbert: Hätte gedacht, dass FBH mehr puffert. Ich bin "Radiatoren only" (siehe Vorstellung bei Github), und komme eigentlich auch auf "stundenlang", sobald das Haus mehr als 3-4 kW Heizlast schluckt.

Gisbert

#33
Zitat von: gvzdus am 31 Oktober 2024, 20:07:58Punkt 2 an Gisbert: Hätte gedacht, dass FBH mehr puffert. Ich bin "Radiatoren only" (siehe Vorstellung bei Github), und komme eigentlich auch auf "stundenlang", sobald das Haus mehr als 3-4 kW Heizlast schluckt.

Hallo gvzdus,

ich hab auch etliche bis viele Stunden Laufzeit im Normalfall. Was einem die Laufzeit "vermasselt" sind die Abbauvorgänge, die jeweils 2 zusätzliche Kompressorstarts "verbrauchen". In dieser einzeln betrachten Phase hat man dann nur eine Laufzeit von vielleicht 30 Minuten. Wenn's kann schlecht läuft (feucht, Temperatur knapp über 0°C), können 20 Kompressorstarts am Tag zusammenkommen.

Viele Grüße Gisbert

PS: ich bin jetzt  bei 2000 Stunden Laufzeit und 1000 Kompressorstarts. Das entspricht etwas mehr als eine Heizperiode (1.10.2023 - 31.10.2024).
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

NewRasPi

Hallo, vielen Dank für die super wertvollen Hinweise.
Ich habe auch nur Fußbodenheizung (für die Heizfunktion ohne Pufferspeicher) und einen Pufferspeicher für das Brauchwasser, der über das 3-Wegeventil umgeschaltet wird.
Gisbert, wenn ich Deine Einstellungen bekommen könnte, wäre ich Dir sehr Dankbar.
Die ersten sehr guten Grundfunktionen hat gvzdus ja oben schon gezeigt. Das spart mir bestimmt unendlich viele Stunden suchen und probieren.
Das mit dem "Umleiten" auf einen Mosquitto übersteigt mein heutiges FHEM können doch sehr.
Ich bleibe am Ball. Euch beiden vielen Dank.
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

NewRasPi

Noch mal hallo Gisbert,
muss ich trotz dem Netzwerkkabel Anschluss erst über WLan die Einstellungen durchführen?
Ich habe gehofft, das ich das gemüttlich am PC eingeben kann.
Grüße Elmar
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

gvzdus

Nein, Du kannst die neue IP in Deinem DSL/Whatever-Router suchen, und Dich einfach darauf connecten ( http://<ip>/ ).
Dann kannst Du Wifi entweder konfigurieren oder abschalten.

Gisbert

#37
Sorry für die Verwirrung, letztes Jahr (Anfang des Jahres) gab es die große Platine mit Ethernetanschluss noch nicht, oder ich hab's nicht gesehen. Damit braucht man dann kein WLAN.

@Elmar, ich stelle dir morgen meine Devices zusammen.
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

Gisbert

#38
@Elmar,

hier sind meine Fhem-Devices. Es besteht kein Anspruch darauf, dass alles richtig, sinnvoll oder "schön" ist.
Meine Zielsetzung bei einer sehr trägen FBH war es, am Morgen die Zieltemperaturen für jeden Raum in etwa zu erreichen (ganz funktioniert es unabhängig vom Heizsystem eh nicht, da gibt es viel zu viele Störeinflüsse) und - das ist ganz wichtig - bei niedrigst möglichem Energieverbrauch und möglichst hoher Laufzeit pro Kompressorstart.

Noch vorab, ich benutze das Modul MQTT_DEVICE, welches älterer Natur ist und einen selbst installierten MQTT-Broker benötigt. Wenn ich Fhem von Grund auf neu aufsetzen würde bzw. damit starten würde, würde ich MQTT2 dazu benutzen (bitte im Wiki nachschauen, falls das noch Neuland sein sollte).

Device HeishaMon_IP:
Hier wird im wesentlichen die Verschiebung der Heizkurve anhand der Außentemperatur und dem Heizbedarf (Beheizte_Flaeche()) in userReadings vorgenommen. Die Außentemperatur ist ein Konstrukt aus tatsächlicher Außentemperatur und einem Vorhersagewert aus einem Wettermodul sowie dem Bewölkungstand. Die Sache mit der Außentemperatur kannst du natürlich viel einfacher gestalten, indem du nur die tatsächliche Außentemperatur nimmst. Die Berechnung meines Heizbedarfs lasse ich bewusst hier weg. Es wäre aber günstig, wenn du für deinen Fall etwas errechnen oder abschätzen könntest. Desweiteren wird die Zeit der Taktsperre (wait_Wert) berechnet.
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 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))
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 stateFormat Beheizte Fläche: [$name:Beheizte_Flaeche_av:r1]%<br/>\
Heizkurve: [$name: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 heute: [DWD.Wetter.Leverkusen:fc0_4_TTT:r1]°C<br/>\
Forecast morgen: [DWD.Wetter.Leverkusen:fc1_4_TTT:r1]°C<br/>\
[$name:IPaddress]<br/>\
<div style='vertical-align: middle;; font-size: 85%;;'>[$name:Zeitstempel]</div>
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),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) {5} \
elsif (ReadingsVal($name,'dtemp_eff','0')-1 < -5) {-5} \
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,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,0)} \
elsif (20 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') < 25) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))-1,0)} \
elsif (25 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') < 30) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5)),0)} \
elsif (30 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') < 35) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5)),0)} \
elsif (35 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') < 45) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))+1,0)} \
elsif (45 <= ReadingsVal($name,'Beheizte_Flaeche_av','0') < 55) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))+2,0)} \
elsif (ReadingsVal($name,'Beheizte_Flaeche_av','0') >= 55) {round(ReadingsVal($name,'dtemp_eff','0')-0.5*(1+tanh(ReadingsVal($name,'Temp_eff','0')-7.5))+3,0)}}, \
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>"},\
wait_Wert {if (ReadingsVal('HeishaMon_main','Outside_Temp','20') >= 12) {12600} \
elsif (9 <= ReadingsVal('HeishaMon_main','Outside_Temp','20') < 12) {10800} \
elsif (6 <= ReadingsVal('HeishaMon_main','Outside_Temp','20') < 9) {9000} \
elsif (ReadingsVal('HeishaMon_main','Outside_Temp','20') < 6) {7200}}

Device HeishaMon_main:
In diesem Device werden die Daten von Heishamon ausgelesen und Daten in Heishamon geschrieben.
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 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\
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\
Ä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}}}}\
Sommer/Winter-Abschaltung: 12°C
attr HeishaMon_main event-min-interval heat_kWh:120,heat_power:120,Pump_Flow:120,Main_Inlet_Temp:120,Main_Outlet_Temp:120,Outside_Temp:120
attr HeishaMon_main event-on-change-reading mid_temp,Error,heat_kWh:0.1,heat_power:0.05,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 group Panasonic Aquarea
attr HeishaMon_main icon sani_heating_heatpump
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 stateFormat Vor-/Rücklauf: [$name:Main_Outlet_Temp:r2]/[$name:Main_Inlet_Temp:r2]°C<br/>\
Wärme/Strom: [$name:heat_power:r2]/[HeishaMon_s0:Watt:r2] kW<br/>\
Pumpenfluss: [$name:Pump_Flow:r2] l/min<br/>\
Pumpendrehzahl: <span style='color:{(ReadingsVal('HeishaMon_main','Heatpump_State','') > 0 ? "red":"#2e5e87")}'><b>[$name:Pump_Speed]</b></span> Upm<br/>\
Kompressor: <span style='color:{(ReadingsVal('HeishaMon_main','Heatpump_State','') > 0 ? "red":"#2e5e87")}'><b>[$name:Compressor_Freq]</b></span> Hz<br/>\
Main Target Temp.: [$name:Main_Target_Temp]°C<br/>\
Außentemp. Panasonic: [$name:Outside_Temp]°C<br/>\
Outside pipe temp.: [$name:Outside_Pipe_Temp]°C<br/>\
Betriebsstunden: [$name:Operations_Hours] h<br/>\
Kompressorstarts: [$name:Operations_Counter]<br/>\
<div style='vertical-align: middle;; font-size: 85%;;'>[$name:Zeitstempel]</div>
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_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_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_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_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_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_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_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_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_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_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_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:Pump_Flow.* {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.* {(ReadingsVal($name,'Main_Outlet_Temp',30)+ReadingsVal($name,'Main_Inlet_Temp',26))/2}, \
heat_kWh:heat_power.* integral {ReadingsVal($name,'heat_power',5)/3600}

Device HeishaMon_s0:
Dieses Device liest die s0-Zähler aus, die ich für die Wärmepumpe und den Heizstab im Zählerschrank verbaut habe. Du kannst es komplett ignorieren, wenn du keine s0-Zähler verbaut hast.
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.
attr HeishaMon_s0 event-min-interval COP:150,Watt1:300,Watt2:300,Watt:150,WatthourTotal1:600,WatthourTotal2:600,Watthour_Total:150
attr HeishaMon_s0 event-on-change-reading Templastday,Templastmonth,COPlastday,COPlastmonth,COP:0.05,Watt1,Watt2,Watt:0.005,WatthourTotal1:10,WatthourTotal2:10,Watthour_Total:0.01
attr HeishaMon_s0 group Panasonic Aquarea
attr HeishaMon_s0 icon measure_power
attr HeishaMon_s0 room Heizung
attr HeishaMon_s0 stateFormat COP today: [$name:COPtoday:r2] • T: {((split ' ',ReadingsVal('TH.Kuhlmannweg8','statTemperatureDay',''))[3])}°C<br/>COP last day: [$name:COPlastday:r2] • T: [$name:Templastday]°C<br/>COP last month: [$name:COPlastmonth:r2] • T: [$name:Templastmonth]°C
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 {substr(ReadingsTimestamp($name,'Watt1',''),0,16)}, \
Watthour_Total {(ReadingsVal($name,'WatthourTotal1','')+ReadingsVal($name,'WatthourTotal2',''))/1000}, \
Watt:Watt1.* {round((ReadingsVal($name,'Watt1','')+ReadingsVal($name,'Watt2',''))/1000,3)}, \
readingsGroup_power:Watt1.* {(ReadingsVal($name,'Watt1','')+ReadingsVal($name,'Watt2',''))/1000}, \
readingsGroup_temp {ReadingsNum('myTemperature','mytemp','')}, \
COP {if (ReadingsVal('HeishaMon_main','heat_power','') > 0) \
{round(ReadingsVal('HeishaMon_main','heat_power','')/ReadingsVal($name,'Watt',''),3)} \
else {0}},\
COPtoday {if (ReadingsVal('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDay','') > 0) \
{round(ReadingsVal('myHeishaheat','HeishaMon_main_heat_kWh_EnergyDay','')/(ReadingsVal('myHeishaelectricity','HeishaMon_s0_Watthour_Total_EnergyDay','') + ReadingsVal('HourCount.Evosta2','pulseTimePerDay','')/3600*30/1000),3)}}

Automatisierungen
Letztlich brauchst du einen Trigger, um die Panasonic einzuschalten. Bei mir ist es im wesentlichen der Heizbedarf und ein eigentlich redundantes Device names "Ueberwachung" welches die Differenz zwischen Soll- und Ist-Temperaturen überwacht. Es gibt auch Nebenbedingungen, die erfüllt werden müssen, wie z.B. die Außentemperatur ([?myTemperature:mytemp] <= 14).
defmod Panasonic_Jeisha DOIF (-5 <= [HeishaMon_IP:Z1HeatRequestTemp] <= 5 and [?HeishaMon_main:Heatpump_State] == 1 and [?HeishaMon_IP:Taktsperre] == 0) \
(set HeishaMon_main SetZ1HeatRequestTemperature [HeishaMon_IP:Z1HeatRequestTemp]) \
DOELSEIF ([?{sunrise_abs(-3600,"06:00:00","08:00:00")}-{sunrise_abs(14400,"09:00:00","10:30:00")}] and [?myTemperature:mytemp] <= 14 \
and [HeishaMon_IP:Beheizte_Flaeche_av] >= 35 and [?Ueberwachung:Sum_Ueberwachung] < 8 \
and [?HeishaMon_IP:Taktsperre] == 0 and [?HeishaMon_main:Heatpump_State] == 0 and [Heizbetrieb:_state] == 1 \
and [?Fensterkontakt_Wohnzimmer:state] eq "closed" and [?Fensterkontakt_Wohnzimmer:Fensterkontakt_Wohnzimmer_closed_timestamp:sec] > 1800) \
(set HeishaMon_main SetZ1HeatRequestTemperature [HeishaMon_IP:Z1HeatRequestTemp]) \
(IF ([Fensterkontakt_Wohnzimmer:state] eq "closed" and [HeishaMon_IP:Beheizte_Flaeche_av] >= 35) \
(set HeishaMon_main:FILTER=Heatpump_State!=1 SetHeatpump 1)) \
DOELSEIF (([?00:00-{sunrise_abs(-3600,"06:00:00","08:00:00")}] or [?{sunrise_abs(14400,"09:00:00","10:30:00")}-23:59]) and [?myTemperature:mytemp] <= 14 \
and [HeishaMon_IP:Beheizte_Flaeche_av] >= 30 and [?Ueberwachung:Sum_Ueberwachung] < 8 \
and [?HeishaMon_IP:Taktsperre] == 0 and [?HeishaMon_main:Heatpump_State] == 0 and [Heizbetrieb:_state] == 1 \
and [?Fensterkontakt_Wohnzimmer:state] eq "closed" and [?Fensterkontakt_Wohnzimmer:Fensterkontakt_Wohnzimmer_closed_timestamp:sec] > 1800) \
(set HeishaMon_main:FILTER=Heatpump_State!=1 SetHeatpump 1) \
(set HeishaMon_main SetZ1HeatRequestTemperature [HeishaMon_IP:Z1HeatRequestTemp]) \
DOELSEIF ([HeishaMon_main:Compressor_Freq] == 0 and [?HeishaMon_main:Defrosting_State] == 0 and [?HeishaMon_main:Heatpump_State] == 1) \
(setreading HeishaMon_IP Taktsperre 1) \
(setreading HeishaMon_IP wait_Zeit [$SELF:wait_Zeit]) \
(IF ([HeishaMon_main:Compressor_Freq] == 0) (set HeishaMon_main:FILTER=Heatpump_State!=0 SetHeatpump 0)) \
(setreading HeishaMon_IP Taktsperre 0) \
DOELSEIF ([HeishaMon_IP:Zeitstempel] =~ "20" and [?HeishaMon_main:Heatpump_State] == 0 and [?HeishaMon_IP:Taktsperre] == 1 and [?HeishaMon_IP:Taktsperre:sec] > [?HeishaMon_IP:wait_Wert]) \
(setreading HeishaMon_IP Taktsperre 0) \
DOELSEIF ([HeishaMon_IP:Zeitstempel] =~ "20" and [?HeishaMon_main:Heatpump_State] == 0 and [?$SELF:cmd] =~ ("2.2|3.2") and [?$SELF:cmd:sec] > 2700) \
DOELSEIF ([myTemperature:mytemp] >= 5 and [?FBH_WZ:state] eq "off" and [?22:00-02:00]) (set FBH_WZ on)
attr Panasonic_Jeisha alias Panasonic Jeisha
attr Panasonic_Jeisha comment 21.2.2024: Das Heizen wird nachts verhindert, da der Delongtop verkauft wurde.\
Der Zweig 2 wird in der Zeit [?{sunrise_abs(3600)}-{sunset_abs(-7200)}] aktiviert, d.h. es wird (weitgehend) nur tagsüber geheizt.\
Der 1. Zeitpunkt ist so gewählt, dass die PV-Anlage bei Sonnenschein mehr als 1 kW leistet.\
Der Zweig 3 ist nur in der Zeit [?08:15-08:30] aktiv, also ausgeschlossen, da die anderen Bedingungen in dieser Zeit nicht erfüllt sind.\
Ab 15.4.2024 läuft der neue Akku, so dass die obigen Bedingungen entfernt wurden.\
\
2.7.2024, gelöscht aus Zweig 2 und 3, da unsinnig:\
and [?CUL_TX_80:temperature:d15] >= -0.1\
d15 bedeutet, dass auf 15 Nachkommastellen gerundet wird.\
Möglicherweise sollte diff15 dort stehen, aber auch das wäre Unsinn.\
diff15 bedeutet, dass die Differenz zwischen dem aktuellen und dem 15-letzten Wert gebildet wird.\
\
20.10.2024: Das Reading wait_Zeit berechnet die Zeit, in der die Taktsperre vorliegt.\
Der Wert wird nur einmal berechnet, wenn der Zweig cmd 4.1 vorliegt.\
Der Wert wird dann bei HeishaMon_IP ins gleichnamige Reading geschrieben.\
Das letztere Reading wird dann zur Anzeige der Taktsperre bei den beiden Evosta2-Devices (DOIF, MQTT) genutzt.
attr Panasonic_Jeisha devStateIcon (cmd_1):sani_heating_heatpump@orange (cmd_2|cmd_2_1|cmd_2_2|cmd_3|cmd_3_1|cmd_3_2):sani_heating_heatpump@red (cmd_4|cmd_4_1|cmd_4_2|cmd_4_3|cmd_5|cmd_6):sani_heating_heatpump@grey cmd_7:sani_floor_heating_neutral@grey
attr Panasonic_Jeisha do always
attr Panasonic_Jeisha icon sani_heating_heatpump
attr Panasonic_Jeisha repeatsame 0:1:1:2:1:1:1
attr Panasonic_Jeisha room Heizung
attr Panasonic_Jeisha userReadings wait_Zeit:cmd.4.1 {strftime("%a %R", localtime(time + ReadingsNum('HeishaMon_IP','wait_Wert',0) + 180))}, \
EndePumpe:cmd.4.1 {strftime("%a %R", localtime(time + 7200 + 180))}
attr Panasonic_Jeisha wait 0:0,1200:0,0:0,1,180,[HeishaMon_IP:wait_Wert]:0:0:0

Da es bei mir Verlinkungen zu anderen Devices gibt, auch eigens definierte Funktionen wie der Heizbedarf (Beheizte_Flaeche()), wird es "knirschen", wenn du unbesehen meine Definitionen übernimmst. Du musst also mindestens die Definitionen auf deinen Fall anpassen, z.B. durch weglassen oder modifizieren.

Darüberhinaus habe ich Devices, um die erzeugte Wärmemenge und verbrauchte elektrische Energie zu bilanzieren, die ich hier aber bewusst weglasse, um die Sache nicht noch komplizierter zu machen, als sie ohnehin schon ist.

Viel Spaß und viele Grüße
Gisbert

Edit:
Meine Heizung ist eine FBH, darauf ist die Heizkurve optimiert. Bei Heizkörpern liegt die Kurve höher, möglicherweise ist es dann sogar besser mit einer konstanten Vorlauftemperatur zu fahren, die man ggf. in Abhängigkeit der Außentemperatur ändert.
Bei der Heizkurve (definiert durch "{zone1:{heat:{target:{high:36,low:28},outside:{high:10,low:-10}}}}" hat es sich als unpraktikabel herausgestellt, eine niedrigere Temperatur beim oberen Wert( +10°C) als 28°C einzustellen. Aus der Erinnerung meine ich, dass bspw. bei 25°C das Takten vorprogrammiert war, weil diese Temperatur dann allzuschnell überschritten wurde und der Kompressor, dann ausgeschaltet wurde. 
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

NewRasPi

#39
Hallo Gisbert
vielen vielen Dank. Jetzt weiß ich, das ich eigentlich nichts weiß. Damit fängt es immer bei mir an. Ich arbeite aber daran, das es für meine Ziele einen Weg gibt, den ich aus den professionellen Beiträgen/ Definitionen durch abgucken und probieren finde.

Mein erstes Erfolgserlebnis und vielleicht auch eine Information für andere die jetzt auch mit Heishamon anfangen.
Die bei: https://www.tindie.com/products/thehognl/heishamon-communication-pcb/
bestellte Heishamon large version communication PCB, der Ethernet Adapter und das 2 meter CN-NMODE Anschlusskabel waren die richtige Wahl für mich.
Das direkt auf der Erweiterungsplatine angesteckte Kabel vom CZ-TAW1- Adapter abgezogen, an dieser Stelle das neue Heishamon Kabel angesteckt und dann auf der Heishamon Platine wieder das abgezogene CZ-TAW1 Kabel angesteckt.
Ein USB-Steckernetzteil habe ich vorsorglich auch auf die Heishamon Platine angesteckt (irgend wo Stand was von zu geringer Stromversorgung wenn da zwei "Zusatzmodule" an die Pana angeschlossen werden).
Ab hier konnte ich dann dank der Netzwerkkabelverbindung an meinem Router, der Fritzbox, die neue IP-Adresse herausfinden.
Mit dieser IP-Adresse habe ich dann in einem Windows Browser die Startseite von Heishamon geöffnet und die Einstellungen bearbeitet.
Damit waren im Windows Browser schon mal die Werte aus Heishamon dargestellt.
Im FHEM musste ich dann erst mal einen IOBroker einrichten. Für unwissende wie mich, das war mit:
define myIOBroker MQTT2_SERVER 1883 global
schnell und einfach erledigt. (ich wusste vorher NIX von MQTT etc.)
Als nächstes habe ich mit:
define MQTT_HeishaMon MQTT2_DEVICE HeishaMon
die Werte der Pana in FHEM geholt.
Nun kommen die Feinheiten, damit auch zu regeln und zu steuern.
Immerhin haben ich jetzt auch den Einstieg in das mysteriöse MQTT geschafft.

Vielen Dank für alle guten Tipps und Hinweise.
Bestimmt komme ich noch mal auf Euer super Fachwissen zurück, wenn es bei meiner Steuerung dann irgend wo hängt.

Gut finde ich, das damit noch die Panasonic App funktioniert. Wenn man von unterwegs mal was an den Einstellungen ändern müsste, braucht es dafür nicht gleich eine VPN etc.
 
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

NewRasPi

#40
Noch mal hallo,
diese Einträge im Event monitor
2024-11-01 15:47:21 MQTT2_DEVICE MQTT_HeishaMon data: q�␁␐V�RaU␕j␕␓U�␕UYe␙V�����qq����[����{x␟~␟␟yy����v���{���x�����������␑Vx�␆��␟~��uU!x␕Y␅␚␓e!Q␕␁(����␋4���␌)������22��222��������3␁ ␕�␑6i␜␁D␁␁␁|�␁␁ ␁␄�-␓dürften doch am wahrscheinlichsten an einer falschen Schriftsatzzeichen Einstellung liegen.
Weiß zufällig jemand wo man die ändern muss, das im Event monitor unter: "data" etwas verwertbares erscheint?

Als nächstes ist mir jetzt aufgefallen, das ich nichts in der Pana von FHEM aus einstellen kann, obwohl ich extra nicht
"listen only" angewählt habe.
Muss am Ende, wenn man auch schreibend auf die Pana zugreifen will, doch der CZ-TAW1 Adapter abgeklemmt werden?

In den Istwerten kommt bei den eigentlich wichtigsten nur -200 Watt.
Heat_Power_Consumption  -200  2024-11-01 15:42:50
Heat_Power_Production  -200  2024-11-01 15:42:50


Sollte das eventuell an einer alten Firmware liegen? Kann man irgend wo feststellen, welche Version gerade läuft?
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Gisbert

Hallo Elmar,

zum Zeichensatz kann ich dir leider gar nichts sagen; versuche mal einen anderen Browser - vielleicht hilft das.

Zum eventuellen Abklemmen des CZ-TAW1 Adapters sowie welche Firmware die aktuelle ist, würde ich auf GitHub (https://github.com/Egyras/HeishaMon) schauen. Vers. 3.8 ist die aktuelle Version.

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

NewRasPi

#42
Hallo Gisbert, danke für Deinen Tipp.
Im Microsoft Edge zeigt es im Event monitor wirklich nicht die Zeile mit den komischen Sonderzeichen an.
Aber in dem Device MQTT_HeishaMon unter den Readings data kommen die auch im Edge.
Das Update der Firmware habe ich durchgeführt. Eine Änderung sehe ich nicht.
Leider sind auch die falschen Werte
Heat_Power_Consumption  -200  2024-11-01 15:42:50
Heat_Power_Production  -200  2024-11-01 15:42:50
in beiden Browsern, Firefox und Edge, immer noch da.   Ergänzung, im Opera Browser ist das Verhalten wie im Edge. Im Event monitor keine Anzeige des Readings data, aber im Device die Sonderzeichen.
Zeigt es bei Deiner Installation da richtige Watt Verbräuche an?

Schöne Grüße
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;

Gisbert

Hallo Elmar,

die Panasonic ist gerade aus, es werden in Heishamon folgende Werte angezeigt:
TOP15 Heat_Power_Production 0 Watt
TOP16 Heat_Power_Consumption 0 Watt
In Fhem per MQTT entsprechend:
Heat_Power_Consumption 0 2024-11-01 17:53:40
Heat_Power_Production 0 2024-11-01 17:53:40

Ich benutze diese Werte eigentlich nicht, da ich für den Strom s0-Zähler hab und für die Wärme errechne ich mir die Werte anhand des Durchsatzes, der Vorlauf- und Rücklauftemperatur selbst. Ich bin bin mir aber sicher, dass diese Werte plausible, wenn auch nicht sehr zuverlässige Daten enthalten, wenn die Panasonic läuft.

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

NewRasPi

#44
Hallo Gisbert,
"Ich benutze diese Werte eigentlich nicht, da ich für den Strom s0-Zähler hab und für die Wärme errechne ich mir die Werte anhand des Durchsatzes, der Vorlauf- und Rücklauftemperatur selbst. Ich bin bin mir aber sicher, dass diese Werte plausible, wenn auch nicht sehr zuverlässige Daten enthalten, wenn die Panasonic läuft."

Ich habe auch einen Shellypro3EM zum messen. Die Vorlauf, Rücklauf und Durchflussmenge habe ich auch. Ich kenne nur leider keine Formel, die mir daraus eine Heizleistung errechnen kann.
Könnte ich da bei Dir noch mal abschauen?

Schöne Grüße

P.S. Eine Formel habe ich im Internet gefunden. Jetzt müsste ich das nur noch FHEM beibringen. :-) 
Raspberry Pi 2 Mod B + Raspberry Pi 3 + Raspberry Pi4; HM Lan Adapter; 8 Kanal Relaiskarte; ca. 15x 1wire Temperatur Sensor DS18B20; 10x HC-SR501 Bewegungsmelder; 9x HM Rauchmelder HM-Sec-SD; HM Funk Fenstersensoren; HM Strommess-Zwischenstecker;