Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Target temperature for TRV (used for underfloor heating) never hit #863

Open
mattheworiordan opened this issue Jan 23, 2025 · 3 comments
Open
Labels
Not VTherm issue This seems to be not a VTherm issue question Further information is requested

Comments

@mattheworiordan
Copy link

Version of the custom_component

7.1.4

Configuration

My VTherm attributes are the following:

hvac_modes:
  - "off"
  - heat
min_temp: 7
max_temp: 30
target_temp_step: 0.5
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
current_temperature: 20.5
temperature: 23
hvac_action: idle
preset_mode: none
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: false
last_central_mode: null
frost_temp: 7
eco_temp: 7
boost_temp: 7
comfort_temp: 7
frost_away_temp: 0
eco_away_temp: 0
boost_away_temp: 0
comfort_away_temp: 0
target_temperature_step: 0.5
ext_current_temperature: 4.05
ac_mode: false
saved_preset_mode: none
saved_target_temp: 23
saved_hvac_mode: null
last_temperature_datetime: "2025-01-23T15:18:21.510069+01:00"
last_ext_temperature_datetime: "2025-01-23T15:27:41.876826+01:00"
minimal_activation_delay_sec: 10
total_energy: 4.12
last_update_datetime: "2025-01-23T15:34:14.876015+01:00"
timezone: Europe/Paris
temperature_unit: °C
is_device_active: false
device_actives: []
nb_device_actives: 0
ema_temp: 20.43
is_used_by_central_boiler: false
temperature_slope: 0.24
hvac_off_reason: null
max_on_percent: null
have_valve_regulation: false
last_change_time_from_vtherm: "2025-01-23T10:34:38.302504+01:00"
presence_sensor_entity_id: null
presence_state: unavailable
is_presence_configured: false
power_sensor_entity_id: null
max_power_sensor_entity_id: null
overpowering_state: unavailable
is_power_configured: false
device_power: 1
power_temp: null
current_power: null
current_max_power: null
mean_cycle_power: null
motion_sensor_entity_id: null
motion_state: unavailable
is_motion_configured: false
motion_delay_sec: 0
motion_off_delay_sec: 0
motion_preset: null
no_motion_preset: null
window_state: unavailable
window_auto_state: unavailable
window_action: window_turn_off
is_window_bypass: false
window_sensor_entity_id: null
window_delay_sec: null
window_off_delay_sec: null
is_window_configured: false
is_window_auto_configured: false
window_auto_open_threshold: null
window_auto_close_threshold: null
window_auto_max_duration: null
is_safety_configured: true
safety_state: "off"
safety_delay_min: 60
safety_min_on_percent: 0.5
safety_default_on_percent: 0.1
is_auto_start_stop_configured: false
is_over_climate: true
start_hvac_action_date: null
underlying_entities:
  - climate.office_underfloor_heating_thermostat
is_regulated: true
regulated_target_temperature: 32.5
auto_regulation_mode: auto_regulation_expert
regulation_accumulated_error: 80
auto_fan_mode: auto_fan_high
current_auto_fan_mode: auto_fan_high
auto_activated_fan_mode: null
auto_deactivated_fan_mode: null
auto_regulation_use_device_temp: false
follow_underlying_temp_change: false
friendly_name: "Office: Underfloor thermostat (versatile)"
supported_features: 401

Note my expert settings are as follows:

versatile_thermostat:
    auto_regulation_expert:
        kp: 0.6
        ki: 0.1
        k_ext: 0.0
        offset_max: 10
        stabilization_threshold: 0.1
        accumulated_error_threshold: 80

If it is releveant to regulation performance or optimisation some curves are needed

Image

Image

Image

Describe the bug

I have set up a versatile thermostat for an underlying electric underfloor heating TRV, a Moes BHT-002-GCLZB. The target temperature is never reached by quite a few degrees, and it's just not evident, even after going to an extreme setting for the regulation, what is causing the versatile thermostat to hold off on keeping the underlying heating on until the target temp is reached

I'm trying to:

Reach a target temperature for my room, using my underfloor heating TRV, and an external Zigbee thermometer to ensure I have an accurate room temperature reading (unaffected by the device heat etc).

And I expect:

The target temperature of 23 degrees to be reached within an hour or two, as I know I can heat up the room this quickly when setting the temp manually.

But I observe this ....

It's been on for most of the day and the temperature is oscillating at around 20 degrees.

I read the documentation on the README.md file and I don't find any relevant information about this issue.

Debug log

