kamaradclimber / heishamon-homeassistant

An integration for heatpumps handled by heishamon
Apache License 2.0
50 stars 25 forks source link

broken thermostat entity in heat mode when use direct mode. #220

Closed kamaradclimber closed 3 months ago

kamaradclimber commented 5 months ago
          This patch broken thermostat entity in heat mode when use direct mode.

Before this update I can set water temperature in thermostat (i.g. 34°C) but after update range is -5 - +5 °C and it doesn't affect anything.

Originally posted by @tjani8 in https://github.com/kamaradclimber/heishamon-homeassistant/issues/215#issuecomment-2189193590

kamaradclimber commented 5 months ago

@tjani8 would you be able to confirm you have the issue in https://github.com/kamaradclimber/heishamon-homeassistant/releases/tag/1.9.1 and not in https://github.com/kamaradclimber/heishamon-homeassistant/releases/tag/1.8.0 ?

If you have the chance, could you check if the issue appeared in 1.9.0 or in 1.9.1 please?

tjani8 commented 5 months ago

Yes, problem come in 1.9.0 version and is still 1.9.1. I downgraded back to 1.8.0, where this problem does not exist.

kamaradclimber commented 4 months ago

My current assumption is that there is a bad interaction between the "cooling" and "heating" mode topics and the integration code is currently unable to distinguish those.

Could you give me the current value of the following mqtt topics:

tjani8 commented 4 months ago

Heating_Mode=1 Cooling_Mode=0 Z1_Sensor_Settings=0 Z2_Sensor_Settings=0 Z1_Heat_Request_Temp=32 Z2_Heat_Request_Temp=35 Operating_Mode_State=0

I use only zone 1 and cool mode is disabled via custom menu.

kamaradclimber commented 4 months ago

Thanks! If you can try the current code in main branch (commit 3101b9172cbe7d8a20fdc36cde666631644b0539) I think it can help with your issue.

tjani8 commented 4 months ago

I now had time to test main branch code and I don't see any difference in functionality. Still have wrong adjust range in thermostat.

clandmeter commented 4 months ago

I am also having issues with the thermostat switching from heat to cool. When switching to cool it seems when trying to adjust the +/- 5 adjustment it will change the heat mode not the cool mode slider. Would this be related to this issue or should i open another one?

kamaradclimber commented 4 months ago

https://github.com/kamaradclimber/heishamon-homeassistant/releases/tag/1.10.0 should revert completely the broken feature.

Rwatson111 commented 4 months ago

For me the cooling mode was there before the update, but it isn’t there anymore IMG_0548

Rwatson111 commented 4 months ago

Seems tor me that in the initial post the issue may have not be related to the integration, but the setting of the heat pump itself. When you change the cooling function to cooling curve, the adjustment is between -5 and 5 degrees trim the calculated value based on the external temperature. Probably the same goes with the room controller. When you change to constant value you can actually operate on the water output temperature

Rwatson111 commented 4 months ago

The +/- 5 values are ok, depending on the setting you have on the heat pump. It works the same for smart cloud IMG_0549

geduxas commented 4 months ago

It's depends to heating/cooling mode.. if it's in compensation curve, then it will be -5/0/+5 range, if it in direct mode then it shoul allow full range of setpoint.

Rwatson111 commented 4 months ago

Exactly, it worked yesterday before the update, now it doesn’t work anymore

kamaradclimber commented 4 months ago

Yes indeed, I’ve revert the support for cooling mode in climate entities in 1.10.0. It was breaking the heating behavior for other users and does not seem trivial to fix. This feature is much harder for me to test because my heatpump does not have cooling mode so I cannot test on my setup.

Overall the multiplication of possible setup (compensation mode vs direct, heating vs cooling, various ways of getting temporature) makes developement of such feature harder.

If you want to help, you could send me a complete dump of mqtt messages so I can try to reproduce in a dev environment.

Rwatson111 commented 4 months ago

The thing is I’m beginner in this. If you can tell me how to do it step by step, I can do it

Rwatson111 commented 4 months ago

The cooling can be turned on from custom menu. image

kamaradclimber commented 4 months ago

If you have mosquitto, you can use:

