Première installation Versatile thermostat

Bonjour

J’ai installé un module fil pilote Nodon SIN-4 FP 21 sur un radiateur électrique. Le fonctionnement est conforme dans Zigbee2MQTT en utilisant le mode on/off, il passe de HG à Confort

J’ai ensuite ajouté l’integration Versatile Thermostat “Thermostat test JT” et crée un service de type Thermostat sur un switch et suivi la documentation pour le configurer. J’ai deux thermomètres SONOFF : TH1 pour l’interieur et TH2 pour l’exterieur. En équipement à contrôler j’ai mis Pilot wire mode de “Radiateur JT”.et mis en

  • commande d’allumage select_option/option:comfort
  • commande d’extinction select_option/option:frost_protection

J’ai laissé les autres paramètres par défaut et validé

J’ai changé les valeurs des pré-selections, Eco, Confort et Bost

J’ai installé l’integration Scheduler et créer une entité Scheduler nommée Commutateur

J’ai ensuite chargé la carte Versatile Thermostat UI ainsi que Scheduler card et j’ai mis sur mon tableau de bord ces deux cartes. Scheduler card se présente différemment que les images des post précédents. La version indique 0.0.0 est ce bien la bonne ? Je pense néanmoins que les paramètres sont correctes car le thermostat réagit correctement au changement d’état

Mon soucis est que le thermostat indique que le radiateur chauffe alors que la consigne n’est pas atteinte, que la puissance reste à 0 et que le radiateur est en mode HG

Si je clique sur Bost alors le voyant de chauffe ne change pas et une puissance de 100% s’affiche mais le radiateur est toujours en mode HG

Ou la configuration peut elle être incorrecte ?

Voici les attributs de mon climat.th_jt

hvac_modes:
  - heat
  - "off"
min_temp: 7
max_temp: 35
target_temp_step: 0.1
friendly_name: Thermostat Test  JT
supported_features: 401
current_temperature: 21.6
temperature: 24
hvac_action: heating
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
preset_mode: boost
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: false
last_central_mode: null
frost_temp: 7
eco_temp: 16
boost_temp: 24
comfort_temp: 19
frost_away_temp: 0
eco_away_temp: 0
boost_away_temp: 0
comfort_away_temp: 0
target_temperature_step: 0.1
ext_current_temperature: 20.3
ac_mode: false
saved_target_temp: 7
saved_preset_mode: boost
saved_hvac_mode: null
saved_preset_mod_central_modee: boost
saved_hvac_mode_central_mode: null
last_temperature_datetime: "2025-10-01T14:50:43.042744+02:00"
last_ext_temperature_datetime: "2025-10-01T14:50:43.042744+02:00"
minimal_activation_delay_sec: 10
minimal_deactivation_delay_sec: 0
total_energy: 0.42
last_update_datetime: "2025-10-01T14:50:43.047030+02:00"
timezone: Europe/Berlin
temperature_unit: °C
is_device_active: true
device_actives:
  - select.0x4c5bb3fffea62b77_pilot_wire_mode
nb_device_actives: 1
ema_temp: 21.45
is_used_by_central_boiler: false
temperature_slope: 0.15
hvac_off_reason: null
max_on_percent: null
have_valve_regulation: false
last_change_time_from_vtherm: "2025-10-01T13:48:44.917240+02: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: 1
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_over_switch: true
is_inversed: false
keep_alive_sec: 0
underlying_entities:
  - select.0x4c5bb3fffea62b77_pilot_wire_mode
on_percent: 1
power_percent: 100
on_time_sec: 300
off_time_sec: 0
cycle_min: 5
function: tpi
tpi_coef_int: 0.6
tpi_coef_ext: 0.01
calculated_on_percent: 1
vswitch_on_commands:
  - select_option/option:comfort
vswitch_off_commands:
  - select_option/option:frost_protection

Merci de votre aide

Hello, voilà une belle explication. Ça fait plaisir ! Déjà un grand merci pour ça, ça va nous faire gagner du temps.

Ça a l’air bien à vue de nez . Essaye de lancer les actions Outils de dev / actions. Regarde si les select_options fonctionnent. Je crois que c’est sélect/ select_option qu’il faut utiliser. Regarde dans le readme

Merci

Je ne comprend pas l’usage de Outils de dev / actions.

