Comportement bizarre d'un Thermostat Versatile

Bonjour,

J’ai créé un thermostat versatile pour tous mes radiateurs. Ce sont des « grille pain » sans fil pilote. Mes modules gèrent donc juste des ON/OFF.

Tous mes radiateurs fonctionnent parfaitement sauf 1 qui allume le radiateur alors que la température est supérieure à la consigne. C’est une chambre inoccupée dont la consigne est de 14°C. C’est comme si le thermostat s’efforce de ne jamais tomber en dessous de la consigne.
J’ai vérifié tous le paramètres et je les ai comparé ave ceux de la chambre d’à côté… et je ne vois aucune différence.

Voila l’évolution de l’historique depuis que je l’ai installé :

Historique de la chambre d’à côté :

Quelqu’un a déjà eu ce comportement ?
Une idée de ce que j’ai pu rater ?

J’ai le même comportement avec ma PAC et cette intégration.

Tous mes splits configurés pareil, mais j’en ai deux dont il cherche à ne jamais toucher la consigne (toujours 0,5 à 1 degré minimum au dessus).

J’ai pas eu le courage de creuser le sujet.

Du coup, j’ai désactivé le Thermostat récalcitrant et j’en ai recréé un nouveau… je vais voir si ce nouveau thermostat fonctionne mieux…

Le problème reste inchangé avec le Thermostat recréé…

D’après ce que j’ai pu voir sur le forum @Jean-Marc_Collin semble bien connaitre la bête…
Aurais tu un avis la dessus ?

Hello,

On va regarder. Si je comprends, le Vtherm continue d’allumer le switch alors que la température cible est dépassée.

La première courbe de ton post, c’est tellement n’importe quoi que je ne sais pas quoi en penser… La température fait ce qu’elle veut, ca chauffe n’importe quand . La cible ne bouge pas 14 mais les courbes font ce qu’elles veulent. Tu es sur que tu as mis les bons switch et capteur de température dans la conf de Vtherm ?

Donnes moi les attributs de ton Vtherm comme décrit ici lorsque le soucis a lieu : versatile_thermostat/documentation/fr/reference.md at main · jmcollin78/versatile_thermostat · GitHub

Deuxième chose à faire vérifier les paramètres coef_int et coef_ext de ton TPI. Supprimes les éventuels minimal_deactivation_delay_sec si tu les as mis.

Troisième chose, vérifie que le on_percent est bien à zéro lorsque la cible est dépassée. Si c’est bien le cas, c’est que le TPI fonctionne.

Je verrais tout ça avec tes attributs.

Merci @Jean-Marc_Collin pour ta réponse, effectivement le chauffage se mets en route n’importe comment :sweat_smile:
Je te mets tous mes paramètres en image, qui semblent être corrects… je suis peut-être passé à coté de quelque chose ?

J’ai juste un doute sur « Dernière vue capteur de température » j’ai mis le « last temperature date » du thermostat… je ne sais pas si c’est correct.
Mais j’ai mis ça sur tous les Thermostats et les autres fonctionnent correctement

Hello,

Non ce n’est pas correct. Si tu cliques sur le ? tu arrives directement dans la doc qui explique comment marche ce paramètre. Ca n’explique pas tes problèmes mais ce n’est pas bon. Le Last Seen c’est quelque-chose de très spécifique en Zigbee.

Plutot que de me mettre des copies d’écran, j’avais demandé ça:

Donnes moi les attributs de ton Vtherm comme décrit ici lorsque le soucis a lieu : versatile_thermostat/documentation/fr/reference.md at main · jmcollin78/versatile_thermostat · GitHub

C’est bien plus pratique et au moins j’ai tout.

ok désolé je n’avais pas compris ta demande…

hvac_modes:
  - heat
  - "off"