mosquitto_sub -t panasonic_heat_pump/#  -u "$USER" -P "$PASSWORD" -h $HOST -v

It will dump all messages and you can send that to me. I don't think it would contain sensitive info but you should make sure. (in case of doubt, you can send them to me by email to heishamon_issue220@familleseux.net).

Here is the output for me for instance:

panasonic_heat_pump/ip 192.168.0.80
panasonic_heat_pump/stats {"uptime":1379823760,"voltage":3.33,"free memory":74,"free heap":29544,"wifi":100,"mqtt reconnects":21307,"total reads":1133754,"good reads":1133720,"bad crc reads":0,"bad header reads":421,"too short reads":1,"too long reads":0,"timeout reads":33}
panasonic_heat_pump/main/Discharge_Temp 22
panasonic_heat_pump/main/High_Pressure 14.6
panasonic_heat_pump/main/Heatpump_State 1
panasonic_heat_pump/main/Pump_Flow 0.13
panasonic_heat_pump/main/Force_DHW_State 0
panasonic_heat_pump/main/Quiet_Mode_Schedule 0
panasonic_heat_pump/main/Operating_Mode_State 3
panasonic_heat_pump/main/Main_Inlet_Temp 29
panasonic_heat_pump/main/Main_Outlet_Temp 29
panasonic_heat_pump/main/Main_Target_Temp 20
panasonic_heat_pump/main/Compressor_Freq 0
panasonic_heat_pump/main/DHW_Target_Temp 53
panasonic_heat_pump/main/DHW_Temp 49
panasonic_heat_pump/main/Operations_Hours 4464
panasonic_heat_pump/main/Operations_Counter 7647
panasonic_heat_pump/main/Main_Schedule_State 0
panasonic_heat_pump/main/Outside_Temp 27
panasonic_heat_pump/main/Heat_Energy_Production 0
panasonic_heat_pump/main/Heat_Energy_Consumption 0
panasonic_heat_pump/main/Powerful_Mode_Time 0
panasonic_heat_pump/main/Quiet_Mode_Level 0
panasonic_heat_pump/main/Holiday_Mode_State 0
panasonic_heat_pump/main/ThreeWay_Valve_State 0
panasonic_heat_pump/main/Outside_Pipe_Temp 26
panasonic_heat_pump/main/DHW_Heat_Delta -12
panasonic_heat_pump/main/Heat_Delta 7
panasonic_heat_pump/main/Cool_Delta 5
panasonic_heat_pump/main/DHW_Holiday_Shift_Temp -15
panasonic_heat_pump/main/Defrosting_State 0
panasonic_heat_pump/main/Z1_Heat_Request_Temp -3
panasonic_heat_pump/main/Z1_Cool_Request_Temp 0
panasonic_heat_pump/main/Z1_Heat_Curve_Target_High_Temp 28
panasonic_heat_pump/main/Z1_Heat_Curve_Target_Low_Temp 20
panasonic_heat_pump/main/Z1_Heat_Curve_Outside_High_Temp 15
panasonic_heat_pump/main/Z1_Heat_Curve_Outside_Low_Temp -7
panasonic_heat_pump/main/Room_Thermostat_Temp 29
panasonic_heat_pump/main/Z2_Heat_Request_Temp -5
panasonic_heat_pump/main/Z2_Cool_Request_Temp 0
panasonic_heat_pump/main/Z1_Water_Temp 22
panasonic_heat_pump/main/Z2_Water_Temp 24
panasonic_heat_pump/main/Cool_Energy_Production 0
panasonic_heat_pump/main/Cool_Energy_Consumption 0
panasonic_heat_pump/main/DHW_Energy_Production 0
panasonic_heat_pump/main/DHW_Energy_Consumption 0
panasonic_heat_pump/main/Z1_Water_Target_Temp 20
panasonic_heat_pump/main/Z2_Water_Target_Temp 25
panasonic_heat_pump/main/Error No error
panasonic_heat_pump/main/Room_Holiday_Shift_Temp -15
panasonic_heat_pump/main/Buffer_Temp -78
panasonic_heat_pump/main/Solar_Temp -78
panasonic_heat_pump/main/Pool_Temp -78
panasonic_heat_pump/main/Main_Hex_Outlet_Temp 29
panasonic_heat_pump/main/Inside_Pipe_Temp 29
panasonic_heat_pump/main/Defrost_Temp 24
panasonic_heat_pump/main/Eva_Outlet_Temp 23
panasonic_heat_pump/main/Bypass_Outlet_Temp 24
panasonic_heat_pump/main/Ipm_Temp 25
panasonic_heat_pump/main/Z1_Temp 22
panasonic_heat_pump/main/Z2_Temp -128
panasonic_heat_pump/main/DHW_Heater_State 0
panasonic_heat_pump/main/Room_Heater_State 0
panasonic_heat_pump/main/Internal_Heater_State 0
panasonic_heat_pump/main/External_Heater_State 0
panasonic_heat_pump/main/Fan1_Motor_Speed 0
panasonic_heat_pump/main/Fan2_Motor_Speed 0
panasonic_heat_pump/main/Pump_Speed 0
panasonic_heat_pump/main/Low_Pressure 0
panasonic_heat_pump/main/Compressor_Current 0.0
panasonic_heat_pump/main/Force_Heater_State 0
panasonic_heat_pump/main/Sterilization_State 0
panasonic_heat_pump/main/Sterilization_Temp 65
panasonic_heat_pump/main/Sterilization_Max_Time 10
panasonic_heat_pump/main/Z1_Cool_Curve_Target_High_Temp 15
panasonic_heat_pump/main/Z1_Cool_Curve_Target_Low_Temp 10
panasonic_heat_pump/main/Z1_Cool_Curve_Outside_High_Temp 30
panasonic_heat_pump/main/Z1_Cool_Curve_Outside_Low_Temp 20
panasonic_heat_pump/main/Heating_Mode 0
panasonic_heat_pump/main/Heating_Off_Outdoor_Temp 35
panasonic_heat_pump/main/Heater_On_Outdoor_Temp 0
panasonic_heat_pump/main/Heat_To_Cool_Temp 15
panasonic_heat_pump/main/Cool_To_Heat_Temp 10
panasonic_heat_pump/main/Cooling_Mode 0
panasonic_heat_pump/main/Z2_Heat_Curve_Target_High_Temp 49
panasonic_heat_pump/main/Z2_Heat_Curve_Target_Low_Temp 30
panasonic_heat_pump/main/Z2_Heat_Curve_Outside_High_Temp 15
panasonic_heat_pump/main/Z2_Heat_Curve_Outside_Low_Temp -7
panasonic_heat_pump/main/Z2_Cool_Curve_Target_High_Temp 15
panasonic_heat_pump/main/Z2_Cool_Curve_Target_Low_Temp 10
panasonic_heat_pump/main/Z2_Cool_Curve_Outside_High_Temp 30
panasonic_heat_pump/main/Z2_Cool_Curve_Outside_Low_Temp 20
panasonic_heat_pump/main/Room_Heater_Operations_Hours 44
panasonic_heat_pump/main/DHW_Heater_Operations_Hours 0
panasonic_heat_pump/main/Heat_Pump_Model 255
panasonic_heat_pump/main/Pump_Duty 0
panasonic_heat_pump/main/Zones_State 0
panasonic_heat_pump/main/Max_Pump_Duty 150
panasonic_heat_pump/main/Heater_Delay_Time -1
panasonic_heat_pump/main/Heater_Start_Delta -128
panasonic_heat_pump/main/Heater_Stop_Delta -128
panasonic_heat_pump/main/Buffer_Installed 0
panasonic_heat_pump/main/DHW_Installed 1
panasonic_heat_pump/main/Solar_Mode 0
panasonic_heat_pump/main/Solar_On_Delta 10
panasonic_heat_pump/main/Solar_Off_Delta 5
panasonic_heat_pump/main/Solar_Frost_Protection 5
panasonic_heat_pump/main/Solar_High_Limit 80
panasonic_heat_pump/main/Pump_Flowrate_Mode -1
panasonic_heat_pump/LWT Offline
panasonic_heat_pump/log Fri Jul 19 08:24:51 2024 (1379828759): Heishamon stats: Uptime: 65 days 16 hours 19 minutes 55 seconds ## Free memory: 77% ## Heap fragmentation: 3% ## Max free block: 29888 bytes ## Free heap: 30624 bytes ## Wifi: 100% (RSSI: -44) ## Mqtt reconnects: 21307 ## Correct data: 100.00%
panasonic_heat_pump/stats {"uptime":1379828761,"voltage":3.33,"free memory":74,"free heap":29544,"wifi":100,"mqtt reconnects":21307,"total reads":1133755,"good reads":1133721,"bad crc reads":0,"bad header reads":421,"too short reads":1,"too long reads":0,"timeout reads":33}
panasonic_heat_pump/log Fri Jul 19 08:24:51 2024 (1379828764): Requesting new panasonic data
panasonic_heat_pump/log Fri Jul 19 08:24:51 2024 (1379828765): sent bytes: 111 including checksum value: 18 
panasonic_heat_pump/LWT Online
panasonic_heat_pump/log Fri Jul 19 08:24:52 2024 (1379829240): Received 203 bytes data
panasonic_heat_pump/log Fri Jul 19 08:24:52 2024 (1379829242): Checksum and header received ok!
geduxas commented 4 months ago