2025-01-23 15:36:39.606 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 10.0, 'eco_temp': 10.0, 'boost_temp': 10.0, 'comfort_temp': 10.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 4.05, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 10.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:26:39.004047+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:27:41.876826+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 0, 'last_update_datetime': '2025-01-23T15:36:39.603708+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 23.62, 'is_used_by_central_boiler': False, 'temperature_slope': -0.42, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T13:57:02.827849+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.guest_nr_office_window_opening', 'window_delay_sec': 300, 'window_off_delay_sec': 300, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 20.0, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': -24.790000000000006, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:36:39.606 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - auto start/stop is disabled (or not configured)
2025-01-23 15:36:39.606 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:36:39.607 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - regulation calculation will be done
2025-01-23 15:36:39.607 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - usage regulation_step: 0.50 
2025-01-23 15:36:39.609 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: -0.57 accumulated_error: -25.37 offset: -2.88 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 20.1
2025-01-23 15:36:39.609 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - dtemp (0.0) is < 0.5 -> forget the regulation send
2025-01-23 15:39:14.875 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Office: Underfloor thermostat (versatile) - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=none
2025-01-23 15:39:14.876 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto is on, check the alert. last slope is 0.240
2025-01-23 15:39:14.876 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto event is ignored because bypass is ON or window auto detection is disabled
2025-01-23 15:39:14.876 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Office: Underfloor thermostat (versatile) - checking safety delta_temp=20.9 delta_ext_temp=11.5 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2025-01-23 15:39:14.879 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': 'heat', 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 7.0, 'eco_temp': 7.0, 'boost_temp': 7.0, 'comfort_temp': 7.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 4.05, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 23.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:18:21.510069+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:27:41.876826+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 4.12, 'last_update_datetime': '2025-01-23T15:39:14.877249+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 20.43, 'is_used_by_central_boiler': False, 'temperature_slope': 0.24, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T10:34:38.302504+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'unavailable', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': None, 'window_delay_sec': None, 'window_off_delay_sec': None, 'is_window_configured': False, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.office_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 32.5, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': 80.0, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:39:14.879 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Office: Underfloor thermostat (versatile) - auto start/stop is disabled (or not configured)
2025-01-23 15:39:14.879 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:39:14.880 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - regulation calculation will be done
2025-01-23 15:39:14.880 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - usage regulation_step: 0.50 
2025-01-23 15:39:14.880 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 2.52 accumulated_error: 80.00 offset: 9.51 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 32.5
2025-01-23 15:39:14.880 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - dtemp (0.0) is < 0.5 -> forget the regulation send
2025-01-23 15:39:18.812 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Office: Underfloor thermostat (versatile) - external Temperature changed. Event.new_state is <state sensor.outside_thermometer_terrace_facing_didier_s_temperature=3.78; state_class=measurement, unit_of_measurement=°C, device_class=temperature, friendly_name=Outside: Thermometer terrace facing Didier's Temperature @ 2025-01-23T15:39:18.811232+01:00>
2025-01-23 15:39:18.812 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Office: Underfloor thermostat (versatile) - After setting _last_ext_temperature_measure 2025-01-23 15:39:18.811232+01:00, state.last_changed.replace=2025-01-23 15:39:18.811232+01:00
2025-01-23 15:39:18.812 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - recalculate all
2025-01-23 15:39:18.815 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': 'heat', 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 7.0, 'eco_temp': 7.0, 'boost_temp': 7.0, 'comfort_temp': 7.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 23.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:18:21.510069+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 4.12, 'last_update_datetime': '2025-01-23T15:39:18.813373+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 20.43, 'is_used_by_central_boiler': False, 'temperature_slope': 0.24, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T10:34:38.302504+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'unavailable', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': None, 'window_delay_sec': None, 'window_off_delay_sec': None, 'is_window_configured': False, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.office_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 32.5, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': 80.0, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:39:18.816 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Office: Underfloor thermostat (versatile) - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=none
2025-01-23 15:39:18.816 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto is on, check the alert. last slope is 0.240
2025-01-23 15:39:18.816 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto event is ignored because bypass is ON or window auto detection is disabled
2025-01-23 15:39:18.817 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Office: Underfloor thermostat (versatile) - checking safety delta_temp=21.0 delta_ext_temp=0.0 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2025-01-23 15:39:18.823 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': 'heat', 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 7.0, 'eco_temp': 7.0, 'boost_temp': 7.0, 'comfort_temp': 7.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 23.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:18:21.510069+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 4.12, 'last_update_datetime': '2025-01-23T15:39:18.821956+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 20.43, 'is_used_by_central_boiler': False, 'temperature_slope': 0.24, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T10:34:38.302504+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'unavailable', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': None, 'window_delay_sec': None, 'window_off_delay_sec': None, 'is_window_configured': False, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.office_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 32.5, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': 80.0, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:39:18.823 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Office: Underfloor thermostat (versatile) - auto start/stop is disabled (or not configured)
2025-01-23 15:39:18.824 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:39:18.824 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - regulation calculation will be done
2025-01-23 15:39:18.824 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - usage regulation_step: 0.50 
2025-01-23 15:39:18.824 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 2.52 accumulated_error: 80.00 offset: 9.51 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 32.5
2025-01-23 15:39:18.824 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - dtemp (0.0) is < 0.5 -> forget the regulation send
2025-01-23 15:39:18.825 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - external Temperature changed. Event.new_state is <state sensor.outside_thermometer_terrace_facing_didier_s_temperature=3.78; state_class=measurement, unit_of_measurement=°C, device_class=temperature, friendly_name=Outside: Thermometer terrace facing Didier's Temperature @ 2025-01-23T15:39:18.811232+01:00>
2025-01-23 15:39:18.825 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - After setting _last_ext_temperature_measure 2025-01-23 15:39:18.811232+01:00, state.last_changed.replace=2025-01-23 15:39:18.811232+01:00
2025-01-23 15:39:18.825 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - recalculate all
2025-01-23 15:39:18.825 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.826 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.826 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.828 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.829 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.829 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.830 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.831 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 10.0, 'eco_temp': 10.0, 'boost_temp': 10.0, 'comfort_temp': 10.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 10.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:26:39.004047+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 0, 'last_update_datetime': '2025-01-23T15:39:18.826285+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 23.62, 'is_used_by_central_boiler': False, 'temperature_slope': -0.42, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T13:57:02.827849+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.guest_nr_office_window_opening', 'window_delay_sec': 300, 'window_off_delay_sec': 300, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 20.0, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': -25.365000000000006, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:39:18.831 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.832 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.832 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=none
2025-01-23 15:39:18.832 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Window auto is on, check the alert. last slope is -0.420
2025-01-23 15:39:18.832 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Window auto event is ignored because bypass is ON or window auto detection is disabled
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - checking safety delta_temp=12.7 delta_ext_temp=0.0 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.833 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.834 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.834 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.834 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.834 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:39:18.839 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 10.0, 'eco_temp': 10.0, 'boost_temp': 10.0, 'comfort_temp': 10.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 10.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:26:39.004047+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 0, 'last_update_datetime': '2025-01-23T15:39:18.833920+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 23.62, 'is_used_by_central_boiler': False, 'temperature_slope': -0.42, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T13:57:02.827849+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.guest_nr_office_window_opening', 'window_delay_sec': 300, 'window_off_delay_sec': 300, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 20.0, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': -25.365000000000006, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:39:18.840 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - auto start/stop is disabled (or not configured)
2025-01-23 15:39:18.840 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:39:18.840 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - regulation calculation will be done
2025-01-23 15:39:18.841 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - usage regulation_step: 0.50 
2025-01-23 15:39:18.841 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: -0.57 accumulated_error: -25.94 offset: -2.94 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 20.1
2025-01-23 15:39:18.841 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - dtemp (0.0) is < 0.5 -> forget the regulation send
2025-01-23 15:41:39.602 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=none
2025-01-23 15:41:39.603 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Window auto is on, check the alert. last slope is -0.420
2025-01-23 15:41:39.603 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Window auto event is ignored because bypass is ON or window auto detection is disabled
2025-01-23 15:41:39.603 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.603 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - checking safety delta_temp=15.0 delta_ext_temp=2.3 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.604 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.605 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.605 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor)-climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat - hvac_action simulation target=20.0, current=26.4, hvac_mode=heat
2025-01-23 15:41:39.607 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 10.0, 'eco_temp': 10.0, 'boost_temp': 10.0, 'comfort_temp': 10.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 10.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:26:39.004047+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 0, 'last_update_datetime': '2025-01-23T15:41:39.604582+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 23.62, 'is_used_by_central_boiler': False, 'temperature_slope': -0.42, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T13:57:02.827849+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.guest_nr_office_window_opening', 'window_delay_sec': 300, 'window_off_delay_sec': 300, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.guest_room_nr_office_bedroom_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 20.0, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': -25.940000000000005, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:41:39.607 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - auto start/stop is disabled (or not configured)
2025-01-23 15:41:39.610 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:41:39.610 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - regulation calculation will be done
2025-01-23 15:41:39.610 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - usage regulation_step: 0.50 
2025-01-23 15:41:39.611 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: -0.57 accumulated_error: -26.52 offset: -3.00 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 20.0
2025-01-23 15:41:39.611 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Guest room nr office (Elodie): Bedroom better thermostat (underfloor) - dtemp (0.0) is < 0.5 -> forget the regulation send
2025-01-23 15:44:14.876 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Office: Underfloor thermostat (versatile) - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=none
2025-01-23 15:44:14.877 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto is on, check the alert. last slope is 0.240
2025-01-23 15:44:14.877 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Office: Underfloor thermostat (versatile) - Window auto event is ignored because bypass is ON or window auto detection is disabled
2025-01-23 15:44:14.877 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Office: Underfloor thermostat (versatile) - checking safety delta_temp=25.9 delta_ext_temp=4.9 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2025-01-23 15:44:14.879 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling update_custom_attributes: {'is_on': True, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': 'heat', 'preset_mode': 'none', 'type': None, 'is_controlled_by_central_mode': False, 'last_central_mode': None, 'frost_temp': 7.0, 'eco_temp': 7.0, 'boost_temp': 7.0, 'comfort_temp': 7.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0, 'target_temperature_step': 0.5, 'ext_current_temperature': 3.78, 'ac_mode': False, 'saved_preset_mode': 'none', 'saved_target_temp': 23.0, 'saved_hvac_mode': None, 'last_temperature_datetime': '2025-01-23T15:18:21.510069+01:00', 'last_ext_temperature_datetime': '2025-01-23T15:39:18.811232+01:00', 'minimal_activation_delay_sec': 10, 'total_energy': 4.12, 'last_update_datetime': '2025-01-23T15:44:14.878023+01:00', 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 20.43, 'is_used_by_central_boiler': False, 'temperature_slope': 0.24, 'hvac_off_reason': None, 'max_on_percent': None, 'have_valve_regulation': False, 'last_change_time_from_vtherm': '2025-01-23T10:34:38.302504+01:00', 'presence_sensor_entity_id': None, 'presence_state': 'unavailable', 'is_presence_configured': False, 'power_sensor_entity_id': None, 'max_power_sensor_entity_id': None, 'overpowering_state': 'unavailable', 'is_power_configured': False, 'device_power': 1.0, 'power_temp': None, 'current_power': None, 'current_max_power': None, 'mean_cycle_power': None, 'motion_sensor_entity_id': None, 'motion_state': 'unavailable', 'is_motion_configured': False, 'motion_delay_sec': 0, 'motion_off_delay_sec': 0, 'motion_preset': None, 'no_motion_preset': None, 'window_state': 'unavailable', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': None, 'window_delay_sec': None, 'window_off_delay_sec': None, 'is_window_configured': False, 'is_window_auto_configured': False, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None, 'is_safety_configured': True, 'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1, 'is_auto_start_stop_configured': False, 'is_over_climate': True, 'start_hvac_action_date': None, 'underlying_entities': ['climate.office_underfloor_heating_thermostat'], 'is_regulated': True, 'regulated_target_temperature': 32.5, 'auto_regulation_mode': 'auto_regulation_expert', 'regulation_accumulated_error': 80.0, 'auto_fan_mode': 'auto_fan_high', 'current_auto_fan_mode': 'auto_fan_high', 'auto_activated_fan_mode': None, 'auto_deactivated_fan_mode': None, 'auto_regulation_use_device_temp': False, 'follow_underlying_temp_change': False}
2025-01-23 15:44:14.880 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_auto_start_stop_manager] AutoStartStopManager-Office: Underfloor thermostat (versatile) - auto start/stop is disabled (or not configured)
2025-01-23 15:44:14.880 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - Calling ThermostatClimate._send_regulated_temperature force=False
2025-01-23 15:44:14.880 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - regulation calculation will be done
2025-01-23 15:44:14.880 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - usage regulation_step: 0.50 
2025-01-23 15:44:14.881 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 2.52 accumulated_error: 80.00 offset: 9.51 offset_ext: 0.00 target_tem: 23.0 regulatedTemp: 32.5
2025-01-23 15:44:14.881 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] VersatileThermostat-Office: Underfloor thermostat (versatile) - dtemp (0.0) is < 0.5 -> forget the regulation send