min_temp: -10
max_temp: 45
target_temp_step: 0.1
current_temperature: 18.7
temperature: 14
friendly_name: Thermostat Ch Loona
supported_features: 401
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
hvac_action: "off"
preset_mode: eco
hvac_mode: "off"
ema_temp: 18.7
specific_states:
  is_on: false
  last_central_mode: null
  last_update_datetime: "2026-01-08T09:51:02.406034+01:00"
  ext_current_temperature: 10.2
  last_temperature_datetime: "2026-01-08T09:37:37.217500+01:00"
  last_ext_temperature_datetime: "2026-01-08T09:46:19.845433+01:00"
  is_device_active: false
  device_actives: []
  nb_device_actives: 0
  ema_temp: 18.7
  temperature_slope: 0
  hvac_off_reason: hvac_off_manual
  total_energy: 0
  last_change_time_from_vtherm: "2026-01-08T09:51:02.404629+01:00"
  messages:
    - hvac_off_manual
  is_sleeping: false
  is_locked: false
  is_recalculate_scheduled: false
configuration:
  ac_mode: false
  type: over_switch
  is_controlled_by_central_mode: false
  target_temperature_step: 0.1
  minimal_activation_delay_sec: 10
  minimal_deactivation_delay_sec: 0
  timezone: Europe/Paris
  temperature_unit: °C
  is_used_by_central_boiler: false
  max_on_percent: null
  have_valve_regulation: false
  cycle_min: 5
preset_temperatures:
  frost_temp: 10
  eco_temp: 14
  boost_temp: 22
  comfort_temp: 14
  frost_away_temp: 0
  eco_away_temp: 0
  boost_away_temp: 0
  comfort_away_temp: 0
current_state:
  hvac_mode: "off"
  target_temperature: 14
  preset: eco
requested_state:
  hvac_mode: "off"
  target_temperature: 14
  preset: eco
is_presence_configured: false
is_power_configured: false
power_manager:
  device_power: 1
  mean_cycle_power: 0
is_motion_configured: false
is_window_configured: true
is_window_auto_configured: false
window_manager:
  window_state: "off"
  window_auto_state: unavailable
  window_action: window_turn_off
  is_window_bypass: false
  window_sensor_entity_id: binary_sensor.grande_fenetre_ch_loona_contact
  window_delay_sec: 180
  window_off_delay_sec: 30
  window_auto_open_threshold: null
  window_auto_close_threshold: null
  window_auto_max_duration: null
is_safety_configured: true
safety_manager:
  safety_state: "off"
  safety_delay_min: 60
  safety_min_on_percent: 0.5
  safety_default_on_percent: 0.1
is_lock_configured: true
lock_manager:
  is_locked: false
  lock_users: true
  lock_automations: true
  lock_code: false
is_over_switch: true
on_percent: 0
power_percent: 0
vtherm_over_switch:
  is_inversed: false
  keep_alive_sec: 0
  underlying_entities:
    - switch.flush_1_relay_4
  on_percent: 0
  power_percent: 0
  on_time_sec: 0
  off_time_sec: 300
  function: tpi
  tpi_coef_int: 0.6
  tpi_coef_ext: 0.01
  tpi_threshold_low: 0
  tpi_threshold_high: 0
  minimal_activation_delay: 10
  minimal_deactivation_delay: 0
  calculated_on_percent: 0
  vswitch_on_commands: []
  vswitch_off_commands: []

Voici ce qui ne va pas:

min_temp: -10    <---- il faut mettre la consigne minimum. En général, on est sur 7°
max_temp: 45    <---- la consigne maximale

Tout le reste à l’air bon. On retrouve bien la consigne à 14°: temperature: 14

Ca n’explique absolument pas les courbes bizarres que tu as.


C’est incompréhensible. Tu me poses une colle.

Supprime ce que tu as mis dans « Dernière vue du capteur ». Pas besoin pour le fonctionnement de base, essaye sans mais je ne vois pas trop le rapport.

Regarde dans les logs, je ne vois que ça qui pourrait nous éclairer. Paramètres / Systeme / Journaux. Download et cherche ERROR Versatile Thermostat -

J’ai remis à 7 le min temp.
J’ai enlevé la dernière vue du capteur (sur tous les thermostats)
J’ai supprimé le nouveau thermostat que j’avais créé et j’ai relancé le thermostat d’origine.
J’ai également activé le débug sur versatile thermostat… je ne sais pas si ça sert à quelque chose :sweat_smile:
Je n’ai pas trouvé d’ERROR versatile thermostat dans les journaux.

Du coup, la température dans la chambre était à 17°C j’ai monté la consigne à 19°C, on va voir ce que ca donne, pour le moment j’ai ça :

Je vous tiens au courant en pistant le moment ou le radiateur se mets en route alors que la consigne est déjà atteinte…

C’est déjà bien mieux. Ça ressemble au moins à une courbe de régulation par TPI

C’est effectivement beaucoup mieux, mais il continue un peu d’allumer le radiateur alors que la consigne est dépassée… cela dit c’est peut etre normal car l température est repassé dessous

Sinon voila ce que j’ai trouvé dans les journaux :


Cette erreur provient d'une intégration personnalisée

Enregistreur: custom_components.versatile_thermostat.feature_safety_manager
Source: custom_components/versatile_thermostat/feature_safety_manager.py:217
intégration: Versatile Thermostat configuration (documentation, problèmes)
S'est produit pour la première fois: 12:26:11 (8 occurrences)
Dernier enregistrement: 20:53:44

SafetyManager-Thermostat Ch Loona - End of safety mode.
SafetyManager-Thermostat Entrée - End of safety mode.
SafetyManager-Thermostat SàM - End of safety mode.
SafetyManager-Thermostat Cuisine - End of safety mode.
SafetyManager-Thermostat Eric - End of safety mode.


2026-01-02 19:49:56.263 WARNING (MainThread) [custom_components.versatile_thermostat.prop_algorithm] Thermostat Ch Loona - Proportional algorithm: calculation is not possible cause target_temp (14.0) or current_temp (None) is null. Heating/cooling will be disabled. This could be normal at startup
2026-01-02 19:49:56.264 WARNING (MainThread) [custom_components.versatile_thermostat.prop_algorithm] Thermostat Ch Loona - Proportional algorithm: calculation is not possible cause target_temp (14.0) or current_temp (None) is null. Heating/cooling will be disabled. This could be normal at startup

Hello @Eric_JAMES,

Oui c’est normal. Certainement que ton coef_int du TPI est encore un peu fort car ça oscille un peu. Essaye de le baisser encore un peu.

Cette erreur provient d’une intégration personnalisée
Enregistreur: custom_components.versatile_thermostat.feature_safety_manager
Source: custom_components/versatile_thermostat/feature_safety_manager.py:217
intégration: Versatile Thermostat configuration (documentation, problèmes)
S’est produit pour la première fois: 12:26:11 (8 occurrences)
Dernier enregistrement: 20:53:44

Dommage on ne voit pas l’erreur. Je suppose que le message est devant celui-ci. Mais laisse tomber il n’y a rien de spécial ligne 217.

[custom_components.versatile_thermostat.prop_algorithm] Thermostat Ch Loona - Proportional algorithm: calculation is not possible cause target_temp (14.0) or current_temp (None) is null. Heating/cooling will be disabled. This could be normal at startu

C’est des erreurs normales au démarrage, il ne faut en tenir compte que si ça arrive après la phase de démarrage.

Bon j’ai laissé faire pendant quelques jours, c’était pas trop mal au tout début puis ça s’est remis à dériver…

Aurais tu une astuce pour régler ou contourner le problème ?

En regardant les journaux j’ai trouvé des choses, mais comme je n’y comprends pas grand chose je ne sais pas quoi te montrer, voila quelques extraits en espérant que ça aide :

image
Cette erreur provient d’une intégration personnalisée

Enregistreur: custom_components.versatile_thermostat.feature_safety_manager
Source: custom_components/versatile_thermostat/feature_safety_manager.py:217
intégration: Versatile Thermostat configuration (documentation, problèmes)
S’est produit pour la première fois: 9 janvier 2026 à 12:26:11 (35 occurrences)
Dernier enregistrement: 08:05:13

SafetyManager-Thermostat Ch Loona - End of safety mode.
SafetyManager-Thermostat Entrée - End of safety mode.
SafetyManager-Thermostat SàM - End of safety mode.
SafetyManager-Thermostat Cuisine - End of safety mode.
SafetyManager-Thermostat Eric - End of safety mode.

