La configuration centrale du versatile thermostat ne gère pas l'allumage du bruleur de la chaudière (sur l'entrée thermostat)

Bonjour à tous, :wave:

J’ai déjà échangé avec @Jean-Marc_Collin dans un autre post pas directement lié à mon problème , mais je ne trouve pas la solution, ce pour quoi je crée une page spécifique dans l’espoir que d’autres aient éventuellement rencontré la même chose que moi et trouvé la solution.

Avec le versatile thermostat, la configuration centrale n’envoie pas la commande d’allumage à la chaudière (le brûleur contrôlé par un switch Shelly 1 Plus connecté à l’entrée thermostat).
J’ai été jusqu’à désinstaller l’intégration Versatile Thermostat et la réinstaller ainsi que toutes les vannes Versatile Thermostat, vérifié toutes les options, relu complètement le Readme pour refaire la programmation.
Bien sûr, j’ai mis le Boiler Activation Threshold sur « 1 », donc la commande doit normalement être envoyée dès qu’une vanne thermostatique (ou un sous-jacent dans le VTherm) demande du chauffage.
En manuel, le Shelly 1 Plus connecté à l’entrée thermostat de la chaudière envoie bien la commande d’allumage via l’intégration Shelly: le bruleur s’allume, le circulateur se met en route automatiquement ensuite et les radiateurs chauffent.

Je pourrais peut-être résoudre le problème en faisant une automatisation parallèle mais ce serait un peu bête puisque Versatile Thermostat le propose normalement.
Voici quelques captures d’écran de ma configuration…

Cette configuration n’appelle pas le switch :

Pourtant ça fonctionne quand j’appelle le service:

Voici mes VTherm reconfigurés:

Et les 2 thermostats en demande de chauffage (plusieurs sous-jacents sous chaque thermostat).

Les sous-jacents sont tous disponibles et renvoient des données dans Matter.
Exemple:

Ces sous-jacents prennent aussi la consigne du thermostat Versatile, donc ils communiquent.

Les capteurs des VTherm récupèrent bien les données. Exemple:

La configuration de chaque VTherm est la suivante et me semble correcte avec les 3 cases cochées pour permettre un contrôle de et par la configuration centrale (si j’ai bien compris) :

J’ai même désinstallé et réinstallé le module Shelly Plus 1, sans que le résultat soit plus probant.

Mes têtes thermostatiques sont les suivantes: https://www.domadoo.fr/fr/chauffage-clim/6841-tete-thermostatique-connectee-matter-over-thread-wisdom.html

D’autres personnes ont-elles déjà rencontré ce problème ?

Merci et bonne journée,

Ma configuration


[center]## System Information

version core-2024.6.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.31-haos-raspi
arch aarch64
timezone Europe/Brussels
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4747
Installed Version 1.34.0
Stage running
Available Repositories 1387
Downloaded Repositories 48
Home Assistant Cloud
logged_in true
subscription_expiration 28 avril 2025 à 02:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
remote_server eu-central-1-19.ui.nabu.casa
certificate_status ready
instance_id f0fd017040d14711b17f54352dde68e6
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.4
update_channel stable
supervisor_version supervisor-2024.06.2
agent_version 1.6.0
docker_version 26.1.4
disk_total 116.6 GB
disk_used 10.4 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi5-64
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.14.0), File editor (5.8.0), Samba share (12.3.1), Home Assistant Google Drive Backup (0.112.1), Studio Code Server (5.15.0), Spotify Connect (0.13.0), OpenThread Border Router (2.8.0), Matter Server (6.1.2), Mosquitto broker (6.4.1), Frigate (0.13.2)
Dashboards
dashboards 2
resources 43
views 8
mode storage
Recorder
oldest_recorder_run 21 juin 2024 à 04:15
current_recorder_run 1 juillet 2024 à 17:01
estimated_db_size 503.88 MiB
database_engine sqlite
database_version 3.44.2
Spotify
api_endpoint_reachable ok
[/center] Comment récupérer ma configuration : Dans votre HA, Menu latéral `Paramètres` > `Système` > `Corrections` puis les trois petits points en haut a droite > `Informations Système` puis une fois en bas `Copier` ___

Bonjour à tous,

Petit retour pour expliquer comment je m’en suis sorti… vos remarques sont les bienvenues si vous pensez que j’ai loupé un truc où que je pourrais améliorer :slight_smile:
Je suis déjà très content de moi :stuck_out_tongue:

J’ai d’abord désactivé l’ajout d’une chaudière centrale puisque la demande de chauffage de chacune de mes 7 vannes thermostatiques n’est pas détectée par Versatile Thermostat.
Par contre, j’ai laissé une configuration centrale afin de pouvoir piloter mes vannes depuis les modes de manière centralisée (et vous verrez plus loin ci-dessous les modes VTherm qui apparaissent sur les cartes créées avec Simple Thermostat).

Ensuite, j’ai dû créer différentes entités sur base de templates car mes vannes thermostatiques ne renvoient que l’entité « heat » ou « off ». Mais pour piloter l’allumage de ma chaudière (= du brûleur pour chauffer l’eau des radiateurs et la faire circuler, le circulateur s’allumant automatiquement en fonction du brûleur sur base du programme interne de la chaudière), j’avais besoin de pouvoir comparer la température de chaque pièce (un capteur de température dans chaque vanne chez moi) avec la température de consigne de chaque vanne. Et ces informations étaient disponibles dans des attributs pour chaque vanne
J’ai donc dû créer des entités sur base des attributs.

Exemple pour la température actuelle du bureau :

{{ state_attr('climate.vanne_thermostatique_bureau', 'current_temperature') }}

Exemple pour la température de consigne du bureau :

{{ state_attr('climate.vanne_thermostatique_bureau', 'temperature') }}

Et pour une gestion un peu plus fine du chauffage, je voulais aussi pouvoir régler l’hystérésis à la fois sur le delta haut et sur le delta bas. J’ai donc pris l’option de calculer un besoin en chauffage pour chaque vanne (différence entre la température mesurée et la température de consigne).
Si le besoin en chauffage d’une vanne (le delta de la vanne) est positif, cela signifie, vu ma formule, qu’il y a des degrés en plus. Et inversement.
Exemple de template qui calcule l’hystérésis pour le bureau (j’ai gratté des codes à gauche à droite sur le forum car je ne m’y connais pas trop en yaml; j’ai juste adapté la formule à mes besoins):

{{ ( states('sensor.temperature_bureau') | float - states('sensor.temperature_consigne_bureau') | float ) | round (2) }}

Je précise qu’au moment où je capture cette illustration, le chauffage est éteint car nous sommes en été, d’où la variation importante de l’hystérésis. Je verrai en hiver ce que ça donne quand la chaudière tournera sur base régulière.

Puis, j’ai calculé un besoin moyen en chauffage via ce template dans l’UI (et j’ai scindé 2 zones pour 2 VTherm, donc j’ai calculé 2 besoins moyens ou hystérésis moyens).
La moyennes reprennent les écarts observés entre température de consigne et température réelle pour chaque vanne concernée dans une zone.
Exemple pour la zone Bureau :

Et je peux du coup comparer ce besoin moyen ou cet hystérésis moyen à l’instant t avec un hystérésis delta bas et un autre pour le delta haut.
Vu que je voulais pouvoir régler ces delta de manière dynamique, j’ai donc créé deux autres entrées input_number variant de 0 à 1 et de 0 à -1.

Exemple:

image

Enfin, j’ai créé une automatisation comparant l’hystérésis moyen avec les delta haut et bas et commandant l’allumage ou la coupure du brûleur de la chaudière en conséquence, et ce pour 2 zones différentes ou 2 VTherm:

alias: Chauffage_Brûleur_Allumer_Eteindre
description: >-
  Allumer ou éteindre le brûleur en fonction de la position de l'hystérésis
  moyen par rapport aux seuils choisis pour les delta bas et delta haut pour
  chacune des 2 zones ou des 2 VTherm.
trigger:
  - platform: state
    entity_id:
      - sensor.hysteresis_moyen_bureau_hall_entree
  - platform: state
    entity_id:
      - sensor.hysteresis_moyen_living
  - platform: state
    entity_id:
      - input_number.hysteresis_reglage_delta_bas
  - platform: state
    entity_id:
      - input_number.hysteresis_reglage_delta_haut
  - platform: state
    entity_id:
      - climate.bureau_entree_wc
  - platform: state
    entity_id:
      - climate.living_cuisine
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: climate.bureau_entree_wc
        state: heat
      - condition: state
        entity_id: climate.living_cuisine
        state: heat
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: climate.living_cuisine
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_living
            below: input_number.hysteresis_reglage_delta_bas
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
      - conditions:
          - condition: state
            entity_id: climate.living_cuisine
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_living
            above: input_number.hysteresis_reglage_delta_haut
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.hysteresis_moyen_bureau_hall_entree
                above: input_number.hysteresis_reglage_delta_haut
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: "off"
        sequence:
          - service: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
  - choose:
      - conditions:
          - condition: state
            entity_id: climate.bureau_entree_wc
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_bureau_hall_entree
            below: input_number.hysteresis_reglage_delta_bas
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
      - conditions:
          - condition: state
            entity_id: climate.bureau_entree_wc
            state: heat
          - condition: numeric_state
            entity_id: sensor.hysteresis_moyen_bureau_hall_entree
            above: input_number.hysteresis_reglage_delta_haut
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.hysteresis_moyen_living
                above: input_number.hysteresis_reglage_delta_haut
              - condition: state
                entity_id: climate.living_cuisine
                state: "off"
        sequence:
          - service: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.bruleur