@jmcollin78
Copy link
Owner

Hello,

All your temperature are set to 7°:

frost_temp: 7
eco_temp: 7
boost_temp: 7
comfort_temp: 7

how it can just work ? Or maybe you don't use the preset but only the "manual" mode (no preset) ?

Ok let assume this.

In over_climate the regulation is done by your device and Vtherm "just" send a setpoint and add some self-regulation information.

Here we have:

current_temperature: 20.5
temperature: 23

regulated_target_temperature: 32.5

This mean that VTherm set the setpoint to 32.5° (!!) and this is still not enough. This is very high value is due to the expert mode with some very strong parameters.
You can check in the underlying climate device named climate.office_underfloor_heating_thermostat setpoint is set to 32.5°.

If yes, this means this is still not enough I guess there is nothing to do and it means your underfloor heating is not sufficient. Maybe you should increase the water temperature (if you can do that).

@jmcollin78 jmcollin78 added question Further information is requested Not VTherm issue This seems to be not a VTherm issue labels Jan 23, 2025
@mattheworiordan
Copy link
Author

mattheworiordan commented Jan 24, 2025

Or maybe you don't use the preset but only the "manual" mode (no preset) ?

Apologies I was not clear on this. Yes, this is what I am doing as I typically use something like Schedy to change temperatures for the entire house and keep that config in one place. For now however, I am just using manual mode as you say.

