Versatile Thermostat (VTherm) - aide et support

Bonsoir, et désolé si je ne suis pas dans le bon fil…

Dans la documentation (Configuration de climate over IR Remote - Versatile Thermostat), il est fait référence à un lien article de blog suivant qui renvoie sur une page avec une erreur 404.

J’en profite pour vous remercier pour la réalisation du site documentation :wink:

Bonne fin de soirée

Hello, Oui tu peux sans soucis

Hello, le lien fonctionne chez moi

Oui, j’avais contacté l’auteur par mail hier soir, et il m’a répondu ce matin que son site avait été piraté et qu’il essaierait de remettre les éléments en place, ce qu’il a donc bien fait apparemment :wink:

Bonne journée

Bonjour,

Gros plantage après avoir installé la version 9.3.1 hier

Tous les vterm sont passé en mode manuel (avec un point d’exclamation a gauche)

Plus aucune actions sur les vannes : des vannes sont restées ouvertes toute la nuit. d’autre ne se sont pas ouvertes du tout.

J’ai mis ma sauvegarde d’avant hier (avec vterm V9.3.0) et tout est rentré dans l’ordre.

Bonjour,

Comment faire pour que le chauffage s’arrête une fois la consigneatteinte, par exemple j’ai une consigne à 18.5, mais à 18.6 il continue de chauffer à 24% du temps. J’ai essayé de jouer avec les seuils haut et bas mais sans trop de succès

Salut,
J’avais la configuration qui fonctionnait bien via les TRV et over_climate. Mais aujourd’hui, j’ai souhaité poussé la température manuellement, et je me rends compte que les TRV ne réponde plus.
Versatile en V9.3.1
HA : Core
2026.3.4
Supervisor
2026.03.2
Operating System
17.1
La tête thermostatique Modèle Zigbee
TS0601
_TZE200_b6wax7g0
Modèle
BRT-100-TRV
Thermostatic radiator valve (Moes)
Voici par exemple la config :

hvac_modes:
  - heat
min_temp: 7
max_temp: 35
target_temp_step: 0.1
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
current_temperature: 16.1
temperature: 27.1
hvac_action: idle
preset_mode: none
hvac_mode: heat
ema_temp: 16
is_ready: true
specific_states:
  is_initialized: true
  is_on: true
  last_central_mode: null
  last_update_datetime: "2026-03-30T17:30:23.829092+02:00"
  ext_current_temperature: 10.5
  last_temperature_datetime: "2026-03-30T17:28:31.310623+02:00"
  last_ext_temperature_datetime: "2026-03-30T17:09:13.780912+02:00"
  should_device_be_active: false
  is_device_active: false
  device_actives: []
  nb_device_actives: 0
  ema_temp: 16
  temperature_slope: 0.14
  hvac_off_reason: null
  total_energy: 197.45
  last_change_time_from_vtherm: "2026-03-30T17:30:23.827958+02:00"
  is_sleeping: false
  is_locked: false
  is_recalculate_scheduled: false
  not_initialized_entities: []
  messages: []
configuration:
  ac_mode: false
  type: over_climate
  is_controlled_by_central_mode: false
  target_temperature_step: 0.1
  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: 7
  eco_temp: 15
  boost_temp: 22
  comfort_temp: 19
  frost_away_temp: 0
  eco_away_temp: 0
  boost_away_temp: 0
  comfort_away_temp: 0
current_state:
  hvac_mode: heat
  target_temperature: 27.100000000000016
  preset: none
requested_state:
  hvac_mode: heat
  target_temperature: 27.100000000000016
  preset: none
is_presence_configured: false
is_power_configured: false
power_manager:
  device_power: 1
  mean_cycle_power: 0
is_motion_configured: false
is_window_configured: false
is_window_auto_configured: false
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
  auto_relock_sec: 30
timed_preset_manager:
  is_active: false
  preset: null
  original_preset: null
  end_time: null
  remaining_time_min: 0