mode: single

Et j’ai testé et récupéré tout cela sur mon tableau de bord :ok_hand:

Pour finir, j’ai aussi ajouté une automatisation pour carrément couper la prise de la chaudière (et le scheduler) quand je clique sur « Eteint » sur les 2 VTherm. ça permet d’éviter les quelques watts/heure qui sont consommés en mode veille de la chaudière et du circulateur.

alias: Auto_Chaudière_On_Off
description: >-
  Allumer ou éteindre la chaudière et le programme Confort/Eco en fonction du
  VTherm Living et du VTherm Bureau Entrée WC.
trigger:
  - platform: state
    entity_id:
      - climate.bureau_entree_wc
  - platform: state
    entity_id:
      - climate.living_cuisine
condition: []
action:
  - choose:
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: heat
              - condition: state
                entity_id: climate.living_cuisine
                state: heat
        sequence:
          - service: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id:
                - switch.chaudiere_prise
                - switch.schedule_confort_eco
      - conditions:
          - condition: and
            conditions:
              - condition: state
                entity_id: climate.bureau_entree_wc
                state: "off"
              - condition: state
                entity_id: climate.living_cuisine
                state: "off"
        sequence:
          - service: switch.turn_off
            target:
              entity_id:
                - switch.chaudiere_prise
                - switch.schedule_confort_eco
            data: {}
mode: single

Ainsi, mon chauffage tourne avec Versatile Thermostat comme base, 2 automatisations, et des cartes pour le tableau de bord (cartes conseillées dans le Readme de Versatile Thermostat qui est la base de ma gestion) dont Simple Thermostat et le Scheduler.

Bonjour @Jean-Marc_Collin
Je viens de constater en regardant à nouveau les détails du Versatile thermostat qu’un nouveau contrôle était apparu. Du coup, j’ai coupé mon automatisation et activé ce contrôle (par défaut sur off chez moi) en vue de tester si l’activation/désactivation de mon brûleur fonctionnait maintenant. Et cela a fonctionné !
Avant cette option, mon problème est résolu.

Merci pour ton travail et les développements réguliers que tu réalises :pray:
Maintenant, j’utilise 100% Versatile thermostat (à partir de ce soir donc :slightly_smiling_face: )

1 « J'aime »

@Jean-Marc_Collin
Juste pour info au cas où…
Certaines personnes, dont moi, rencontrent parfois des difficultés avec la géolocalisation de leur téléphone dans le sens où la position peut par exemple « sauter » quelques secondes en dehors de la zone « home ».
Pour pallier ce problème, il est possible d’agrandir la zone mais ce n’est pas idéal car lorsqu’on passe dans cette zone sans forcément rentrer chez soi, toutes les automatisations de retour à la maison s’enclenchent pour quelques secondes ou minutes et cela peut créer des bugs.
J’ai mis en place une autre solution via l’entrée « Maison occupée » que tu conseillais de créer pour la lier au capteur de présence de VTherm. L’idée est que le capteur « Maison occupée » ne passe à off qu’après 180 secondes après avoir quitté la zone « home ». Cela évite les erreurs brèves de localisation (ces erreurs ne durent jamais longtemps) comme un bref passage (en voiture par exemple) dans la zone « home ». Je voulais aussi éviter de créer inutilement une automatisation et piloter directement la manière dont « Maison occupée » passe à on ou à off sur base de consignes déterminées. J’ai donc demandé à lintelligence artificielle de me créer un code pour répondre à ce besoin. Et ça fonctionne bien après plusieurs jours d’observations.
Voici le modèle d’état que j’applique dans les options Template de mon entrée « Maison occupée » (pour mon fils et moi-même):

{{ is_state('person.serurier_matthieu', 'home') 
   or is_state('person.tom', 'home') 
   or is_state('input_boolean.presence', 'on') 
   or (is_state('person.serurier_matthieu', 'not_home') 
       and is_state('person.tom', 'not_home') 
       and (as_timestamp(now()) - as_timestamp(states.person.serurier_matthieu.last_changed)) < 180
       and (as_timestamp(now()) - as_timestamp(states.person.tom.last_changed)) < 180) }}
1 « J'aime »