Bonjour,
Je souhaite améliorer la solution Versatile Thermostat (VTherm) en ajoutant une prise en compte native des installations qui nécessitent un switch virtuel.
C’est une grosse galère notamment pour les personnes débutantes et j’ai l’impression que ce sera simple à faire.
Pour développer ça et faire une solution la plus générique possible, j’aurai besoin de vos codes des switch virtuels (avec le formattage </> svp).
J’en ai déjà quelques-uns mais pour ne rien louper merci de me poster les votres.
Merci d’avance !
A première vue, j’ai juste besoin d’associer le ‹ on › a une valeur d’un select et le ‹ off › à une autre valeur. Si c’est deux valeurs sont paramétrables, ca pourrait répondre à 95% des cas.
Le paramétrage pourrait se faire comme décrit ici : versatile_thermostat/documentation/fr/feature-central-boiler.md at main · jmcollin78/versatile_thermostat · GitHub
Exemples (à ajuster à votre cas) :
climate.<climate id>/climate.set_preset_mode/eco
: pour changer de preset,
climate.<climate id>/climate.set_temperature/24
: pour changer la consigne,
select.<select id>/select.select_option/comfort
: pour sélectionner une option d’un select
N’hésitez pas non plus à me partager vos idées de configuration.
6 « J'aime »
Un heatzy:
- platform: template
switches:
chauffage_sdb:
unique_id: chauffage_sdb
friendly_name: Bathroom heating
value_template: "{{ is_state_attr('climate.bathroom', 'preset_mode', 'comfort') }}"
icon_template: >-
{% if is_state_attr('climate.bathroom', 'preset_mode', 'comfort') %}
mdi:radiator
{% elif is_state_attr('climate.bathroom', 'preset_mode', 'away') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
service: climate.set_preset_mode
entity_id: climate.bathroom
data:
preset_mode: "comfort"
turn_off:
service: climate.set_preset_mode
entity_id: climate.bathroom
data:
preset_mode: "eco"
1 « J'aime »
Un nodon:
- platform: template
switches:
chauffage_chb_parents:
unique_id: chauffage_chb_parents
friendly_name: Chauffage chambre parents
value_template: "{{ is_state('select.fp_chb_parents_pilot_wire_mode', 'comfort') }}"
icon_template: >-
{% if is_state('select.fp_chb_parents_pilot_wire_mode', 'comfort') %}
mdi:radiator
{% elif is_state('select.fp_chb_parents_pilot_wire_mode', 'frost_protection') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
service: select.select_option
target:
entity_id: select.fp_chb_parents_pilot_wire_mode
data:
option: comfort
turn_off:
service: select.select_option
target:
entity_id: select.fp_chb_parents_pilot_wire_mode
data:
option: eco
2 « J'aime »
Herbs
Janvier 20, 2025, 10:08
4
Bonsoir @Jean-Marc_Collin
Je te donne ma version pour le nodon, j’en ai 11 comme celui-ci :
switch:
- platform: template
switches:
# BUREAU
radiateur_bureau:
friendly_name: "Switch Radiateur Bureau"
unique_id: sw_rad_bureau
value_template: "{{ is_state('select.radiateur_bureau_pilot_wire_mode', 'comfort') }}"
turn_on:
action: select.select_option
data:
option: comfort
target:
entity_id:
- select.radiateur_bureau_pilot_wire_mode
turn_off:
action: select.select_option
data:
option: "off"
target:
entity_id:
- select.radiateur_bureau_pilot_wire_mode
icon_template: "{% if is_state('select.radiateur_bureau_pilot_wire_mode', 'off') %}mdi:radiator-disabled{% else %}mdi:radiator{% endif %}"
Pour moi, vu le fonctionnement du vTherm et mes radiateurs, je préfère l’alternance comfort/off au lieu de comfort/eco ou comfort/frost_protection
Et pour les icônes, je pars du principe que le switch n’ayant que deux états, on doit avoir une template qui va dans ce sens
2 « J'aime »
Bonsoir,
Voici le mien :
chauffage_vtherm_bureau:
unique_id: chauffage_vtherm_bureau
friendly_name: Chauffage VTherm Bureau
value_template: "{{ is_state('select.chauffage_travail_pilot_wire_mode', 'comfort') }}"
icon_template: mdi:radiator
turn_on:
service: select.select_option
target:
entity_id: select.chauffage_travail_pilot_wire_mode
data:
option: comfort
turn_off:
service: select.select_option
target:
entity_id: select.chauffage_travail_pilot_wire_mode
data:
option: "off"
1 « J'aime »
Salut pour les eCosy en passant par local Tuya
# Modification des thermostats eCosy en switch
- platform: template
switches:
chauffage_salon:
unique_id: chauffage_salon
friendly_name: Chauffage salon
value_template: "{{ is_state('climate.ecosy_salon', 'heat') }}"
icon_template: >-
{% if is_state('climate.ecosy_salon', 'heat') %}
mdi:radiator
{% elif is_state('climate.ecosy_salon', 'cool') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
action: climate.set_hvac_mode
data:
hvac_mode: heat
target:
entity_id: climate.ecosy_salon
turn_off:
action: climate.set_hvac_mode
data:
hvac_mode: cool
target:
entity_id: climate.ecosy_salon
En éspérant que cela aide
1 « J'aime »
Hello,
Voici mon code.
Il faudrait aussi associer une 3éme option si possible (hors gel) frost_protection chez nodon ou away chez heatzy.
voir aussi l’option off…
- platform: template
switches:
chauffage_manger:
unique_id: chauffage_manger
friendly_name: Chauffage salle a manger
value_template: >
{% if states('select.fp_manger_pilot_wire_mode') in ['comfort', 'comfort_-1'] %}
true
{% else %}
false
{% endif %}
icon_template: >-
{% if is_state('select.fp_manger_pilot_wire_mode', 'comfort') %}
mdi:radiator
{% elif is_state('select.fp_manger_pilot_wire_mode', 'frost_protection') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
action: select.select_option
target:
entity_id: select.fp_manger_pilot_wire_mode
data:
option: >
{% if is_state('sensor.lixee_ntarf', '1') %}
comfort
{% elif is_state('sensor.lixee_ntarf', '2') %}
comfort
{% elif is_state('sensor.lixee_ntarf', '3') %}
comfort
{% elif is_state('sensor.lixee_ntarf', '4') %}
comfort_-1
{% else %}
comfort
{% endif %}
turn_off:
action: select.select_option
target:
entity_id: select.fp_manger_pilot_wire_mode
data:
option: >
{% if is_state('sensor.lixee_ntarf', '1') %}
eco
{% elif is_state('sensor.lixee_ntarf', '2') %}
eco
{% elif is_state('sensor.lixee_ntarf', '3') %}
eco
{% elif is_state('sensor.lixee_ntarf', '4') %}
frost_protection
{% else %}
eco
{% endif %}
Attention, home assistant à modifier les commandes turn_on et turn_off.
il faut utiliser :
turn_on:
action:
target:
entity_id:
data:
option:
a la place de :
turn_on:
service:
entity_id:
data:
preset_mode:
Bon courage et merci
3 « J'aime »
Hello @Gael1980 ,
Merci pour ta config très complète. A quoi correspond le sensor ntarf?
Hello @Jean-Marc_Collin ,
C’est un sensor issu du lixee.
Ce code suit le tarif en cours d’EDF.
Je suis en offre Zen Flex, qui comporte 4 niveaux de tarification, un peu comme l’offre Tempo, mais avec 6 tarifs au lieu de 4.
En fonction du tarif actuel, j’active soit le mode confort ou confort-1 pour l’allumage (on ), soit hors gel à la place de éco pour l’extinction (off ).
Cela dit, si tu implémentes directement les 4 états (confort, éco, hors gel et off ), ce code ne sera plus nécessaire.
2 « J'aime »
Tu as des retours sur le blocage avec l’intégration Overkiz ?
Je viens de tester avec des Nodon c’est simplement génial mais j’aurais adoré l’utiliser avec mon intégration Overkiz.
Je suis absolument pas bon sur les différents paramétrages, les codes YAML etc…, mais si tu souhaites je peux me rendre disponible pour faire des essais.
1 « J'aime »
Nico61
Janvier 21, 2025, 1:44
11
Bonjour,
Pour Sortie de Cable connecté Legrand :
- platform: template
switches:
radiateur_piece:
value_template: "{{ is_state('select.chauffage_piece_pilot_wire_mode', 'comfort') }}"
turn_on:
service: select.select_option
data:
option: comfort
target:
entity_id:
- select.chauffage_piece_pilot_wire_mode
turn_off:
service: select.select_option
data:
option: 'off'
target:
entity_id:
- select.chauffage_piece_pilot_wire_mode
1 « J'aime »
Rien de bien original pour les trois Heatzy de la maison.
switch:
- platform: template
switches:
bureau_heating:
unique_id: heating_bureau
friendly_name: "bureau heating"
value_template: "{{ is_state_attr('climate.bureau', 'preset_mode', 'comfort') }}"
icon_template: >-
{% if is_state_attr('climate.bureau', 'preset_mode', 'comfort') %}
mdi:radiator
{% elif is_state_attr('climate.bureau', 'preset_mode', 'away') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
- service: climate.set_preset_mode
entity_id: climate.bureau
data:
preset_mode: "comfort"
turn_off:
- service: climate.set_preset_mode
entity_id: climate.bureau
data:
preset_mode: "away"
cuisine_heating:
unique_id: heating_cuisine
friendly_name: "cuisine heating"
value_template: "{{ is_state_attr('climate.cuisine', 'preset_mode', 'comfort') }}"
icon_template: >-
{% if is_state_attr('climate.cuisine', 'preset_mode', 'comfort') %}
mdi:radiator
{% elif is_state_attr('climate.cuisine', 'preset_mode', 'away') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
- service: climate.set_preset_mode
entity_id: climate.cuisine
data:
preset_mode: "comfort"
turn_off:
- service: climate.set_preset_mode
entity_id: climate.cuisine
data:
preset_mode: "away"
entree_heating:
unique_id: heating_entree
friendly_name: "entree heating"
value_template: "{{ is_state_attr('climate.entree', 'preset_mode', 'comfort') }}"
icon_template: >-
{% if is_state_attr('climate.entree', 'preset_mode', 'comfort') %}
mdi:radiator
{% elif is_state_attr('climate.entree', 'preset_mode', 'away') %}
mdi:snowflake
{% else %}
mdi:radiator-disabled
{% endif %}
turn_on:
- service: climate.set_preset_mode
entity_id: climate.entree
data:
preset_mode: "comfort"
turn_off:
- service: climate.set_preset_mode
entity_id: climate.entree
data:
preset_mode: "away"```
1 « J'aime »
Hello @Gael1980 ,
Je comprends et c’est intéressant. Par contre, si la consigne de VTherm est la même, ca va juste mettre de plus ou moins de temps à atteindre la consigne mais pas sur que tu fasses beaucoup d’économie du coup. Mais peut être as-tu en place une variation de la consigne.
Gael1980:
Cela dit, si tu implémentes directement les 4 états (confort, éco, hors gel et off ), ce code ne sera plus nécessaire.
Ce n’était pas l’idée de mapper directement un preset VTherm sur un preset du Nodon. Je veux continuer à utiliser l’algo TPI et donc l’alternance on/off avec une durée qui varie. Donc tu vas pouvoir mapper l’état ‹ on › du Vtherm sur un preset Nodon et l’état ‹ off › sur un autre. Peut être que sur le off-gel ça vaut le coup aussi (mais j’utilise plus le TPI alors, ce qui n’est pas simple).
J’espère que c’est clair pour toi. Surtout si tu penses que ce n’est pas optimal n’hésites pas.
Merci @romain4559 !
Oui je vais avoir besoin d’utilisateurs pour faire des essais. J’en ai pas moi-même. Un peu comme j’avais fait avec le Sonoff TRVZB. C’est pas idéal mais ce sera plus simple ici.
1 « J'aime »
Merci @Etienne ,
Là ça reproduit le ‹ on ›, ‹ off › si je comprends bien. Ca régule bien avec les Heatzy ? C’est stable ?
Hello @Black_Dragon34 ,
hvac_mode: cool
Intéressant. Pourquoi le ‹ off › fait basculer en mode clim ? C’est original. Est-ce que ton équipement eCosy ne sait gérer que ces modes là ?
Est-ce que tu peux me donner les attributs de ton eCosy stp ? C’est dans Outils de dev / Etat.
Merci
Salut @Jean-Marc_Collin ,
En fait les eCosy ont deux presets confort -1 et confort -2 et un mode programmes absolument pas pris en charge par l’intégration Tuya de HA, par contre ces presets sont pris en charge dans Local Tuya.
Je te joint les attibuts Tuya et Local Tuya.
Tuya
hvac_modes: off, heat, cool, heat_cool, heat_cool
min_temp: 0
max_temp: 40
target_temp_step: 1
preset_modes: eco
current_temperature: null
temperature: 20
preset_mode: null
friendly_name: eCosy Salon
supported_features: 401
Local Tuya
hvac_modes: cool, heat, off
min_temp: 0
max_temp: 40
target_temp_step: 1
preset_modes: Auto, Confort -1, Confort -2, eco
current_temperature: null
temperature: 20
preset_mode: null
raw_state: true
icon:
friendly_name: eCosy Salon
supported_features: 401
Après j’ai fait le choix de ne pas éteindre via HA, du coup le Off me bascule en Hors Gel
1 « J'aime »
Oui, ça fonctionne bien. J’ai commencé avec les Heatzy avant de découvrir ta solution. Je les ai depuis l’hiver dernier. Tout a été stable.
1 « J'aime »
Bonjour @Jean-Marc_Collin
Dans la config switch des nodon
Est-ce qu’il serait pas plus intéressant en second option (turn_off) de mettre du frost_protection ?
Ta régulation ne sera que mieux surtout pour les radiateurs qui bloquent la consigne Eco à -3°C par rapport à une consigne comfort.
Dans ces condition l’algorithme TPI est à son plein potentiel.
Ou alors j’ai raté un truc
1 « J'aime »
Bonjour,
La question de @romain4559 me rappelle que j’ai choisi de mettre « off » au lieu de « eco » parce que mon radiateur a un temps de basculement de 12 secondes pour faire confort > eco et uniquement dans ce sens (écrit sur la notice).
Bref, tout ceci pour indiquer qu’il vaut mieux donner à l’utilisateur le choix de l’option select pour allumer ou éteindre.
1 « J'aime »