Domotisation chaudière Viessmann Vitodens 111w

Bonjour

J’ai enfin changé mon ancienne chaudière à gaz avec un thermostat netatmo pour une chaudière à gaz de la marque Viessmann. Il s’agit du modèle « connecté » Vitodens 111w avec une commande à distance Vitotrol 200-E.

Cette chaudière possède une sonde de température externe afin d’adapter la température de l’eau de chauffage par rapport à la température extérieure.

En plus de cette chaudière j’ai des têtes thermostatiques Sonoff sur chacun de mes radiateurs (sauf un bien sûr).

Comme beaucoup ici j’aimerais domotiser mon système de chauffage dans le but de pouvoir planifier la température de chaque pièces suivant l’heure et l’occupation.

Au début j’étais confiant car j’ai vu l’intégration officiel Vicare sur Home Assistant. Après installation, celle-ci fonctionne bien et remonte plusieurs entités dans HA.

Cependant je ne comprends pas totalement le fonctionnement de cette intégration dans HA et surtout comment gérer au mieux ma chaudière et mes têtes.

Premier problème rencontré : avec l’api gratuit on peut faire 1450 appels à l’api Vicare par jour.

On est donc limité pour récupérer les données, environ toutes les 1mn30 si on veut se laisser des appels pour contrôler la chaudière par la suite.

Du coup quand je change la température dans HA, je n’ai pas de retour immédiat sur la prise en compte de cette nouvelle température et si je recharge la page, c’est l’ancienne consigne qui est affichée jusqu’à la remontée de la nouvelle.

De plus, il y a, à priori, un système de cache dans les appels à l’api Vicare. Par exemple, si je change la température à 00h00:00, l’appel à l’api à 00h01:30 remonte l’ancienne température. Par contre l’appel à 00h03:00 remonte la nouvelle.

Il y a donc potentiellement 03mn d’attente pour remonter les valeurs dans HA.

Deuxième problème rencontré : La chaudière possède trois modes : confort, normal et réduit. Lorsque l’on change la température sur HA via la carte climate cela change la température du mode actuel sur la chaudière.

Cela peut sembler adapté, par contre je n’arrive pas à mettre la chaudière en mode confort. À chaque fois j’ai une erreur que ça soit sur la carte climate ou dans les outils de développeur.

J’ai essayé set_preset_mode mais j’ai une erreur quand je met comfort et quand je mets home/sleep cela ne change rien. Si je ne peux pas jouer sur le mode, je peux par contre mettre le chauffage en standby / actif.

Pour le moment voilà mon fonctionnement : j’ai des plages horaires configurées dans le thermostat de la chaudière pour les différents modes et j’ouvre/ferme mes têtes de radiateurs Sonoff manuellement pour changer la température des pièces indépendamment.

Ce que je voudrais c’est que les têtes thermostatiques se gèrent de façon de autonome afin d’obtenir la température voulue aux heures voulues. J’ai lu que plusieurs personnes utilisent l’intégration « Schedule ». Est-ce le moyen le plus simple pour gérer automatiquement les têtes ?

Pour la gestion de la température, j’ai pensé à l’intégration Versatile mais je ne sais pas si les points soulevés précédemment concernant l’intégration Vicare sont problématiques pour utiliser Versatile.

Par exemple, cette nuit, les températures sont bien descendues ici, du coup les chambres (pièces les plus froides) sont tombées à 15/16°C alors que le séjour (ou il y a le thermostat) était à 17.5°C ce qui n’a pas déclenché la chaudière. D’après mes lectures, une intégration comme Versatile permettrait de corriger ce genre de problème.

Bref vous pouvez voir de ce long pavé que je suis un peu perdu sur l’intégration de mon chauffage dans HA. Merci pour vos aides :slight_smile:


Ca ne sent pas bon :expressionless_face:.

Si tu as réglé l’interrogation à 1m30, tu as 960 appels à l’API sur les 1450.
As tu testé si l’envoie d’une commande entre ces intervalles permets de récupérer les données souhaitées. Car si c’est le cas, tu peux faire une automatisation qui répète la consigne dans la seconde qui suit et ainsi obtenir la MAJ des données. Et avec tes 490 appels d’API restant tu es très large.