@kamaradclimber i think it's better to separate thermostats.. truly personally i don't use -5/+5 shift thermostat at all.. don't see any use for it.. I would like it in auotomated way. Thermostat should set desired room temperature.

kamaradclimber commented 4 months ago

@geduxas you are probably right (as often!). I can try to work on this.

About always display target temperature, I would surely welcome a patch (or at least the formula to convert between -5/+5 delta to target temperature).

geduxas commented 4 months ago

It's simple.. just let it pick external temperature sensor for input, and by desired temperature tweak +5/-5 range.. if its in right spot then shift should be at 0, if it's to hot by +1° so it should set for example -2 shift value.. if it's to hot by +3° from setpoint, it should switch -5 shift... And don't know.. by some PID logic it should stear room temperature.. :)

Bucky2k commented 4 months ago

Not sure to follow. Most floor heating installations use no internal room sensor. So there is no room target temperature. There is only the heat curve water temperature defined and the thermostat adjusts with correcting the setpoint temp by -5 to +5°C....

Rwatson111 commented 4 months ago

Not sure to follow. Most floor heating installations use no internal room sensor. So there is no room target temperature. There is only the heat curve water temperature defined and the thermostat adjusts with correcting the setpoint temp by -5 to +5°C....

This is how I have it set up. Depending on the outside temperature, the zone output water temperature is adjusted.

l’ve sent my mqtt messages on email

clandmeter commented 4 months ago

@kamaradclimber i think it's better to separate thermostats.. truly personally i don't use -5/+5 shift thermostat at all.. don't see any use for it.. I would like it in auotomated way. Thermostat should set desired room temperature.

Sorry I have to disagree and would prefer to be able to adjust the compensation curve temperature by +/- 5 Deg. This is how my wife has used it since the beginning with the official implementation.

It also makes sense to mimic the behaviour of the indoor control panel also when running compensation curve.

If needed I can provide debug information.

clandmeter commented 4 months ago

@kamaradclimber I'm not sure this information is useful, but when switching from heat to cool compensation mode the wrong mqtt topic is used:

TOP27 Z1_Heat_Request_Temp TOP28 Z1_Cool_Request_Temp

in Cool mode it should read and update TOP28 instead of TOP27

geduxas commented 4 months ago

Ok, but for shift value, thermostate component needed? Maybe slider is enough? As for room temperature control you don't need to have separate room termostat.. only temperature sensor.. and in home assistant i think 90% will have one or another room temperature sensor ;)

clandmeter commented 4 months ago

From an UI pov, it is nice to have one component that can manage all of the modes adapting to each of them. But as @kamaradclimber pointed out, it could be challenging to add this without having the mode available.

In any case, its my preference, and if needed I am able to help where needed.

geduxas commented 4 months ago

It's limited by HA itself.. i think it would be possible to implement with custom thermostat component..

kamaradclimber commented 4 months ago

https://github.com/kamaradclimber/heishamon-homeassistant/releases/tag/1.11.0 implements a separated climate component for cooling. Please open new issues if there are things to fix.