On testant plusieurs paramètres j’ai obtenu un fonctionnement conforme. Mais je n’identifie pas ce qui a changé.

Les attributs de climat.th_jt sont maintenant:

`hvac_modes:
  - heat
  - "off"
min_temp: 7
max_temp: 35
target_temp_step: 0.1
friendly_name: Thermostat test JT					  
supported_features: 401					   
current_temperature: 20.4
temperature: 19
hvac_action: idle						 			
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
preset_mode: comfort
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: false
last_central_mode: null
frost_temp: 7
eco_temp: 16
boost_temp: 24
comfort_temp: 19
frost_away_temp: 0
eco_away_temp: 0
boost_away_temp: 0
comfort_away_temp: 0
target_temperature_step: 0.1
ext_current_temperature: 19.6
ac_mode: false
saved_target_temp: 21.499999999999993
saved_preset_mode: comfort
saved_hvac_mode: null
saved_preset_mod_central_modee: comfort
saved_hvac_mode_central_mode: null
last_temperature_datetime: "2025-10-02T18:01:18.050016+02:00"
last_ext_temperature_datetime: "2025-10-02T17:23:06.968910+02:00"
minimal_activation_delay_sec: 10
minimal_deactivation_delay_sec: 0
total_energy: 1.01
last_update_datetime: "2025-10-02T18:01:18.053887+02:00"
timezone: Europe/Paris
temperature_unit: °C
is_device_active: false
device_actives: []
											 
nb_device_actives: 0
ema_temp: 20.33
is_used_by_central_boiler: false
temperature_slope: 0.51
hvac_off_reason: null
max_on_percent: null
have_valve_regulation: false
last_change_time_from_vtherm: "2025-10-02T12:17:54.790904+02: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: 0
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_over_switch: true
is_inversed: false
keep_alive_sec: 0
underlying_entities:
  - select.0x4c5bb3fffea1d337_pilot_wire_mode
on_percent: 0
power_percent: 0
on_time_sec: 0
off_time_sec: 300
cycle_min: 5
function: tpi
tpi_coef_int: 0.6
tpi_coef_ext: 0.01
calculated_on_percent: 0
vswitch_on_commands:
  - select_option/option:comfort
vswitch_off_commands:
  - select_option/option:frost_protection`

En comparant, le seul attribut qui diffère significativement est:

device_actives: select.0x4c5bb3fffea62b77_pilot_wire_mode

qui maintenant est vide

device_actives: []

Je ne comprend pas ou sont les fichiers de configuration des thermostats, il n’y a plus rien dans script.yaml

Autre question, comment trouver l’identifiant de l’icône de chauffe.

Comment s’effectue la liaison avec le switch, il est curieux qu’il passe au rouge alors que la sortie du thermostat est sur HG

Il n’y a jamais rien eu dans script.yaml pour VTherm donc ne cherche pas. La différence sur device_actives vient du fait que ton Nodon n’est pas activé au moment où tu as regardé.

Je ne comprends pas la question sur l’identifiant de l’icône de chauffe. Qu’est-ce que tu veux faire ?

Si tu as l’impression que le radiateur chauffe en HG vérifie les températures que tu as mises pour HG et les autres. C’est dans les entités de ton VTherm

J’ai progressé et maintenant tous les Versatiles fonctionnent.

Juste une remarque dans la doc il faudrait indiqué l’entité à mettre : Pilot wire mode car sur certain j’avais mis le switch

Il me reste toutefois un soucis. Dans une pièce j’ai 2 radiateurs que je souhaitais commander avec un seul Versatile (un seul capteur de température dans la pièce). Dans les sous-jacents j’ai mis les deux pilot wire mode (modules fils pilotes) et paramétré deux commandes d’allumage et deux commandes extinction

Mais seul le premier radiateur est commandé, le deuxième ne réagit pas.

J’ai créer un deuxième Versatile pour que le fonctionnement soit conforme

Cordialement

Hello @joel,

Ca ne devrait pas. Si tu as 2 Nodon sur un seul VTherm il faut personnaliser les commandes des 2. Tu devrais avoir 2 lignes à chaque fois. Est-ce qu’ils sont identiques ?

Oui les deux lignes sont identiques