2026-01-10 03:17:17.554 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_switch] VersatileThermostat-Thermostat Ch Loona - Calling update_custom_attributes: {'hvac_action': <HVACAction.HEATING: 'heating'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'eco', 'ema_temp': 18.82, 'specific_states': {'is_on': True, 'last_central_mode': None, 'last_update_datetime': '2026-01-10T03:17:17.554880+01:00', 'ext_current_temperature': 6.8, 'last_temperature_datetime': '2026-01-10T02:20:13.516461+01:00', 'last_ext_temperature_datetime': '2026-01-10T01:54:23.612926+01:00', 'is_device_active': True, 'device_actives': ['switch.flush_1_relay_4'], 'nb_device_actives': 1, 'ema_temp': 18.82, 'temperature_slope': 0, 'hvac_off_reason': None, 'total_energy': 5.57, 'last_change_time_from_vtherm': '2026-01-09T20:18:17.098956+01:00', 'messages': [], 'is_sleeping': False, 'is_locked': False, 'is_recalculate_scheduled': False}, 'configuration': {'ac_mode': False, 'type': 'over_switch', 'is_controlled_by_central_mode': False, 'target_temperature_step': 0.1, 'minimal_activation_delay_sec': 10, 'minimal_deactivation_delay_sec': 0, 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_used_by_central_boiler': False, 'max_on_percent': None, 'have_valve_regulation': False, 'cycle_min': 5.0}, 'preset_temperatures': {'frost_temp': 10.0, 'eco_temp': 19.0, 'boost_temp': 22.0, 'comfort_temp': 21.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0}, 'current_state': {'hvac_mode': 'heat', 'target_temperature': 19.0, 'preset': 'eco'}, 'requested_state': {'hvac_mode': 'heat', 'target_temperature': 19.0, 'preset': 'eco'}, 'is_presence_configured': False, 'is_power_configured': False, 'power_manager': {'device_power': 1.0, 'mean_cycle_power': 0.2}, 'is_motion_configured': False, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_manager': {'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.grande_fenetre_ch_loona_contact', 'window_delay_sec': 180, 'window_off_delay_sec': 30, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None}, 'is_safety_configured': True, 'safety_manager': {'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1}, 'is_lock_configured': True, 'lock_manager': {'is_locked': False, 'lock_users': True, 'lock_automations': True, 'lock_code': False}, 'is_over_switch': True, 'on_percent': 0.18, 'power_percent': 18.0, 'vtherm_over_switch': {'is_inversed': False, 'keep_alive_sec': 0, 'underlying_entities': ['switch.flush_1_relay_4'], 'on_percent': 0.18, 'power_percent': 18.0, 'on_time_sec': 54, 'off_time_sec': 245, 'function': 'tpi', 'tpi_coef_int': 0.6, 'tpi_coef_ext': 0.01, 'tpi_threshold_low': 0.0, 'tpi_threshold_high': 0.0, 'minimal_activation_delay': 10, 'minimal_deactivation_delay': 0, 'calculated_on_percent': 0.18, 'vswitch_on_commands': [], 'vswitch_off_commands': []}}

2026-01-10 03:19:26.540 INFO (MainThread) [custom_components.versatile_thermostat.base_thermostat] --------------------> NEW EVENT: VersatileThermostat-Thermostat Ch Loona - Periodical control cycle started --------------------------------------------------------------
2026-01-10 03:19:26.540 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Thermostat Ch Loona - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=eco, force=False
2026-01-10 03:19:26.540 DEBUG (MainThread) [custom_components.versatile_thermostat.open_window_algorithm] We are already initialized slope=0.0 last_temp=18.82
2026-01-10 03:19:26.540 DEBUG (MainThread) [custom_components.versatile_thermostat.open_window_algorithm] delta_t=59.217 delta_temp=0.000 new_slope=0.000 last_slope=0.0 slope=0.000 nb_point=161
2026-01-10 03:19:26.540 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Thermostat Ch Loona - Window auto is on, check the alert. last slope is 0.000
2026-01-10 03:19:26.540 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Thermostat Ch Loona - Window auto event is ignored because bypass is ON or window auto detection is disabled
2026-01-10 03:19:26.541 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Thermostat Ch Loona - checking safety delta_temp=59.2 delta_ext_temp=85.0 mod_cond=True temp_cond=True climate_cond=False switch_cond=False

Sur ce dernier extrait j’ai regardé le journal au moment d’une mise en route du radiateur à 6h25’57’’ consigne à 13°C et température de la chambre à 16°C… :

2026-01-13 06:25:57.943 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_switch] 
2026-01-13 06:25:57.943 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_switch] --------------------> NEW EVENT: VersatileThermostat-Thermostat Ch Loona - Underlying switch state changed from off to on --------------------------------------------------------------
2026-01-13 06:25:57.943 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_switch] VersatileThermostat-Thermostat Ch Loona - Calling update_custom_attributes: {'hvac_action': <HVACAction.HEATING: 'heating'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'comfort', 'ema_temp': 15.95, 'specific_states': {'is_on': True, 'last_central_mode': None, 'last_update_datetime': '2026-01-13T06:25:57.943569+01:00', 'ext_current_temperature': 5.8, 'last_temperature_datetime': '2026-01-13T06:06:53.241238+01:00', 'last_ext_temperature_datetime': '2026-01-13T06:04:57.174475+01:00', 'is_device_active': True, 'device_actives': ['switch.flush_1_relay_4'], 'nb_device_actives': 1, 'ema_temp': 15.95, 'temperature_slope': 0.02, 'hvac_off_reason': None, 'total_energy': 0, 'last_change_time_from_vtherm': '2026-01-13T06:00:00.011591+01:00', 'messages': [], 'is_sleeping': False, 'is_locked': False, 'is_recalculate_scheduled': False}, 'configuration': {'ac_mode': False, 'type': 'over_switch', 'is_controlled_by_central_mode': False, 'target_temperature_step': 0.1, 'minimal_activation_delay_sec': 10, 'minimal_deactivation_delay_sec': 0, 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_used_by_central_boiler': False, 'max_on_percent': None, 'have_valve_regulation': False, 'cycle_min': 5.0}, 'preset_temperatures': {'frost_temp': 10.0, 'eco_temp': 13.0, 'boost_temp': 22.0, 'comfort_temp': 13.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0}, 'current_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'requested_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'is_presence_configured': False, 'is_power_configured': False, 'power_manager': {'device_power': 1.0, 'mean_cycle_power': 0.0}, 'is_motion_configured': False, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_manager': {'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.grande_fenetre_ch_loona_contact', 'window_delay_sec': 180, 'window_off_delay_sec': 30, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None}, 'is_safety_configured': True, 'safety_manager': {'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1}, 'is_lock_configured': True, 'lock_manager': {'is_locked': False, 'lock_users': True, 'lock_automations': True, 'lock_code': False}, 'is_over_switch': True, 'on_percent': 0, 'power_percent': 0, 'vtherm_over_switch': {'is_inversed': False, 'keep_alive_sec': 0, 'underlying_entities': ['switch.flush_1_relay_4'], 'on_percent': 0, 'power_percent': 0, 'on_time_sec': 0, 'off_time_sec': 300, 'function': 'tpi', 'tpi_coef_int': 0.4, 'tpi_coef_ext': 0.01, 'tpi_threshold_low': 0.0, 'tpi_threshold_high': 0.0, 'minimal_activation_delay': 10, 'minimal_deactivation_delay': 0, 'calculated_on_percent': 0, 'vswitch_on_commands': [], 'vswitch_off_commands': []}}
2026-01-13 06:29:14.915 INFO (MainThread) [custom_components.versatile_thermostat.base_thermostat] 
2026-01-13 06:29:14.915 INFO (MainThread) [custom_components.versatile_thermostat.base_thermostat] --------------------> NEW EVENT: VersatileThermostat-Thermostat Ch Loona - Periodical control cycle started --------------------------------------------------------------
2026-01-13 06:29:14.915 DEBUG (MainThread) [custom_components.versatile_thermostat.base_thermostat] VersatileThermostat-Thermostat Ch Loona - Checking new cycle. hvac_mode=heat, safety_state=off, preset_mode=comfort, force=False
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Thermostat Ch Loona - Window auto is on, check the alert. last slope is 0.020
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_window_manager] WindowManager-Thermostat Ch Loona - Window auto event is ignored because bypass is ON or window auto detection is disabled
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.feature_safety_manager] SafetyManager-Thermostat Ch Loona - checking safety delta_temp=22.4 delta_ext_temp=24.3 mod_cond=True temp_cond=False climate_cond=False switch_cond=False
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Thermostat Ch Loona-switch.flush_1_relay_4 - Starting new cycle hvac_mode=heat on_time_sec=0 off_time_sec=300 force=False
2026-01-13 06:29:14.916 INFO (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Thermostat Ch Loona-switch.flush_1_relay_4 - stop heating (2) for 5 min 0 sec
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Thermostat Ch Loona-switch.flush_1_relay_4 - Stopping underlying entity switch.flush_1_relay_4
2026-01-13 06:29:14.916 DEBUG (MainThread) [custom_components.versatile_thermostat.underlyings] VersatileThermostat-Thermostat Ch Loona-switch.flush_1_relay_4 - Sending command turn_off with data={'entity_id': 'switch.flush_1_relay_4'}
2026-01-13 06:29:14.918 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_switch] VersatileThermostat-Thermostat Ch Loona - Calling update_custom_attributes: {'hvac_action': <HVACAction.HEATING: 'heating'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'comfort', 'ema_temp': 15.95, 'specific_states': {'is_on': True, 'last_central_mode': None, 'last_update_datetime': '2026-01-13T06:29:14.917736+01:00', 'ext_current_temperature': 5.8, 'last_temperature_datetime': '2026-01-13T06:06:53.241238+01:00', 'last_ext_temperature_datetime': '2026-01-13T06:04:57.174475+01:00', 'is_device_active': True, 'device_actives': ['switch.flush_1_relay_4'], 'nb_device_actives': 1, 'ema_temp': 15.95, 'temperature_slope': 0.02, 'hvac_off_reason': None, 'total_energy': 0, 'last_change_time_from_vtherm': '2026-01-13T06:00:00.011591+01:00', 'messages': [], 'is_sleeping': False, 'is_locked': False, 'is_recalculate_scheduled': False}, 'configuration': {'ac_mode': False, 'type': 'over_switch', 'is_controlled_by_central_mode': False, 'target_temperature_step': 0.1, 'minimal_activation_delay_sec': 10, 'minimal_deactivation_delay_sec': 0, 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_used_by_central_boiler': False, 'max_on_percent': None, 'have_valve_regulation': False, 'cycle_min': 5.0}, 'preset_temperatures': {'frost_temp': 10.0, 'eco_temp': 13.0, 'boost_temp': 22.0, 'comfort_temp': 13.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0}, 'current_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'requested_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'is_presence_configured': False, 'is_power_configured': False, 'power_manager': {'device_power': 1.0, 'mean_cycle_power': 0.0}, 'is_motion_configured': False, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_manager': {'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.grande_fenetre_ch_loona_contact', 'window_delay_sec': 180, 'window_off_delay_sec': 30, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None}, 'is_safety_configured': True, 'safety_manager': {'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1}, 'is_lock_configured': True, 'lock_manager': {'is_locked': False, 'lock_users': True, 'lock_automations': True, 'lock_code': False}, 'is_over_switch': True, 'on_percent': 0, 'power_percent': 0, 'vtherm_over_switch': {'is_inversed': False, 'keep_alive_sec': 0, 'underlying_entities': ['switch.flush_1_relay_4'], 'on_percent': 0, 'power_percent': 0, 'on_time_sec': 0, 'off_time_sec': 300, 'function': 'tpi', 'tpi_coef_int': 0.4, 'tpi_coef_ext': 0.01, 'tpi_threshold_low': 0.0, 'tpi_threshold_high': 0.0, 'minimal_activation_delay': 10, 'minimal_deactivation_delay': 0, 'calculated_on_percent': 0, 'vswitch_on_commands': [], 'vswitch_off_commands': []}}
2026-01-13 06:29:15.134 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_switch] 
2026-01-13 06:29:15.135 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_switch] --------------------> NEW EVENT: VersatileThermostat-Thermostat Ch Loona - Underlying switch state changed from on to off --------------------------------------------------------------
2026-01-13 06:29:15.135 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_switch] VersatileThermostat-Thermostat Ch Loona - Calling update_custom_attributes: {'hvac_action': <HVACAction.IDLE: 'idle'>, 'hvac_mode': <HVACMode.HEAT: 'heat'>, 'preset_mode': 'comfort', 'ema_temp': 15.95, 'specific_states': {'is_on': True, 'last_central_mode': None, 'last_update_datetime': '2026-01-13T06:29:15.135319+01:00', 'ext_current_temperature': 5.8, 'last_temperature_datetime': '2026-01-13T06:06:53.241238+01:00', 'last_ext_temperature_datetime': '2026-01-13T06:04:57.174475+01:00', 'is_device_active': False, 'device_actives': [], 'nb_device_actives': 0, 'ema_temp': 15.95, 'temperature_slope': 0.02, 'hvac_off_reason': None, 'total_energy': 0, 'last_change_time_from_vtherm': '2026-01-13T06:00:00.011591+01:00', 'messages': [], 'is_sleeping': False, 'is_locked': False, 'is_recalculate_scheduled': False}, 'configuration': {'ac_mode': False, 'type': 'over_switch', 'is_controlled_by_central_mode': False, 'target_temperature_step': 0.1, 'minimal_activation_delay_sec': 10, 'minimal_deactivation_delay_sec': 0, 'timezone': 'Europe/Paris', 'temperature_unit': <UnitOfTemperature.CELSIUS: '°C'>, 'is_used_by_central_boiler': False, 'max_on_percent': None, 'have_valve_regulation': False, 'cycle_min': 5.0}, 'preset_temperatures': {'frost_temp': 10.0, 'eco_temp': 13.0, 'boost_temp': 22.0, 'comfort_temp': 13.0, 'frost_away_temp': 0, 'eco_away_temp': 0, 'boost_away_temp': 0, 'comfort_away_temp': 0}, 'current_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'requested_state': {'hvac_mode': 'heat', 'target_temperature': 13.0, 'preset': 'comfort'}, 'is_presence_configured': False, 'is_power_configured': False, 'power_manager': {'device_power': 1.0, 'mean_cycle_power': 0.0}, 'is_motion_configured': False, 'is_window_configured': True, 'is_window_auto_configured': False, 'window_manager': {'window_state': 'off', 'window_auto_state': 'unavailable', 'window_action': 'window_turn_off', 'is_window_bypass': False, 'window_sensor_entity_id': 'binary_sensor.grande_fenetre_ch_loona_contact', 'window_delay_sec': 180, 'window_off_delay_sec': 30, 'window_auto_open_threshold': None, 'window_auto_close_threshold': None, 'window_auto_max_duration': None}, 'is_safety_configured': True, 'safety_manager': {'safety_state': 'off', 'safety_delay_min': 60, 'safety_min_on_percent': 0.5, 'safety_default_on_percent': 0.1}, 'is_lock_configured': True, 'lock_manager': {'is_locked': False, 'lock_users': True, 'lock_automations': True, 'lock_code': False}, 'is_over_switch': True, 'on_percent': 0, 'power_percent': 0, 'vtherm_over_switch': {'is_inversed': False, 'keep_alive_sec': 0, 'underlying_entities': ['switch.flush_1_relay_4'], 'on_percent': 0, 'power_percent': 0, 'on_time_sec': 0, 'off_time_sec': 300, 'function': 'tpi', 'tpi_coef_int': 0.4, 'tpi_coef_ext': 0.01, 'tpi_threshold_low': 0.0, 'tpi_threshold_high': 0.0, 'minimal_activation_delay': 10, 'minimal_deactivation_delay': 0, 'calculated_on_percent': 0, 'vswitch_on_commands': [], 'vswitch_off_commands': []}}
2026-01-13 06:29:27.449 INFO (MainThread) [custom_components.versatile_thermostat.base_thermostat]