is_heating_failure_detection_configured: false
is_repair_incorrect_state_configured: false
is_auto_start_stop_configured: false
fan_mode: null
fan_modes: []
is_over_climate: true
regulation_accumulated_error: 0
regulated_target_temperature: 27
vtherm_over_climate:
  start_hvac_action_date: null
  last_mean_power_cycle: 0
  underlying_entities:
    - climate.trv_office
  is_regulated: false
  auto_fan_mode: auto_fan_high
  current_auto_fan_mode: auto_fan_high
  auto_activated_fan_mode: null
  auto_deactivated_fan_mode: null
  follow_underlying_temp_change: false
  auto_regulation_use_device_temp: false
friendly_name: Thermostat Office
supported_features: 401
{
    "battery": 64,
    "boost_heating": "OFF",
    "boost_heating_countdown": 0,
    "boost_heating_countdown_time_set": 300,
    "child_lock": "UNLOCK",
    "current_heating_setpoint": 17,
    "last_seen": "2026-03-30T16:14:19+02:00",
    "linkquality": 224,
    "local_temperature": 17,
    "local_temperature_calibration": 0,
    "max_temperature": 19,
    "min_temperature": 7,
    "position": 0,
    "preset": "manual",
    "programming_mode": "06:00/20°C  11:30/21°C  13:30/22°C  17:30/23°C  06:00/24°C  12:00/23°C  14:30/22°C  17:30/21°C  06:00/19°C  12:30/20°C  14:30/21°C  18:30/20°C",
    "running_state": "idle",
    "system_mode": "heat",
    "valve_state": "CLOSED",
    "window": "CLOSED"
}

On peut voir que malgré la température consigne poussée à fond, le trv reste fermé.

Hello

Pour que des personnes puissent t apporter assistance, il va falloir un peu plus d’informations :laughing:

Nous n’avons même pas la version que tu utilises

Hello @jcr,

La 9.3.1 fonctionne bien chez moi et comme il y a eu 5300 download, je pense qu’elle marche aussi chez les autres.
Tu n’aurais pris les logs des fois avant de restaurer ?

Tu as essayer de remettre juste la 9.3.0 sans restaurer tout HA ?

Hello @Nico61 ,

Comme tu parles de 24% de puissance, je suppose que tu as un VTherm qui a un algo TPI. Donc si ça surchauffe, il faut que tu règles tes coefs du TPI ou tu lances une phase d’apprentissage avec l’auto-TPI.

Après, 0,1° d’écart c’est normal. Tu ne feras pas mieux. Le principe du TPI c’est de garder un fond de chauffe pour maintenir la température stable (pour équilibrer les pertes en fait). 24% c’est tout à fait normal avec le froid et le vent qu’il fait. Il ne va pas s’éteindre à priori.
Mais si tu nous en dis plus (type de Vtherm, type de chauffage, courbes de régulation, configuration) on sera plus pertinent dans la réponse.

Cf. https://www.versatile-thermostat.org/fr/docs/feature-autotpi/
et Les différents algorithmes utilisés - Versatile Thermostat

Hello @lilp,

Je ne vois pas de vanne dans la conf du VTherm. Donc je suppose que c’est le climate.trv_office qui pilote les vannes. Avec le type over_climate simple VTherm se contente d’envoyer la consigne au climate sous-jacent.
La temperature envoyée est celle-là: regulated_target_temperature: 27
On a bien l’impression que ça n’a pas été reçu par le climate puisqu’il est resté à current_heating_setpoint: 17
Je vois aussi ça qui est intriguant: "max_temperature": 19,. C’est pas beaucoup 19° comme température max. Est-ce que tu n’aurais pas une erreur dans les logs qui dit que 27 est supérieur à 19 ?

J’ai activé les debug log de versatile, et voici ce que j’ai

Logger: homeassistant.helpers.event
Source: helpers/template/__init__.py:463
First occurred: March 29, 2026 at 6:09:30 PM (96 occurrences)
Last logged: 8:06:12 PM