select_option/option:comfort pour allumage`

et

select_option/option:frost_protection pour l’arrêt

Je viens de réessayé avec 3 entités et le problème est le même, seul la première entité est gérée.

Voici les attributs

`hvac_modes:
  - heat
  - "off"
min_temp: 7
max_temp: 35
target_temp_step: 0.1
preset_modes:
  - none
  - frost
  - eco
  - comfort
  - boost
current_temperature: 16.9
temperature: 15
hvac_action: idle
preset_mode: eco
is_on: true
hvac_mode: heat
type: null
is_controlled_by_central_mode: false
last_central_mode: null
frost_temp: 7
eco_temp: 15
boost_temp: 23
comfort_temp: 18
frost_away_temp: 0
eco_away_temp: 0
boost_away_temp: 0
comfort_away_temp: 0
target_temperature_step: 0.1
ext_current_temperature: 12.7
ac_mode: false
saved_target_temp: 15
saved_preset_mode: eco
saved_hvac_mode: "off"
saved_preset_mod_central_modee: eco
saved_hvac_mode_central_mode: null
last_temperature_datetime: "2025-10-31T10:47:09.291523+01:00"
last_ext_temperature_datetime: "2025-10-31T10:11:06.688755+01:00"
minimal_activation_delay_sec: 10
minimal_deactivation_delay_sec: 0
total_energy: 3.92
last_update_datetime: "2025-10-31T10:47:09.292195+01:00"
timezone: Europe/Berlin
temperature_unit: °C
is_device_active: false
device_actives: []
nb_device_actives: 0
ema_temp: 16.95
is_used_by_central_boiler: false
temperature_slope: -0.08
hvac_off_reason: null
max_on_percent: null
have_valve_regulation: false
last_change_time_from_vtherm: "2025-10-31T10:11:05.054170+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: 4
power_temp: null
current_power: null
current_max_power: null
mean_cycle_power: 0
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: unknown
window_auto_state: unknown
window_action: window_turn_off
is_window_bypass: false
window_sensor_entity_id: null
window_delay_sec: 30
window_off_delay_sec: 30
is_window_configured: true
is_window_auto_configured: true
window_auto_open_threshold: 3
window_auto_close_threshold: 0
window_auto_max_duration: 30
is_safety_configured: true
safety_state: "off"
safety_delay_min: 60
safety_min_on_percent: 0.5
safety_default_on_percent: 0.1
is_over_switch: true
is_inversed: false
keep_alive_sec: 0
underlying_entities:
  - select.0x4c5bb3fffeb37d2c_pilot_wire_mode
  - select.0x4c5bb3fffea612f8_pilot_wire_mode
  - select.0x4c5bb3fffea1d337_pilot_wire_mode
on_percent: 0
power_percent: 0
on_time_sec: 0
off_time_sec: 300
cycle_min: 5
function: tpi
tpi_coef_int: 0.4
tpi_coef_ext: 0.01
calculated_on_percent: 0
vswitch_on_commands:
  - select_option/option:comfort
  - select_option/option:comfort
  - select_option/option:comfort
vswitch_off_commands:
  - select_option/option:frost_protection
  - select_option/option:frost_protection
  - select_option/option:frost_protection
friendly_name: Chambres
supported_features: 401```

Update : le fonctionnement est correcte. simplement le comportement est séquentiel.

J’ai trois radiateurs, un de 2 kW et deux de 1 kW. A l’activation du scheduler seul le 2kW se met en mode confort les 1kW restent en HG. Après un certain temps le 2kW passe en HG et les deux 1 kW passe en mode confort

Bonjour

Voici le graphe de la séquence d’allumage des 3 chauffages (puissance max)

hello,

je suis en train aussi de configurer versatile thermostat sur un sèche-serviette à bain d’huile avec un module Nodon fil pilote.

Donc en configurant les sous-jacents, il faut choisir le sélecteur “pilote wire mode” et pas le commutateur sèche-serviette?

merci

1 « J'aime »

Hello, oui c’est normal. Si la puissance demandée n’est pas de 100%, les allumages sont décalés pour permettre de lisser la puissance électrique. C’est expliqué là: versatile_thermostat/documentation/fr/over-switch.md at main · jmcollin78/versatile_thermostat · GitHub

Hello @ManuTeK, Oui, l’entité qui est commandée c’est le select.