Image

This mean that VTherm set the setpoint to 32.5° (!!) and this is still not enough. This is very high value is due to the expert mode with some very strong parameters.
You can check in the underlying climate device named climate.office_underfloor_heating_thermostat setpoint is set to 32.5°.

Yup, that is what is happening. Below is a graph of the set point on that device, along with temperature (mean) reported by both thermometers in the room.

Image

Image

What this tells me is that a) when the the setpoint is at 32.5 degrees and the underfloor heater is enabled, the room heat does start climbing as expected.

If yes, this means this is still not enough I guess there is nothing to do and it means your underfloor heating is not sufficient. Maybe you should increase the water temperature (if you can do that).

Sadly in this room, the underfloor heating is electric and I've always had issues with it. However, I replaced the controller recently with a Zigbee one and have been able to get the room way above the target (22 degrees or so), but sadly the sensors for air temp and underfloor temp are not working (which explains why the previous unit does not work). So there is no way to provide more heat as such without setting the target temperature higher and maintaining that temperature for longer.

My question therefore is:

  • Given VTerm is able to drive the temp up by ensuring the device is heating at 32.5 degrees, why does it stop the heating 2-3 degrees before the target temperature is reached?
  • As far as I can tell, there is only one "Expert" mode configuration available. Given the quirks of this heater, is there not some way to allow it to perhaps even set the target setpoint even higher during the heating phase?
  • Does VTherm offer automatic adjustment of the "Local temperature calibration" attribute? Not to throw another issue into the mix, but I am running VTherm with two different underfloor TRVs (the other is driven by hot water), and I am finding that the local temp where the TRV is is very high (around 27 degrees in the boiler room), and the TRV has a max of 30 degrees, meaning a delta of only 3 degrees is allowed. If the "Local temperature calibration" is correctly adjusted (-7 degrees in this case) to reflect the room temp of 20 degrees, then of course the TRV has plenty of room to increase. I had a quick read of your docs
    3. For each underlying device of the VTherm:
    1. If "Use Internal Temperature" is checked:
    1. Calculate the compensation (`trv_internal_temp - room_temp`),
    2. Add the offset to the target temperature,
    3. Send the target temperature (= regulated_temp + (internal_temp - room_temp)) to the underlying device.
    , but it's not clear if that adjusts the local temp calibration, or simply adds the delta to the target.

I just wanted to just add, thank you @jmcollin78 for this integration and your support. Hugely appreciated 🙏

@jmcollin78
Copy link
Owner

  • Given VTerm is able to drive the temp up by ensuring the device is heating at 32.5 degrees, why does it stop the heating 2-3 degrees before the target temperature is reached?

There is a misunderstanding here: VTherm doesn't stop the heating but it just send a setpoint to the underlying climate. And the underlying climate device, stops by its own.

Given the quirks of this heater, is there not some way to allow it to perhaps even set the target setpoint even higher during the heating phase?

This is totally useless I think. If you could set 80°, it won't heat more because the device is not enough strong. It is not a matter of temperature setpoint but a matter of power of heating (if my understanding is good of course).

but it's not clear if that adjusts the local temp calibration

The "Use Internal Temperature" don't sent calibration to the device but add the compensation factor to the setpoint sent to the device. It has the same effect. In your case, this parameter will be useless also due to the insufficient heating power.

The only configuration which allow sending the calibration is to use the over_climate with self-regulation named "Direct control of the valve". But you need a number entity which can control the valve.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Not VTherm issue This seems to be not a VTherm issue question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants