[bug] - Adding Secondary Heating in Heat/Cool mode doesn't work and also stops primary heating functioning
Opened this issue · 0 comments
I am trying to add secondary heating. I have a wet underfloor system which is mainly used for heating, but that takes a very, very long time to respond. That's normally fine but at times it means the house gets cold when the outside temp plunges overnight. Also, if trying to boost the temperature from a lower setting (eg being out for the day), it will take hours to increase the room temperature.
I also have an AC system which is capable of both heating and cooling, so I figured I could use the new feature but when the Smart Thermostat is in Heat/Cool mode, adding the config lines for secondary heating, stops any heating at all!
Without the two lines for 'secondary_heating' this has been working for quite a while, maintaining the temps nicely, using the wet underfloor to heat the room and on sunny days using the AC to keep it cool.
However, on adding the secondary heater config lines, the primary heater is never triggered.
- platform: dual_smart_thermostat
name: Office Smart
unique_id: office_smart
heater: switch.virtual_office_heat
cooler: switch.virtual_office_cool
secondary_heater: switch.virtual_office_heat_ac
secondary_heater_timeout: 00:01:00
target_sensor: sensor.virtual_office_temperature
heat_cool_mode: true
cold_tolerance: 0.2
hot_tolerance: 0.2
precision: 0.1
target_temp_step: 1
min_temp: 12
max_temp: 30
target_temp_low: 23
target_temp_high: 26
min_cycle_duration:
minutes: 5
away:
target_temp_low: 15
target_temp_high: 29
I have tried using a 'dummy' switch tied to nothing, just turning on/off but that doesn't change things (so it isn't an AC issue) - the system just stops trying to apply heat at all in this situation.
Attributes showing current/target temps - you can see current is 24.5 and target is 26:
hvac_modes: heat_cool, heat, cool, off
min_temp: 12
max_temp: 30
target_temp_step: 1
preset_modes: away, none
current_temperature: 24.5
target_temp_high: 28
target_temp_low: 26
hvac_action: idle
preset_mode: none
prev_target_temp_low: 26
prev_target_temp_high: 28
hvac_action_reason:
friendly_name: Office Smart
supported_features: 402
Here's the debug output - it seems that it thinks the temp has been reached?
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Setting temperatures. Temp: None, Low: 26.0, High: 28.0
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] is_configured_for_heat_cool_mode
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] heat_cool_mode: True
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] target_temp_high: 28.0
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] target_temp_low: 23.0
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] Setting target temperature range: None, 26.0, 28.0
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] Setting saved target temp low: 26.0
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Attempting to control climate, time None, force True
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] async_control_hvac. hvac_mode: heat_cool, force: True
2024-11-25 14:11:04.192 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] _async_control_heat_cool. time: None, force: True
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.opening_manager] _any_opening_open
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] async_heater_cooler_toggle time: None, force: True
2024-11-25 14:11:04.192 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] is_cold_or_hot
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat_ac, on_state: on
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] heater_device.is_active: None
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] cooler_device.is_active: False
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat_ac, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] too_cold: True, too_hot: False, tolerance_device: auto, force: True
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] _async_auto_toggle
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] too_cold: True, too_hot: False
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] time: None, force: True
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_aux_heater_device] {'HeaterAUXHeaterDevice'}
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_aux_heater_device] async_control_devices at: 2024-11-25 14:11:04.193207+00:00
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat_ac, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_aux_heater_device] HeaterAUXHeaterDevice Controlling hvac while off
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.opening_manager] _any_opening_open
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] CoolerDevice. Turning off or closing entity switch.virtual_office_cool
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] CoolerDevice. Turning off entity switch.virtual_office_cool
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal reached: True
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal not reached: False
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] hvac_action: off
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power because goal reached
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] updating HVACActionReason: None
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat_ac, on_state: on
2024-11-25 14:11:04.193 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:11:04.193 DEBUG (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Extra state attributes: {'prev_target_temp_low': 26.0, 'prev_target_temp_high': 28.0, 'hvac_action_reason': <HVACActionReason.NONE: ''>}
Here is the debug a few minutes later. The only change was that I removed the two 'secondary' lines from the config, then used the Developer Tools to reload "All YAML configuration" and then I set the temp again to 26/28.
It works fine, and immediately turns on the primary underfloor heating:
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Setting temperatures. Temp: None, Low: 26.0, High: 28.0
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] is_configured_for_heat_cool_mode
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] heat_cool_mode: True
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] target_temp_high: 28.0
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.managers.feature_manager] target_temp_low: 24.0
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] Setting target temperature range: None, 26.0, 28.0
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] Setting saved target temp low: 26.0
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Attempting to control climate, time None, force True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] async_control_hvac. hvac_mode: heat_cool, force: True
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] _async_control_heat_cool. time: None, force: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.opening_manager] _any_opening_open
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] async_heater_cooler_toggle time: None, force: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] is_cold_or_hot
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] heater_device.is_active: False
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] cooler_device.is_active: False
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] too_cold: True, too_hot: False, tolerance_device: auto, force: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] _async_auto_toggle
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] too_cold: True, too_hot: False
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.heater_cooler_device] time: None, force: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] HeaterDevice - async_control_hvac time: None. force: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] _active: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] cur_temp: 24.5
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] target_env_attr: _target_temp_low
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] hvac_mode: heat
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] target_temp: 26.0
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] needs_control: True
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.opening_manager] _any_opening_open
2024-11-25 14:21:38.937 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:38.937 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] HeaterDevice - async_control_hvac - is device active: switch.virtual_office_heat, False, strategy: <custom_components.dual_smart_thermostat.hvac_controller.hvac_controller.HvacEnvStrategy object at 0x7f03a6d77500>, is opening open: False
2024-11-25 14:21:38.938 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:38.938 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.heater_controller] HeaterHvacConroller Controlling hvac while off
2024-11-25 14:21:38.938 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:38.938 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:38.938 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.heater_controller] too_cold: False
2024-11-25 14:21:38.938 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.heater_controller] Turning on heater (from inactive) switch.virtual_office_heat
2024-11-25 14:21:38.938 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] HeaterDevice. Turning on or opening entity switch.virtual_office_heat
2024-11-25 14:21:38.938 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] entity_features: None
2024-11-25 14:21:38.938 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] HeaterDevice. Turning on entity switch.virtual_office_heat
2024-11-25 14:21:38.938 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] Turning on entity if state not on switch.virtual_office_heat
2024-11-25 14:21:39.765 DEBUG (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] hvac action reason after control: target_temp_not_reached
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_low, Target temp: 26.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal reached: False
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal not reached: True
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] hvac_action: idle
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power because goal reached
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] CoolerDevice. Turning off or closing entity switch.virtual_office_cool
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_device.generic_hvac_device] CoolerDevice. Turning off entity switch.virtual_office_cool
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_cold - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.environment_manager] is_too_hot - target temp attr: _target_temp_high, Target temp: 28.0, current temp: 24.5, tolerance: 0.2
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal reached: True
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] goal not reached: False
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] hvac_action: off
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.managers.hvac_power_manager] Updating hvac power because goal reached
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] updating HVACActionReason: target_temp_not_reached
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_heat, on_state: on
2024-11-25 14:21:39.766 INFO (MainThread) [custom_components.dual_smart_thermostat.hvac_controller.generic_controller] Checking if device is active: switch.virtual_office_cool, on_state: on
2024-11-25 14:21:39.766 DEBUG (MainThread) [custom_components.dual_smart_thermostat.climate.downstairsshower_smart] Extra state attributes: {'prev_target_temp_low': 26.0, 'prev_target_temp_high': 28.0, 'hvac_action_reason': <HVACActionReason.TARGET_TEMP_NOT_REACHED: 'target_temp_not_reached'>}