Avant de faire une automatisation, teste en augmentant progressivement la consigne de température à une ou deux secondes d’intervalles.

Si ça ne fonctionne pas, change ton intervalle à 64 secondes. Tu auras 1350 appels, ce qui te laisse 100 commandes par jour et une mise à jour toutes les 2 minutes 12.

Alors j’ai effectivement testé l’envoi d’une commande et voir en combien de temps minimum j’obtenais le rafraichissement des données. Mais comme évoqué il y a comme un espèce de cache « glissant » et j’arrive pas à déterminer la durée de celui-ci. J’ai bien lu la doc de l’api mais ils en parlent pas.

Il semble qu’on soit aux alentours de 2mn depuis l’exécution de la dernière commande mais rien de sûr.

Et as tu essayé en envoyant deux commandes à quelques secondes d’intervalles ?

Je viens de faire le test.

La consigne est actuellement à 19°C dans HA :

hvac_modes:
  - "off"
  - auto
min_temp: 3
max_temp: 37
target_temp_step: 1
preset_modes:
  - comfort
  - home
  - sleep
current_temperature: 19.1
temperature: 19
hvac_action: heating
preset_mode: home
vicare_programs:
  - comfort
  - comfortEnergySaving
  - forcedLastFromSchedule
  - normal
  - normalEnergySaving
  - reduced
  - reducedEnergySaving
  - standby
room_temperature: 19.1
active_vicare_program: normal
active_vicare_mode: heating
heating_curve_slope: 1.5
heating_curve_shift: 1
vicare_modes:
  - heating
  - standby
friendly_name: Chaudière Heating
supported_features: 401

J’incrémente de 1°C avec la carte climate sur le dashboard.
La température passe toute seule à 20°C sans que j’ai besoin de lancer une synchronisation :

current_temperature: 19.1
temperature: 20

J’imagine c’est le résultat de l’appel.
Je passe alors à 21 mais rien ne change dans HA cette fois.
Je passe à 22, dans HA il est indiqué 21 cette fois :

current_temperature: 19.1
temperature: 21

Maintenant essaie avec climate.set_temperature

En (3) tu colles climate.set_temperature
(4) tu sélectionnes ton thermo
(6) tu choisis une température (20°C par exemple)
(7) valides deux fois à quelques secondes d’intervalles

si ça marche pas fait ça :
(6) 20.1
(7) valides
attends quelques secondes
(6) 20
(7) valide

Alors ça a fonctionné la première fois (ça faisait plusieurs minutes que j n’avais pas lancé d’action). Par contre la deuxième fois ça n’a pas fonctionné.

Quand je mets la première valeur il se passe rien, quand j’envoi la deuxième valeur il me met la première valeur et quand j’envoi une troisième valeur il me met la deuxième.

Maintenant, tu peux te faire une automatisation dans ce style.

alias: Thermostat force update
description: ""
triggers:
  - trigger: state
    entity_id:
      - climate.thermostat_salon
    attribute: temperature
conditions: []
actions:
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: "{{state_attr(\"climate.thermostat_salon\", \"temperature\") - 0.1}}"
    target:
      entity_id:
        - climate.thermostat_salon
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - action: climate.set_temperature
    metadata: {}
    data:
      temperature: "{{state_attr(\"climate.thermostat_salon\", \"temperature\") + 0.1}}"
    target:
      entity_id:
        - climate.thermostat_salon
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
mode: single

L’objectif est de lui faire changer la température, ce qui te mettra à jouer automatiquement ton relevé. Tu vas voir ta consigne osciller l’espace d’une seconde, puis revenir à la température d’origine.

Le problème c’est que comme ma température ne change pas quand je change la consigne une fois, l’automation n’est jamais appelée.

Avec le code que je t’ai fournis ça fonctionnera. Remplace mon thermostat par le tient et enregistre automatisation

J’ai essayé mais l’automation n’a pas été déclenchée. Je pense parce que l’attribut température n’a pas changé.

si ça a marché pour ça, ça doit marcher avec l’automatisation.
Fait moi la capture d’écran avec l'outil de développement (1) et celle de ton automatisation