Error while processing template: Template<template=(ha-state-icon { {% if states('sensor.office_power') | float > 150 %} animation: clip 2s linear infinite; {% else %} animation: none; {% endif %} } @keyframes clip { 0% { clip-path: inset(50% 0 0 0); } 100% { clip-path: inset(0 0 0 0); } }) renders=102>
Error while processing template: Template<template=(💡{{ states("light.kitchen") }} {% if is_state('light.kitchen', 'unavailable') %} {% elif is_state('light.kitchen', 'off') %} {% else %} - {{ (states['light.kitchen'].attributes.brightness / 2.54) | round(0) }}% {% endif %}) renders=118>
Error while processing template: Template<template=(ha-state-icon { {% if states('sensor.prise_living_power ') | float > 0 %} animation: spin 4s linear infinite; } @keyframes spin { from {transform: rotate(0deg);} to {transform: rotate(360deg);} } {% else %} animation: none; {% endif %} }) renders=106>
Error while processing template: Template<template=(ha-state-icon { {% if states('sensor.office_power') | float > 150 %} animation: clip 2s linear infinite; {% else %} animation: none; {% endif %} } @keyframes clip { 0% { clip-path: inset(50% 0 0 0); } 100% { clip-path: inset(0 0 0 0); } }) renders=106>
Error while processing template: Template<template=(💡{{ states("light.kitchen") }} {% if is_state('light.kitchen', 'unavailable') %} {% elif is_state('light.kitchen', 'off') %} {% else %} - {{ (states['light.kitchen'].attributes.brightness / 2.54) | round(0) }}% {% endif %}) renders=122>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template/__init__.py", line 461, in async_render
    render_result = render_with_context(self.template, compiled, **kwargs)
  File "/usr/src/homeassistant/homeassistant/helpers/template/context.py", line 45, in render_with_context
    return template.render(**kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/jinja2/environment.py", line 1295, in render
    self.environment.handle_exception()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/local/lib/python3.14/site-packages/jinja2/environment.py", line 942, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 3, in top-level template code
TypeError: argument of type 'NoneType' is not a container or iterable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template/__init__.py", line 579, in async_render_to_info
    render_info._result = self.async_render(  # noqa: SLF001
                          ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
        variables, strict=strict, log_fn=log_fn, **kwargs
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/helpers/template/__init__.py", line 463, in async_render
    raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: TypeError: argument of type 'NoneType' is not a container or iterable

Hello, ça c’est un problème dans un template. Rien à voir avec VTherm

J’ai ce début de debug

2026-03-29 18:09:14.834 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_salon
2026-03-29 18:09:14.834 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_salon
2026-03-29 18:09:14.834 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_salon

  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     02026-03-29 18:09:14.847 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office

  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     02026-03-29 18:09:14.847 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-29 18:09:14.847 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-29 18:09:14.847 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office

  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     02026-03-29 18:09:14.855 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_living
2026-03-29 18:09:14.855 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_living
2026-03-29 18:09:14.855 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_living
2026-03-29 18:09:14.855 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_living

100   117    0   117    0     0    742      0 --:--:--
100   117    0   117    0     0    478      0 --:--:-- --:--:-- --:--:--  ---:--:--:--:-- -    7 45544

2026-03-29 18:09:14.866 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_dining_room
2026-03-29 18:09:14.866 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_dining_room
2026-03-29 18:09:14.866 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_dining_room
2026-03-29 18:09:14.866 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_dining_room
2026-03-29 18:09:14.871 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_couloir
2026-03-29 18:09:14.871 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_couloir
2026-03-29 18:09:14.877 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_couloir
2026-03-29 18:09:14.877 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_couloir
2026-03-29 18:09:14.888 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_masterbedroom
2026-03-29 18:09:14.888 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_masterbedroom
2026-03-29 18:09:14.888 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_masterbedroom
2026-03-29 18:09:14.888 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_masterbedroom

Puis

-03-30 17:21:12.828 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-30 17:21:12.828 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-30 17:21:12.830 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-30 17:21:12.830 ERROR (MainThread) [custom_components.versatile_thermostat.underlying_state_manager] UnderlyingStateManager - Requested state for unknown entity_id: climate.trv_office
2026-03-30 17:21:30.167 ERROR (MainThread) [frontend.js.modern.202603121] Uncaught error from Chrome 146.0.0.0 on Windows 10
Error: Failed to e 

Et

2026-03-30 19:55:59.796 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.1.254 (192.168.1.254). Requested URL: '/api/websocket'. (None)
2026-03-30 19:59:27.842 ERROR (MainThread) [homeassistant.components.plex.server] Could not connect to Plex server: LilP'Plex (HTTPSConnectionPool(host='192-168-1-30.37ff38c821254fe4b638b9526c6ef64c.plex.direct', port=32400): Max retries exceeded with url: /clients (Caused by NameResolutionError("HTTPSConnection(host='192-168-1-30.37ff38c821254fe4b638b9526c6ef64c.plex.direct', port=32400): Failed to resolve '192-168-1-30.37ff38c821254fe4b638b9526c6ef64c.plex.direct' ([Errno -3] Try again)")))
2026-03-30 20:00:00.094 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].condition }}'
2026-03-30 20:00:00.095 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.weather_forecast_jour_maison: UndefinedError: None has no element 0
2026-03-30 20:00:00.095 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].temperature | float(0) }}'
2026-03-30 20:00:00.095 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.temp_max_maison: UndefinedError: None has no element 0
2026-03-30 20:00:00.095 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].templow | float(0) }}'
2026-03-30 20:00:00.095 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.temp_min_maison: UndefinedError: None has no element 0
2026-03-30 20:00:00.242 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].condition }}'
2026-03-30 20:00:00.242 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.weather_forecast_jour_maison: UndefinedError: None has no element 0
2026-03-30 20:00:00.243 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].temperature | float(0) }}'
2026-03-30 20:00:00.243 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.temp_max_maison: UndefinedError: None has no element 0
2026-03-30 20:00:00.243 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: None has no element 0 when rendering '{{ trigger.event.data.forecast[0].templow | float(0) }}'
2026-03-30 20:00:00.243 ERROR (MainThread) [homeassistant.helpers.sensor] Error rendering state template for sensor.temp_min_maison: UndefinedError: None has no element 0
2026-03-30 20:02:45.456 WARNING (Recorder) [homeassistant.components.recorder.db_schema] State attributes for sensor.plex_recently_added_plex_recently_added exceed maximum size of 16384 bytes. This can cause database performance issues; Attributes will not be stored
2026-03-30 20:05:04.258 ERROR (MainThread) [homeassistant.components.websocket_api.commands] Unable to get manifest for integration blitzortung: Integration 'blitzortung' not found.
2026-03-30 20:05:35.004 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:05:35.004 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - period (3.3) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:05:35.004 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - do_set_temperature_later call
2026-03-30 20:05:35.327 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:05:35.328 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - period (5.0) min is >= 5 min -> auto-regulation is available
2026-03-30 20:05:35.328 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - regulation calculation will be done
2026-03-30 20:05:35.328 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - usage regulation_step: 0.50 
2026-03-30 20:05:35.328 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - usage time_delta: 1.00 
2026-03-30 20:05:35.328 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 0.10 accumulated_error: 20.00 (overheat protection True and delta 1.00) offset: 1.03 offset_ext: 0.92 target_tem: 19.0 regulatedTemp: 20.9
2026-03-30 20:05:35.328 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - Regulated temp have changed to 21.0. Resend it to underlyings
2026-03-30 20:05:35.328 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - dtemp (0.0) is < 0.5 -> forget the regulation send for climate.trv_dining_room
2026-03-30 20:05:35.409 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:05:35.409 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - period (5.0) min is >= 5 min -> auto-regulation is available
2026-03-30 20:05:35.409 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - regulation calculation will be done
2026-03-30 20:05:35.409 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - usage regulation_step: 0.50 
2026-03-30 20:05:35.409 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - usage time_delta: 1.00 
2026-03-30 20:05:35.409 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 0.10 accumulated_error: 20.00 (overheat protection True and delta 1.00) offset: 1.03 offset_ext: 0.92 target_tem: 19.0 regulatedTemp: 20.9
2026-03-30 20:05:35.409 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - Regulated temp have changed to 21.0. Resend it to underlyings
2026-03-30 20:05:35.410 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - dtemp (0.0) is < 0.5 -> forget the regulation send for climate.trv_couloir
2026-03-30 20:05:40.800 ERROR (MainThread) [homeassistant.components.websocket_api.commands] Unable to get manifest for integration blitzortung: Integration 'blitzortung' not found.
2026-03-30 20:05:55.005 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:05:55.005 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - period (3.7) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:05:55.005 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - do_set_temperature_later call
2026-03-30 20:0 
2026-03-30 20:06:06.719 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=True
2026-03-30 20:06:06.719 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - regulation calculation will be done
2026-03-30 20:06:06.719 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage regulation_step: 0.50 
2026-03-30 20:06:06.719 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage time_delta: 0.98 
2026-03-30 20:06:06.719 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 2.10 accumulated_error: 0.00 (overheat protection True and delta 0.98) offset: 0.00 offset_ext: 0.00 target_tem: 19.0 regulatedTemp: 19.0
2026-03-30 20:06:06.719 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Regulated temp have changed to 19.0. Resend it to underlyings
2026-03-30 20:06:06.719 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - The device offset temp for regulation is 0.00 - internal temp is 0.00. New target is 19.00
2026-03-30 20:06:06.720 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - incremente_energy incremented energy is 197.45
2026-03-30 20:06:06.720 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - added energy is 0.000 . Total energy is now: 197.450
2026-03-30 20:06:07.950 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=True
2026-03-30 20:06:07.951 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - regulation calculation will be done
2026-03-30 20:06:07.951 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage regulation_step: 0.50 
2026-03-30 20:06:07.951 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage time_delta: 0.00 
2026-03-30 20:06:07.951 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 5.10 accumulated_error: 0.00 (overheat protection True and delta 0.00) offset: 0.00 offset_ext: 0.00 target_tem: 22.0 regulatedTemp: 22.0
2026-03-30 20:06:07.951 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Regulated temp have changed to 22.0. Resend it to underlyings
2026-03-30 20:06:07.951 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - The device offset temp for regulation is 0.00 - internal temp is 0.00. New target is 22.00
2026-03-30 20:06:07.952 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - incremente_energy incremented energy is 197.45
2026-03-30 20:06:07.952 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - added energy is 0.000 . Total energy is now: 197.450
2026-03-30 20:06:09.037 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=True
2026-03-30 20:06:09.037 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - regulation calculation will be done
2026-03-30 20:06:09.037 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage regulation_step: 0.50 
2026-03-30 20:06:09.037 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - usage time_delta: 0.00 
2026-03-30 20:06:09.037 DEBUG (MainThread) [custom_components.versatile_thermostat.pi_algorithm] PITemperatureRegulator - Error: 2.10 accumulated_error: 0.00 (overheat protection True and delta 0.00) offset: 0.00 offset_ext: 0.00 target_tem: 19.0 regulatedTemp: 19.0
2026-03-30 20:06:09.037 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Regulated temp have changed to 19.0. Resend it to underlyings
2026-03-30 20:06:09.037 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - The device offset temp for regulation is 0.00 - internal temp is 0.00. New target is 19.00
2026-03-30 20:06:09.038 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - incremente_energy incremented energy is 197.45
2026-03-30 20:06:09.038 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - added energy is 0.000 . Total energy is now: 197.450
2026-03-30 20:06:12.108 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=(💡{{ states("light.kitchen") }} {% if is_state('light.kitchen', 'unavailable') %} {% elif is_state('light.kitchen', 'off') %} {% else %}
  - {{ (states['light.kitche
homeassistant.exceptions.TemplateError: TemplateSyntaxError: unexpected char "'" at 30
2026-03-30 20:07:52.863 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:07:52.863 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (1.7) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:07:52.863 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:08:12.864 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:08:12.864 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (2.1) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:08:12.865 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:08:32.866 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:08:32.866 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (2.4) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:08:32.866 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:08:52.867 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:08:52.867 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (2.7) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:08:52.868 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:09:12.869 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:12.869 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (3.1) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:12.869 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:09:13.704 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.704 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - period (2.0) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.704 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - do_set_temperature_later call
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - incremente_energy incremented energy is 123.43219551861115
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - added energy is 0.000 . Total energy is now: 123.432
2026-03-30 20:09:13.705 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Living - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.705 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Living - period (5.0) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Living - do_set_temperature_later call
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Living - incremente_energy incremented energy is 139.42967408027772
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Living - added energy is 0.000 . Total energy is now: 139.430
2026-03-30 20:09:13.705 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.705 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - period (3.6) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - do_set_temperature_later call
2026-03-30 20:09:13.705 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - incremente_energy incremented energy is 118.63204284138884
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Dining room - added energy is 0.000 . Total energy is now: 118.632
2026-03-30 20:09:13.706 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.706 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - period (3.6) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - do_set_temperature_later call
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - incremente_energy incremented energy is 116.3044357555555
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Couloir - added energy is 0.000 . Total energy is now: 116.304
2026-03-30 20:09:13.706 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Masterbedroom - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.706 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Masterbedroom - period (4.3) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Masterbedroom - do_set_temperature_later call
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Masterbedroom - incremente_energy incremented energy is 0
2026-03-30 20:09:13.706 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Masterbedroom - added energy is 0.000 . Total energy is now: 0.000
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.prop_algo_tpi] Thermostat Bathroom - Proportional algorithm: VTherm is off. Heating will be disabled
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.prop_algo_tpi] Thermostat Bathroom - heating percent calculated for current_temp 19.3, ext_current_temp 7.7 and target_temp 10.9 is 0.00
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.prop_handler_tpi] Thermostat Bathroom - End of cycle (HVAC_MODE_OFF)
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.prop_algo_tpi] Thermostat Chambre Haut - heating percent calculated for current_temp 15.9, ext_current_temp 7.7 and target_temp 15.0 is 0.00
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.cycle_scheduler] Thermostat Chambre Haut - Current cycle is idle (on_time=0), replacing with new cycle
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.cycle_scheduler] Thermostat Chambre Haut - Cycle cancelled
2026-03-30 20:09:13.707 INFO (MainThread) [custom_components.versatile_thermostat.auto_tpi_manager] Thermostat Chambre Haut - Auto TPI: Previous cycle was interrupted (not completed). Discarding it.
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.auto_tpi_manager] Thermostat Chambre Haut - Auto TPI: Cycle started. On: 0s, Off: 300s (0.0%), Mode: heat
2026-03-30 20:09:13.707 DEBUG (MainThread) [custom_components.versatile_thermostat.auto_tpi_manager] Thermostat Chambre Haut - Auto TPI: Cold factor calc: elapsed_off=61104.5 min, cooling_time=5.0 min, factor=1.00
2026-03-30 20:09:13.708 DEBUG (MainThread) [custom_components.versatile_thermostat.prop_algo_tpi] Thermostat Chambre Eden - heating percent calculated for current_temp 16.0, ext_current_temp 7.7 and target_temp 19.0 is 1.00
2026-03-30 20:09:13.708 DEBUG (MainThread) [custom_components.versatile_thermostat.cycle_scheduler] Thermostat Chambre Eden - Cycle already running (on_time=300s), skipping (force=False). Updating params for next repeat: on_time=300, off_time=0, on_percent=1.00
2026-03-30 20:09:13.708 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:13.708 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - period (3.1) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:13.708 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - do_set_temperature_later call
2026-03-30 20:09:13.708 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - incremente_energy incremented energy is 197.45
2026-03-30 20:09:13.708 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Office - added energy is 0.000 . Total energy is now: 197.450
2026-03-30 20:09:14.999 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - Calling ThermostatClimate._send_regulated_temperature force=False
2026-03-30 20:09:14.999 INFO (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - period (2.0) min is < 5 min -> forget the auto-regulation send
2026-03-30 20:09:14.999 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - do_set_temperature_later call
2026-03-30 20:09:15.000 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - incremente_energy incremented energy is 123.43219551861115
2026-03-30 20:09:15.000 DEBUG (MainThread) [custom_components.versatile_thermostat.thermostat_climate] Thermostat Salon - added energy is 0.000 . Total energy is now: 123.432
  % Total    % Receive

oui algo TPI avec auto TPI, il s’agit d’un chauffage électrique. Je pensais qu’il y avait la possibilité qu’il ne depasse pas ou s’arrete quand la consigne est éteinte. Par exemple cette nuit il s’est mis en route alors que la température était à 18.7 pour une consigne de 18.5.

Salut ^^

Je découvre la possibilité de modifier les températures des presets directement dans la carte, c’est une excellente idée, tout au même endroit c’est bien plus pratique :+1:t2:

Par contre, je ne sais pas si c’est voulu, on peut modifier à souhait ces températures alors que la carte est verrouillée :thinking:

Merci à vous

@+

Cédric

Bonjour.
Tout d’abord un grand merci et félicitations pour cette intégration de qualité.

Petit signalement :
Lorsque la carte est verrouillée il est toujours possible de :

  • modifier la durée du preset temporisé, soit en manuel soit en menu déroulant (suivant option choisie).
  • modifier les températures des preset.

D’autre part j’avais effectué les différentes mises à jour la carte VT UI sans modifier mes 3 cartes.
Il a donc fallu les recréer et passer un bon moment pour y parvenir car outre le choix du nom, du thème, des 2 entités optionnelles, la carte comporte 24 paramètres dont une partie ne concerne que certains types de Vtherm.
Il serait peut-être judicieux, si le type de Vtherm est identifiable à ce niveau (switch, climate ou valve) de n’afficher que les paramètres propres à celui-ci ou alors au moins afficher une info-bulle au niveau de chaque paramètre car lorsque, par exemple, on n’a que des radiateurs électriques, certains paramètres demandent de se plonger dans la doc de la carte et dans celle de VT pour comprendre exactement de quoi on parle et si on doit les activer ou pas.
Évidement en persévérant on y parvient, tout en se cultivant sur les autres types de VT :nerd_face: , mais cette partie est quand même assez laborieuse et risque de décourager certaines futures bonnes volontés.

Merci encore.

Hello @stbitw , @DjangWes

modifier la durée du preset temporisé,

C’est certainement une faille dans le mécanisme de lock. Je vais corriger ça. Temperature and timed preset are updatable even if the card is lock · Issue #169 · jmcollin78/versatile-thermostat-ui-card · GitHub

Merci pour le signalement.

Oui la carte est victime d’un surplus de configurabilité demandé par les utilisateurs. A chaque fois que j’accepte de rendre une option configurable ca ajoute des paramètres et ça devient un peu plus long à configurer. Après comme on voit visuellement ce qui se passe, ça reste gérable pour moi.
Encore 2 mis par un contributeur dans la prochaine version.

Lorsque je refuse les modifs qu’on me demande, il m’arrive de me faire insulter. Y a qu’à lire les posts précédents pour avoir une idée des nombreuses demandes.
Donc je fais au mieux en fonction de mon feeling.

Hello

Je jette une idée en l air, elle est soit attrapée au vol soit elle s écrase au sol.

Ne faudrait il pas scinder en plusieurs cartes au lieu de faire du si..sinon (je caricature). Par exemple une carte pour :

  • Switch
  • Climate
  • Valve