Nouveau thermostat type proportionnel avec gestion des presets / portes et fenêtres / détection de mouvement / gestion de présence et surconsommation

Bonjour,

Je suis l’auteur d’une nouvelle intégration d’un thermostat avec pas mal de fonctionnalités optionnelles.
Comme ça peut intéresser d’autres personnes que moi, je le poste ici.

L’intégration est décrite ici : GitHub - jmcollin78/versatile_thermostat: A full featured Thermostat for Home Assistant: presets, window, motion, presence and overpowering management et elle est disponible dans HACS.

Le readme (en Francais)

GitHub Release
GitHub Activity
License
hacs
BuyMeCoffee

Tip

Tip Cette intégration de thermostat vise à simplifier considérablement vos automatisations autour de la gestion du chauffage. Parce que tous les événements autour du chauffage classiques sont gérés nativement par le thermostat (personne à la maison ?, activité détectée dans une pièce ?, fenêtre ouverte ?, délestage de courant ?), vous n’avez pas à vous encombrer de scripts et d’automatismes compliqués pour gérer vos climats. ;-).

Ce composant personnalisé pour Home Assistant est une mise à niveau et est une réécriture complète du composant « Awesome thermostat » (voir Github) avec l’ajout de fonctionnalités.

Nouveau Nouveautés

  • Release 3.8: Ajout d’une fonction d’auto-régulation pour les thermostats over climate dont la régulation est faite par le climate sous-jacent. Cf. L’auto-régulation et #129. Ajout de la possibilité d’inverser la commande pour un thermostat over switch pour adresser les installations avec fil pilote et diode #124.
  • Release 3.7: Ajout du type de Versatile Thermostat over valve pour piloter une vanne TRV directement ou tout autre équipement type gradateur pour le chauffage. La régulation se fait alors directement en agissant sur le pourcentage d’ouverture de l’entité sous-jacente : 0 la vanne est coupée, 100 : la vanne est ouverte à fond. Cf. #131. Ajout d’une fonction permettant le bypass de la détection d’ouverture #138. Ajout de la langue Slovaque
  • Release 3.6: Ajout du paramètre motion_off_delay pour améliorer la gestion de des mouvements #116, #128. Ajout du mode AC (air conditionné) pour un VTherm over switch. Préparation du projet Github pour faciliter les contributions #127
  • Release 3.5: Plusieurs thermostats sont possibles en « thermostat over climate » mode #113
Autres versions
  • Release 3.4: bug fix et exposition des preset temperatures pour le mode AC #103
  • Release 3.3: ajout du mode Air Conditionné (AC). Cette fonction vous permet d’utiliser le mode AC de votre thermostat sous-jacent. Pour l’utiliser, vous devez cocher l’option « Uitliser le mode AC » et définir les valeurs de température pour les presets et pour les presets en cas d’absence
  • Release 3.2 : ajout de la possibilité de commander plusieurs switch à partir du même thermostat. Dans ce mode, les switchs sont déclenchés avec un délai pour minimiser la puissance nécessaire à un instant (on minimise les périodes de recouvrement). Voir Configuration
  • Release 3.1 : ajout d’une détection de fenêtres/portes ouvertes par chute de température. Cette nouvelle fonction permet de stopper automatiquement un radiateur lorsque la température chute brutalement. Voir Le mode auto
  • Release majeure 3.0 : ajout d’un équipement thermostat et de capteurs (binaires et non binaires) associés. Beaucoup plus proche de la philosphie Home Assistant, vous avez maintenant un accès direct à l’énergie consommée par le radiateur piloté par le thermostat et à plein d’autres capteurs qui seront utiles dans vos automatisations et dashboard.
  • release 2.3 : ajout de la mesure de puissance et d’énergie du radiateur piloté par le thermostat.
  • release 2.2 : ajout de fonction de sécurité permettant de ne pas laisser éternellement en chauffe un radiateur en cas de panne du thermomètre
  • release majeure 2.0 : ajout du thermostat « over climate » permettant de transformer n’importe quel thermostat en Versatile Thermostat et lui ajouter toutes les fonctions de ce dernier.

Merci pour la bière buymecoffee

Un grand merci à @salabur, @pvince83, @bergoglio, @EPicLURcher, @ecolorado66, @Kriss1670, @maia, @f.maymil, @moutte69, @Jerome pour les bières. Ca fait très plaisir et ça m’encourage à continuer !

Quand l’utiliser et ne pas l’utiliser

Ce thermostat peut piloter 3 types d’équipements :

  1. un radiateur qui ne fonctionne qu’en mode marche/arrêt (nommé thermostat_over_switch). La configuration minimale nécessaire pour utiliser ce type thermostat est :
    1. un équipement comme un radiateur (un switch ou équivalent),
    2. une sonde de température pour la pièce (ou un input_number),
    3. un capteur de température externe (pensez à l’intégration météo si vous n’en avez pas)
  2. un autre thermostat qui a ses propres modes de fonctionnement (nommé thermostat_over_climate). Pour ce type de thermostat la configuration minimale nécessite :
    1. un équipement - comme une climatisation, une valve thermostatique - qui est pilotée par sa propre entity de type climate,
  3. un équipement qui peut prendre une valeur de 0 à 100% (nommée thermostat_over_valve). A 0 le chauffage est coupé, 100% il est ouvert à fond. Ce type permet de piloter une valve thermostatique (cf. valve Shelly) qui expose une entité de type number. permetttant de piloter directement l’ouverture de la vanne. Versatile Thermostat régule la température de la pièce en jouant sur le pourcentage d’ouverture, à l’aide des capteurs de température intérieur et extérieur en utilisant l’algorithme TPI décrit ci-dessous.

Le type over_climate vous permet d’ajouter à votre équipement existant toutes les fonctionnalités apportées par VersatileThermostat. L’entité climate VersatileThermostat contrôlera votre entité climate sous-jacente, l’éteindra si les fenêtres sont ouvertes, la fera passer en mode Eco si personne n’est présent, etc. Voir [ici] (#pourquoi-un-nouveau-thermostat-implémentation). Pour ce type de thermostat, tous les cycles de chauffage sont contrôlés par l’entité climate sous-jacente et non par le thermostat polyvalent lui-même. Une fonction facultative d’auto-régulation permet au Versatile Thermostat d’ajuster la température donnée en consigne au sous-jacent afin d’atteindre la consigne.

Les installations avec fil pilote et diode d’activation bénéficie d’une option qui permet d’inverser la commande on/off du radiateur sous-jacent. Pour cela, utilisez le type over switch et cochez l’option d’inversion de la commande.

Incompatibilités

Certains thermostat de type TRV sont réputés incompatibles avec le Versatile Thermostat. C’est le cas des vannes suivantes :

  1. les vannes POPP de Danfoss avec retour de température. Il est impossible d’éteindre cette vanne et elle s’auto-régule d’elle-même causant des conflits avec le VTherm,
  2. les vannes thermstatiques « Homematic radio ». Elles ont un cycle de service incompatible avec une commande par le Versatile Thermostat

Pourquoi une nouvelle implémentation du thermostat ?

Ce composant nommé Versatile thermostat gère les cas d’utilisation suivants :

  • Configuration via l’interface graphique d’intégration standard (à l’aide du flux Config Entry),
  • Utilisations complètes du mode préréglages,
  • Désactiver le mode préréglé lorsque la température est définie manuellement sur un thermostat,
  • Éteindre/allumer un thermostat lorsqu’une porte ou des fenêtres sont ouvertes/fermées après un certain délai,
  • Changer de preset lorsqu’une activité est détectée ou non dans une pièce pendant un temps défini,
  • Utiliser un algorithme TPI (Time Proportional Interval) grâce à l’algorithme [Argonaute] ,
  • Ajouter une gestion de délestage ou une régulation pour ne pas dépasser une puissance totale définie. Lorsque la puissance maximale est dépassée, un préréglage caché de « puissance » est défini sur l’entité climatique. Lorsque la puissance passe en dessous du maximum, le préréglage précédent est restauré.
  • La gestion de la présence à domicile. Cette fonctionnalité vous permet de modifier dynamiquement la température du préréglage en tenant compte d’un capteur de présence de votre maison.
  • Des services pour interagir avec le thermostat à partir d’autres intégrations : vous pouvez forcer la présence / la non-présence à l’aide d’un service, et vous pouvez modifier dynamiquement la température des préréglages et changer les paramètres de sécurité.
  • Ajouter des capteurs pour voir les états internes du thermostat.

Comment installer cet incroyable Thermostat Versatile ?

HACS installation (recommendé)

  1. Installez HACS. De cette façon, vous obtenez automatiquement les mises à jour.
  2. L’intégration Versatile Thermostat est maintenant proposée directement depuis l’interface HACF (onglet intégrations),
  3. recherchez et installez « Versatile Thermostat » dans HACS et cliquez sur « installer ».
  4. Redémarrez Home Assistant.
  5. Ensuite, vous pouvez ajouter une intégration de Versatile Thermostat dans la page Paramètres / Intégrations. Vous ajoutez autant de thermostats dont vous avez besoin (généralement un par radiateur ou par groupe de radiateurs qui doivent être gérés ou par pompe dans le cas d’un chauffage centralisé)

Installation manuelle

  1. À l’aide de l’outil de votre choix, ouvrez le répertoire (dossier) de votre configuration HA (où vous trouverez configuration.yaml).
  2. Si vous n’avez pas de répertoire (dossier) custom_components, vous devez le créer.
  3. Dans le répertoire (dossier) custom_components, créez un nouveau dossier appelé versatile_thermostat.
  4. Téléchargez tous les fichiers du répertoire custom_components/versatile_thermostat/ (dossier) dans ce référentiel.
  5. Placez les fichiers que vous avez téléchargés dans le nouveau répertoire (dossier) que vous avez créé.
  6. Redémarrez l’assistant domestique
  7. Configurer la nouvelle intégration du Versatile Thermostat

Configuration

Note: aucune configuration dans configuration.yaml n’est nécessaire car toute la configuration est effectuée via l’interface graphique standard lors de l’ajout de l’intégration.

Cliquez sur le bouton Ajouter une intégration dans la page d’intégration

image

La configuration peut être modifiée via la même interface. Sélectionnez simplement le thermostat à modifier, appuyez sur « Configurer » et vous pourrez modifier certains paramètres ou la configuration.

Suivez ensuite les étapes de configuration comme suit :

Choix des attributs de base

Donnez les principaux attributs obligatoires :

  1. un nom (sera le nom de l’intégration et aussi le nom de l’entité climate)
  2. le type de thermostat thermostat_over_switch pour piloter un radiateur commandé par un switch ou thermostat_over_climate pour piloter un autre thermostat, ou thermostat_over_valve Cf. ci-dessus
  3. un identifiant d’entité de capteur de température qui donne la température de la pièce dans laquelle le radiateur est installé,
  4. une entité capteur de température donnant la température extérieure. Si vous n’avez pas de capteur externe, vous pouvez utiliser l’intégration météo locale
  5. une durée de cycle en minutes. A chaque cycle, le radiateur s’allumera puis s’éteindra pendant une durée calculée afin d’atteindre la température ciblée (voir preset ci-dessous). En mode over_climate, le cycle ne sert qu’à faire des controles de base mais ne régule pas directement la température. C’est le climate sous-jacent qui le fait,
  6. les températures minimales et maximales du thermostat,
  7. une puissance de l’équipement ce qui va activer les capteurs de puissance et énergie consommée par l’appareil,
  8. la liste des fonctionnalités qui seront utilisées pour ce thermostat. En fonction de vos choix, les écrans de configuration suivants s’afficheront ou pas.

Astuce Notes

  1. avec les types over_switch et over_valve, les calculs sont effectués à chaque cycle. Donc en cas de changement de conditions, il faudra attendre le prochain cycle pour voir un changement. Pour cette raison, le cycle ne doit pas être trop long. 5 min est une bonne valeur,
  2. si le cycle est trop court, le radiateur ne pourra jamais atteindre la température cible. Pour le radiateur à accumulation par exemple il sera sollicité inutilement.

Sélectionnez des entités pilotées

En fonction de votre choix sur le type de thermostat, vous devrez choisir une ou plusieurs entités de type switch, climate ou number. Seules les entités compatibles avec le type sont présentées.

Astuce Comment choisir le type
Le choix du type est important. Même si il toujours possible de le modifier ensuite via l’IHM de configuration, il est préférable de se poser les quelques questions suivantes :

  1. quel type d’équipement je vais piloter ? Dans l’ordre voici ce qu’il faut faire :
    1. si vous avez une vanne thermostatique (TRV) commandable dans Home Assistant via une entité de type number (par exemple une Shelly TRV), choisissez le type over_valve. C’est le type le plus direct et qui assure la meilleure régulation,
    2. si vous avez un radiateur électrique (avec ou sans fil pilote) et qu’une entité de type switch permet de l’allumer ou de l’éteindre, alors le type over_switch est préférable. La régulation sera faite par le Versatile Thermostat en fonction de la température mesuré par votre thermomètre, à l’endroit ou vous l’avez placé,
    3. dans tous les autres cas, utilisez le mode over_climate. Vous gardez votre entité climate d’origine et le Versatile Thermostat « ne fait que » piloter le on/off et la température cible de votre thermostat d’origine. La régulation est faite par votre thermostat d’origine dans ce cas. Ce mode est particulièrement adapté aux climatisations réversible tout-en-un dont l’exposition dans Home Assistant se limite à une entité de type climate
  2. quelle type de régulation je veux ? Si l’équipement piloté possède son propre mécanisme de régulation (clim, certaine vanne TRV) et que cette régulation fonctionne bien, optez pour un over_climate

Pour un thermostat de type thermostat_over_switch


L’algorithme à utiliser est aujourd’hui limité à TPI est disponible. Voir algorithme.
Si plusieurs entités de type sont configurées, la thermostat décale les activations afin de minimiser le nombre de switch actif à un instant t. Ca permet une meilleure répartition de la puissance puisque chaque radiateur va s’allumer à son tour.
Exemple de déclenchement synchronisé :
image

Il est possible de choisir un thermostat over switch qui commande une climatisation en cochant la case « AC Mode ». Dans ce cas, seul le mode refroidissement sera visible.

Si votre équipement est commandé par un fil pilote avec un diode, vous aurez certainement besoin de cocher la case « Inverser la case ». Elle permet de mettre le switch à On lorsqu’on doit étiendre l’équipement et à Off lorsqu’on doit l’allumer.

Pour un thermostat de type thermostat_over_climate:

Il est possible de choisir un thermostat over climate qui commande une climatisation réversible en cochant la case « AC Mode ». Dans ce cas, selon l’équipement commandé vous aurez accès au chauffage et/ou au réfroidissement.

L’auto-régulation

Depuis la release 3.8, vous avez la possibilité d’activer la fonction d’auto-régulation. Cette fonction autorise VersatileThermostat à adapter la consigne de température donnée au climate sous-jacent afin que la température de la pièce atteigne réellement la consigne.
Pour faire ça, le VersatileThermostat calcule un décalage basé sur les informations suivantes :

  1. la différence actuelle entre la température réelle et la température de consigne,
  2. l’accumulation des différences passées,
  3. la différence entre la température extérieure et la consigne

Ces trois informations sont combinées pour calculer le décalage qui sera ajouté à la consigne courante et envoyé au climate sous-jacent.

La fonction d’auto-régulation se paramètre avec :

  1. une dégré de régulation :
    1. Légère - pour des faibles besoin en auto-régulation. Dans ce mode, le décalage maximal sera de 1,5°,
    2. Medium - pour une auto-régulation moyenne. Un décalage maximal de 2° est possible dans ce mode,
    3. Forte - pour un fort besoin d’auto-régulation. Le décalage maximal est de 3° dans ce mode et l’auto-régulation réagira fortement aux changements de température.
  2. Un seuil d’auto-régulation : valeur en dessous de laquelle une nouvelle régulation ne sera pas appliquée. Imaginons qu’à un instant t, le décalage soit de 2°. Si au prochain calcul, le décalage est de 2.4°, il sera pas appliqué. Il ne sera appliqué que la différence entre 2 décalages sera au moins égal à ce seuil,
  3. Période minimal entre 2 auto-régulation : ce nombre, exprimé en minute, indique la durée entre 2 changements de régulation.

Ces trois paramètres permettent de moduler la régulation et éviter de multiplier les envois de régulation. Certains équipements comme les TRV, les chaudières n’aiment pas qu’on change la consigne de température trop souvent.

Astuce Conseil de mise en place

  1. Ne démarrez pas tout de suite l’auto-régulation. Regardez comment se passe la régulation naturelle de votre équipement. Si vous constatez que la température de consigne n’est pas atteinte ou qu’elle met trop de temps à être atteinte, démarrez la régulation,
  2. D’abord commencez par une légère auto-régulation et gardez les deux paramètres avec leur valeurs par défaut. Attendez quelques jours et vérifiez si la situation s’est améliorée,
  3. Si ce n’est pas suffisant, passez en auto-régulation Medium, attendez une stabilisation,
  4. Si ce n’est toujours pas suffisant, passez en auto-régulation Forte.

L’auto-régulation consiste à forcer l’équipement a aller plus loin en lui forçant sa température de consigne régulièrement. Sa consommation peut donc être augmentée, ainsi que son usure.

Pour un thermostat de type thermostat_over_valve:


Vous pouvez choisir jusqu’à entité du domaine number ou ìnput_number qui vont commander les vannes.
L’algorithme à utiliser est aujourd’hui limité à TPI est disponible. Voir algorithme.

Il est possible de choisir un thermostat over valve qui commande une climatisation en cochant la case « AC Mode ». Dans ce cas, seul le mode refroidissement sera visible.

Configurez les coefficients de l’algorithme TPI

Si vous avez choisi un thermostat de type over_switch ou over_valve vous arriverez sur cette page :

image

Vous devez donner :

  1. le coefficient coef_int de l’algorithme TPI,
  2. le coefficient coef_ext de l’algorithme TPI

Pour plus d’informations sur l’algorithme TPI et son réglage, veuillez vous référer à algorithm.

Configurer la température préréglée

Cliquez sur ‹ Valider › sur la page précédente et vous y arriverez :

image

Le mode préréglé (preset) vous permet de préconfigurer la température ciblée. Utilisé en conjonction avec Scheduler (voir scheduler vous aurez un moyen puissant et simple d’optimiser la température par rapport à la consommation électrique de votre maison. Les préréglages gérés sont les suivants :

  • Eco : l’appareil est en mode d’économie d’énergie
  • Confort : l’appareil est en mode confort
  • Boost : l’appareil tourne toutes les vannes à fond

Si le mode AC est utilisé, vous pourrez aussi configurer les températures lorsque l’équipement en mode climatisation.

Aucun est toujours ajouté dans la liste des modes, car c’est un moyen de ne pas utiliser les preset mais une température manuelle à la place.

Astuce Notes

  1. En modifiant manuellement la température cible, réglez le préréglage sur Aucun (pas de préréglage). De cette façon, vous pouvez toujours définir une température cible même si aucun préréglage n’est disponible.
  2. Le préréglage standard Away est un préréglage caché qui n’est pas directement sélectionnable. Versatile Thermostat utilise la gestion de présence ou la gestion de mouvement pour régler automatiquement et dynamiquement la température cible en fonction d’une présence dans le logement ou d’une activité dans la pièce. Voir gestion de la présence.
  3. Si vous utilisez la gestion du délestage, vous verrez un préréglage caché nommé power. Le préréglage de l’élément chauffant est réglé sur « puissance » lorsque des conditions de surpuissance sont rencontrées et que le délestage est actif pour cet élément chauffant. Voir gestion de l’alimentation.
  4. si vous utilisez la configuration avancée, vous verrez le préréglage défini sur sécurité si la température n’a pas pu être récupérée après un certain délai
  5. Si vous ne souhaitez pas utiliser le préréglage, indiquez 0 comme température. Le préréglage sera alors ignoré et ne s’affichera pas dans le composant front

Configurer les portes/fenêtres en allumant/éteignant les thermostats

Vous devez avoir choisi la fonctionnalité Avec détection des ouvertures dans la première page pour arriver sur cette page.
La détecttion des ouvertures peut se faire de 2 manières:

  1. soit avec un capteur placé sur l’ouverture (mode capteur),
  2. soit en détectant une chute brutale de température (mode auto)

Le mode capteur

En mode capteur, vous devez renseigner les informations suivantes:

  1. un identifiant d’entité d’un capteur de fenêtre/porte. Cela devrait être un binary_sensor ou un input_boolean. L’état de l’entité doit être ‹ on › lorsque la fenêtre est ouverte ou ‹ off › lorsqu’elle est fermée
  2. un délai en secondes avant tout changement. Cela permet d’ouvrir rapidement une fenêtre sans arrêter le chauffage.

Le mode auto

En mode auto, la configuration est la suivante:

  1. un seuil de détection en degré par minute. Lorsque la température chute au delà de ce seuil, le thermostat s’éteindra. Plus cette valeur est faible et plus la détection sera rapide (en contre-partie d’un risque de faux positif),
  2. un seuil de fin de détection en degré par minute. Lorsque la chute de température repassera au-dessus cette valeur, le thermostat se remettra dans le mode précédent (mode et preset),
  3. une durée maximale de détection. Au delà de cette durée, le thermostat se remettra dans son mode et preset précédent même si la température continue de chuter.

Pour régler les seuils il est conseillé de commencer avec les valeurs de référence et d’ajuster les seuils de détection. Quelques essais m’ont donné les valeurs suivantes (pour un bureau):

  • seuil de détection : 0,05 °C/min
  • seuil de non détection: 0 °C/min
  • durée max : 60 min.

Un nouveau capteur « slope » a été ajouté pour tous les thermostats. Il donne la pente de la courbe de température en °C/min (ou °K/min). Cette pente est lissée et filtrée pour éviter les valeurs abérrantes des thermomètres qui viendraient pertuber la mesure.
image

Pour bien régler il est conseillé d’affocher sur un même graphique historique la courbe de température et la pente de la courbe (le « slope ») :

Et c’est tout ! votre thermostat s’éteindra lorsque les fenêtres seront ouvertes et se rallumera lorsqu’il sera fermé.

Astuce Notes

  1. Si vous souhaitez utiliser plusieurs capteurs de porte/fenêtre pour automatiser votre thermostat, créez simplement un groupe avec le comportement habituel (Group - Home Assistant)
  2. Si vous n’avez pas de capteur de fenêtre/porte dans votre chambre, laissez simplement l’identifiant de l’entité du capteur vide,
  3. Un seul mode est permis. On ne peut pas configurer un thermostat avec un capteur et une détection automatique. Les 2 modes risquant de se contredire, il n’est pas possible d’avoir les 2 modes en même temps,
  4. Il est déconseillé d’utiliser le mode automatique pour un équipement soumis à des variations de température fréquentes et normales (couloirs, zones ouvertes, …)

Configurer le mode d’activité ou la détection de mouvement

Si vous avez choisi la fonctionnalité Avec détection de mouvement, cliquez sur ‹ Valider › sur la page précédente et vous y arriverez :

Nous allons maintenant voir comment configurer le nouveau mode Activité.
Ce dont nous avons besoin:

  • un capteur de mouvement. ID d’entité d’un capteur de mouvement. Les états du capteur de mouvement doivent être « on » (mouvement détecté) ou « off » (aucun mouvement détecté)
  • une durée de délai de mouvement (en secondes) définissant combien de temps nous attendons la confirmation du mouvement avant de considérer le mouvement. Ce paramètre peut être supérieur à la temporision de votre détecteur de mouvement, sinon la détection se fera à chaque mouvement signalé par le détecteur,
  • une durée de fin délai de mouvement (en secondes) définissant combien de temps nous attendons la confirmation d’une fin de mouvement avant de ne plus considérer le mouvement.
  • un **préréglage de « mouvement » **. Nous utiliserons la température de ce préréglage lorsqu’une activité sera détectée.
  • un préréglage « pas de mouvement ». Nous utiliserons la température de ce deuxième préréglage lorsqu’aucune activité n’est détectée.

Alors imaginons que nous voulions avoir le comportement suivant :

  • nous avons une pièce avec un thermostat réglé en mode activité, le mode « mouvement » choisi est confort (21,5°C), le mode « pas de mouvement » choisi est Eco (18.5°C) et la temporisation du mouvement est de 30 sec lors de la détection et de 5 minutes sur fin de détection.
  • la pièce est vide depuis un moment (aucune activité détectée), la température de cette pièce est de 18,5°
  • quelqu’un entre dans la pièce, une activité est détectée si le mouvement est présent pendant au moins 30 sec. La température passe alors à 21,5°
  • si le mouvement est présent pendant moins de 30 sec (passage rapide), la température reste sur 18,5°,
  • imaginons que la température soit passée sur 21,5°, lorsque la personne quitte la pièce, au bout de 5 min la température est ramenée à 18,5°.
  • si la personne revient avant les 5 minutes, la température reste sur 21,5°

Pour que cela fonctionne, le thermostat doit être en mode préréglé « Activité ».

Astuce Notes
1. Sachez que comme pour les autres modes prédéfinis, Activity ne sera proposé que s’il est correctement configuré. En d’autres termes, les 4 clés de configuration doivent être définies si vous souhaitez voir l’activité dans l’interface de l’assistant domestique

Configurer la gestion de la puissance

Si vous avez choisi la fonctionnalité Avec détection de la puissance, cliquez sur ‹ Valider › sur la page précédente et vous arriverez ici :

image

Cette fonction vous permet de réguler la consommation électrique de vos radiateurs. Connue sous le nom de délestage, cette fonction vous permet de limiter la consommation électrique de votre appareil de chauffage si des conditions de surpuissance sont détectées. Donnez un capteur à la consommation électrique actuelle de votre maison, un capteur à la puissance max qu’il ne faut pas dépasser, la consommation électrique de votre chauffage (en étape 1 de la configuration) et l’algorithme ne démarrera pas un radiateur si la puissance maximale sera dépassée après le démarrage du radiateur.

Notez que toutes les valeurs de puissance doivent avoir les mêmes unités (kW ou W par exemple).
Cela vous permet de modifier la puissance maximale au fil du temps à l’aide d’un planificateur ou de ce que vous voulez.

Astuce Notes

  1. En cas de délestage, le radiateur est réglé sur le préréglage nommé power. Il s’agit d’un préréglage caché, vous ne pouvez pas le sélectionner manuellement.
  2. Je l’utilise pour éviter de dépasser la limite de mon contrat d’électricité lorsqu’un véhicule électrique est en charge. Cela crée une sorte d’autorégulation.
  3. Gardez toujours une marge, car la puissance max peut être brièvement dépassée en attendant le calcul du prochain cycle typiquement ou par des équipements non régulés.
  4. Si vous ne souhaitez pas utiliser cette fonctionnalité, laissez simplement l’identifiant des entités vide

Configurer la présence ou l’occupation

Si sélectionnée en première page, cette fonction vous permet de modifier dynamiquement la température de tous les préréglages du thermostat configurés lorsque personne n’est à la maison ou lorsque quelqu’un rentre à la maison. Pour cela, vous devez configurer la température qui sera utilisée pour chaque préréglage lorsque la présence est désactivée. Lorsque le capteur de présence s’éteint, ces températures seront utilisées. Lorsqu’il se rallume, la température « normale » configurée pour le préréglage est utilisée. Voir gestion des préréglages.
Pour configurer la présence remplissez ce formulaire :

Pour cela, vous devez configurer :

  1. Un capteur d’occupation dont l’état doit être ‹ on › ou ‹ home › si quelqu’un est présent ou ‹ off › ou ‹ not_home › sinon,
  2. La température utilisée en Eco prédéfinie en cas d’absence,
  3. La température utilisée en Confort préréglée en cas d’absence,
  4. La température utilisée en Boost préréglée en cas d’absence

Si le mode AC est utilisé, vous pourrez aussi configurer les températures lorsque l’équipement en mode climatisation.

Astuce Notes

  1. le changement de température est immédiat et se répercute sur le volet avant. Le calcul prendra en compte la nouvelle température cible au prochain calcul du cycle,
  2. vous pouvez utiliser le capteur direct person.xxxx ou un groupe de capteurs de Home Assistant. Le capteur de présence gère les états on ou home comme présents et les états off ou not_home comme absents.

Configuration avancée

Ces paramètres permettent d’affiner le réglage du thermostat.
Le formulaire de configuration avancée est le suivant :

image

Le premier délai (minimal_activation_delay_sec) en secondes est le délai minimum acceptable pour allumer le chauffage. Lorsque le calcul donne un délai de mise sous tension inférieur à cette valeur, le chauffage reste éteint.

Le deuxième délai (security_delay_min) est le délai maximal entre deux mesures de température avant de régler le préréglage sur security. Si le capteur de température ne donne plus de mesures de température, le thermostat et le radiateur passeront en mode security après ce délai. Ceci est utile pour éviter une surchauffe si la batterie de votre capteur de température est trop faible.

Le troisième paramétre (security_min_on_percent) est la valeur minimal de on_percent en dessous de laquelle le préréglage sécurité ne sera pas activé. Ce paramètre permet de ne pas mettre en sécurité un thermostat, si le radiateur piloté ne chauffe pas suffisament.
Mettre ce paramètre à 0.00 déclenchera le préréglage sécurité quelque soit la dernière consigne de chauffage, à l’inverse 1.00 ne déclenchera jamais le préréglage sécurité ( ce qui revient à désactiver la fonction).

Le quatrième param§tre (security_default_on_percent) est la valeur de on_percent qui sera utilisée lorsque le thermostat passe en mode security. Si vous mettez 0 alors le thermostat sera coupé lorsqu’il passe en mode security, mettre 0,2% par exemple permet de garder un peu de chauffage (20% dans ce cas), même en mode security. Ca évite de retrouver son logement totalement gelé lors d’une panne de thermomètre.

Voir exemple de réglages pour avoir des exemples de réglage communs

Astuce Notes

  1. Lorsque le capteur de température viendra à la vie et renverra les températures, le préréglage sera restauré à sa valeur précédente,
  2. Attention, deux températures sont nécessaires : la température interne et la température externe et chacune doit donner la température, sinon le thermostat sera en préréglage « security »,
  3. Un service est disponible qui permet de régler les 3 paramètres de sécurité. Ca peut servir à adapter la fonction de sécurité à votre usage,
  4. Pour un usage naturel, le security_default_on_percent doit être inférieur à security_min_on_percent,
  5. Les thermostats de type thermostat_over_climate ne sont pas concernés par le mode security.

Synthèse des paramètres

Paramètre Libellé « over switch » « over climate » over valve
name Nom X X X
thermostat_type Type de thermostat X X X
temperature_sensor_entity_id Temperature sensor entity id X - X
external_temperature_sensor_entity_id Température exterieure sensor entity id X - X
cycle_min Durée du cycle (minutes) X X X
temp_min Température minimale permise X X X
temp_max Température maximale permise X X X
device_power Puissance de l’équipement X X X
use_window_feature Avec détection des ouvertures X X X
use_motion_feature Avec détection de mouvement X X X
use_power_feature Avec gestion de la puissance X X X
use_presence_feature Avec détection de présence X X X
heater_entity1_id 1er radiateur X - -
heater_entity2_id 2ème radiateur X - -
heater_entity3_id 3ème radiateur X - -
heater_entity4_id 4ème radiateur X - -
proportional_function Algorithme X - -
climate_entity1_id Thermostat sous-jacent - X -
climate_entity2_id 2ème thermostat sous-jacent - X -
climate_entity3_id 3ème thermostat sous-jacent - X -
climate_entity4_id 4ème thermostat sous-jacent - X -
valve_entity1_id Vanne sous-jacente - - X
valve_entity2_id 2ème vanne sous-jacente - - X
valve_entity3_id 3ème vanne sous-jacente - - X
valve_entity4_id 4ème vanne sous-jacente - - X
ac_mode utilisation de l’air conditionné (AC) ? X X X
tpi_coef_int Coefficient à utiliser pour le delta de température interne X - X
tpi_coef_ext Coefficient à utiliser pour le delta de température externe X - X
eco_temp Température en preset Eco X X X
comfort_temp Température en preset Confort X X X
boost_temp Température en preset Boost X X X
eco_ac_temp Température en preset Eco en mode AC X X X
comfort_ac_temp Température en preset Confort en mode AC X X X
boost_ac_temp Température en preset Boost en mode AC X X X
window_sensor_entity_id Détecteur d’ouverture (entity id) X X X
window_delay Délai avant extinction (secondes) X X X
window_auto_open_threshold Seuil haut de chute de température pour la détection automatique (en °/min) X X X
window_auto_close_threshold Seuil bas de chute de température pour la fin de détection automatique (en °/min) X X X
window_auto_max_duration Durée maximum d’une extinction automatique (en min) X X X
motion_sensor_entity_id Détecteur de mouvement entity id X X X
motion_delay Délai avant prise en compte du mouvement (seconds) X X X
motion_off_delay Délai avant prise en compte de la fin de mouvement (seconds) X X X
motion_preset Preset à utiliser si mouvement détecté X X X
no_motion_preset Preset à utiliser si pas de mouvement détecté X X X
power_sensor_entity_id Capteur de puissance totale (entity id) X X X
max_power_sensor_entity_id Capteur de puissance Max (entity id) X X X
power_temp Température si délestaqe X X X
presence_sensor_entity_id Capteur de présence entity id (true si quelqu’un est présent) X X X
eco_away_temp Température en preset Eco en cas d’absence X X X
comfort_away_temp Température en preset Comfort en cas d’absence X X X
boost_away_temp Température en preset Boost en cas d’absence X X X
eco_ac_away_temp Température en preset Eco en cas d’absence en mode AC X X X
comfort_ac_away_temp Température en preset Comfort en cas d’absence en mode AC X X X
boost_ac_away_temp Température en preset Boost en cas d’absence en mode AC X X X
minimal_activation_delay Délai minimal d’activation X - -
security_delay_min Délai maximal entre 2 mesures de températures X - X
security_min_on_percent Pourcentage minimal de puissance pour passer en mode sécurité X - X
auto_regulation_mode Le mode d’auto-régulation - X -
auto_regulation_dtemp La seuil d’auto-régulation - X -
auto_regulation_period_min La période minimale d’auto-régulation - X -
inverse_switch_command Inverse la commande du switch (pour switch avec fil pilote) X - -

Exemples de réglage

Chauffage électrique

  • cycle : entre 5 et 10 minutes,
  • minimal_activation_delay_sec : 30 secondes

Chauffage central (chauffage gaz ou fuel)

  • cycle : entre 30 et 60 min,
  • minimal_activation_delay_sec : 300 secondes (à cause du temps de réponse)

Le capteur de température alimenté par batterie

  • security_delay_min : 60 min (parce que ces capteurs sont paresseux)
  • security_min_on_percent : 0,5 (50% - on passe en preset security si le radiateur chauffait plus de 50% du temps)
  • security_default_on_percent : 0,1 (10% - en preset security, on garde un fond de chauffe de 20% du temps)

Il faut comprendre ces réglages comme suit :

Si le thermomètre n’envoie plus la température pendant 1 heure et que le pourcentage de chauffe (on_percent) était supérieur à 50 %, alors on ramène ce pourcentage de chauffe à 10 %.

A vous d’adapter ces réglages à votre cas !

Ce qui est important c’est de ne pas prendre trop de risque avec ces paramètres : supposez que vous êtes absent pour une longue période, que les piles de votre thermomètre arrivent en fin de vie, votre radiateur va chauffer 10% du temps pendant toute la durée de la panne.

Versatile Thermostat vous permet d’être notifié lorsqu’un évènement de ce type survient. Mettez en place, les alertes qui vont bien dès l’utilisation de ce thermostat. Cf. (#notifications)

Capteur de température réactif (sur secteur)

  • security_delay_min : 15 min
  • security_min_on_percent : 0,7 (70% - on passe en preset security si le radiateur chauffait plus de 70% du temps)
  • security_default_on_percent : 0,25 (25% - en preset security, on garde un fond de chauffe de 25% du temps)

Mes presets

Ceci est juste un exemple de la façon dont j’utilise le préréglage. A vous de vous adapter à votre configuration mais cela peut être utile pour comprendre son fonctionnement.
Éco : 17 °C
Confort : 19 °C
Boost : 20 °C

Lorsque la présence est désactivée :
Éco : 16,5 °C
Confort : 17 °C
Boost : 18 °C

Le détecteur de mouvement de mon bureau est configuré pour utiliser Boost lorsqu’un mouvement est détecté et Eco sinon.

Algorithme

Cette intégration utilise un algorithme proportionnel. Un algorithme proportionnel est utile pour éviter l’oscillation autour de la température cible. Cet algorithme est basé sur un cycle qui alterne le chauffage et l’arrêt du chauffage. La proportion de chauffage par rapport à l’absence de chauffage est déterminée par la différence entre la température et la température cible. Plus grande est la différence et plus grande est la proportion de chauffage à l’intérieur du cycle.

Cet algorithme fait converger la température et arrête d’osciller.

Algorithme TPI

L’algorithme TPI consiste à calculer à chaque cycle un pourcentage d’état On vs Off pour le radiateur en utilisant la température cible, la température actuelle dans la pièce et la température extérieure actuelle. Cet algorithme n’est donc valable que pour les Versatile Thermostat qui régulent : over_switch et over_valve.

Le pourcentage est calculé avec cette formule :

on_percent = coef_int * (température cible - température actuelle) + coef_ext * (température cible - température extérieure)
Ensuite, l'algo fait en sorte que 0 <= on_percent <= 1

Les valeurs par défaut pour coef_int et coef_ext sont respectivement : 0.6 et 0.01. Ces valeurs par défaut conviennent à une pièce standard bien isolée.

Pour régler ces coefficients, gardez à l’esprit que :

  1. si la température cible n’est pas atteinte après une situation stable, vous devez augmenter le coef_ext (le on_percent est trop bas),
  2. si la température cible est dépassée après une situation stable, vous devez diminuer le coef_ext (le on_percent est trop haut),
  3. si l’atteinte de la température cible est trop lente, vous pouvez augmenter le coef_int pour donner plus de puissance au réchauffeur,
  4. si l’atteinte de la température cible est trop rapide et que des oscillations apparaissent autour de la cible, vous pouvez diminuer le coef_int pour donner moins de puissance au radiateur.

En type over_valve le on_percent est ramené à une valeur entre 0 et 100% et sert directement à commander l’ouverture de la vanne.

Voir quelques situations à examples.

Capteurs

Avec le thermostat sont disponibles des capteurs qui permettent de visualiser les alertes et l’état interne du thermostat. Ils sont disponibles dans les entités de l’appareil associé au thermostat :

Dans l’ordre, il y a :

  1. l’entité principale climate de commande du thermostat,
  2. l’énergie consommée par le thermostat (valeur qui s’incrémente en permanence),
  3. l’heure de réception de la dernière température extérieure,
  4. l’heure de réception de la dernière température intérieure,
  5. la puissance moyenne de l’appareil sur le cycle (pour les TPI seulement),
  6. le temps passé à l’état éteint dans le cycle (TPI seulement),
  7. le temps passé à l’état allumé dans le cycle (TPI seulement),
  8. l’état de délestage,
  9. le pourcentage de puissance sur le cycle (TPI seulement),
  10. l’état de présence (si la gestion de la présence est configurée),
  11. l’état de sécurité,
  12. l’état de l’ouverture (si la gestion des ouvertures est configurée),
  13. l’état du mouvement (si la gestion du mouvements est configurée)
  14. le pourcentage d’ouverture de la vanne (pour le type over_valve)

Pour colorer les capteurs, ajouter ces lignes et personnalisez les au besoin, dans votre configuration.yaml :

frontend:
  themes:
    versatile_thermostat_theme:
      state-binary_sensor-safety-on-color: "#FF0B0B"
      state-binary_sensor-power-on-color: "#FF0B0B"
      state-binary_sensor-window-on-color: "rgb(156, 39, 176)"
      state-binary_sensor-motion-on-color: "rgb(156, 39, 176)"
      state-binary_sensor-presence-on-color: "lightgreen"
      state-binary_sensor-running-on-color: "orange"

et choisissez le thème versatile_thermostat_theme dans la configuration du panel. Vous obtiendrez quelque-chose qui va ressembler à ça :

image

Services

Cette implémentation personnalisée offre des services spécifiques pour faciliter l’intégration avec d’autres composants Home Assistant.

Forcer la présence/occupation

Ce service permet de forcer l’état de présence indépendamment du capteur de présence. Cela peut être utile si vous souhaitez gérer la présence via un service et non via un capteur. Par exemple, vous pouvez utiliser votre réveil pour forcer l’absence lorsqu’il est allumé.

Le code pour appeler ce service est le suivant :

service : versatile_thermostat.set_presence
Les données:
    présence : "off"
cible:
    entity_id : climate.my_thermostat

Modifier la température des préréglages

Ce service est utile si vous souhaitez modifier dynamiquement la température préréglée. Au lieu de changer de préréglage, certains cas d’utilisation doivent modifier la température du préréglage. Ainsi, vous pouvez garder le Programmateur inchangé pour gérer le préréglage et ajuster la température du préréglage.
Si le préréglage modifié est actuellement sélectionné, la modification de la température cible est immédiate et sera prise en compte au prochain cycle de calcul.

Vous pouvez modifier l’une ou les deux températures (lorsqu’elles sont présentes ou absentes) de chaque préréglage.

Utilisez le code suivant pour régler la température du préréglage :

service : versatile_thermostat.set_preset_temperature
date:
    preset : boost
    temperature : 17,8
    temperature_away : 15
target:
    entity_id : climate.my_thermostat

Ou pour changer le pré-réglage du mode Air Conditionné (AC) ajoutez un préfixe `_ac`` au nom du preset comme ceci :

service: versatile_thermostat.set_preset_temperature
data:
    preset: boost_ac
    temperature: 25
    temperature_away: 30
target:
    entity_id: climate.my_thermostat

Astuce Notes
- après un redémarrage, les préréglages sont réinitialisés à la température configurée. Si vous souhaitez que votre changement soit permanent, vous devez modifier le préréglage de la température dans la configuration de l’intégration.

Modifier les paramètres de sécurité

Ce service permet de modifier dynamiquement les paramètres de sécurité décrits ici Configuration avancée.
Si le thermostat est en mode security les nouveaux paramètres sont appliqués immédiatement.

Pour changer les paramètres de sécurité utilisez le code suivant :

service : versatile_thermostat.set_security
data:
    min_on_percent: "0.5"
    default_on_percent: "0.1"
    delay_min: 60
target:
    entity_id : climate.my_thermostat

ByPass Window Check

Ce service permet d’activer ou non un bypass de la vérification des fenetres.
Il permet de continuer à chauffer même si la fenetre est detectée ouverte.
Mis à true les modifications de status de la fenetre n’auront plus d’effet sur le thermostat, remis à false cela s’assurera de désactiver le thermostat si la fenetre est toujours ouverte.

Pour changer le paramètre de bypass utilisez le code suivant :

service : versatile_thermostat.set_window_bypass
data:
    window_bypass: true
target:
    entity_id : climate.my_thermostat

Notifications

Les évènements marquant du thermostat sont notifiés par l’intermédiaire du bus de message.
Les évènements notifiés sont les suivants:

  • versatile_thermostat_security_event : un thermostat entre ou sort du preset security
  • versatile_thermostat_power_event : un thermostat entre ou sort du preset power
  • versatile_thermostat_temperature_event : une ou les deux mesures de température d’un thermostat n’ont pas été mis à jour depuis plus de `security_delay_min`` minutes
  • versatile_thermostat_hvac_mode_event : le thermostat est allumé ou éteint. Cet évènement est aussi diffusé au démarrage du thermostat
  • versatile_thermostat_preset_event : un nouveau preset est sélectionné sur le thermostat. Cet évènement est aussi diffusé au démarrage du thermostat

Si vous avez bien suivi, lorsqu’un thermostat passe en mode sécurité, 3 évènements sont déclenchés :

  1. versatile_thermostat_temperature_event pour indiquer qu’un thermomètre ne répond plus,
  2. versatile_thermostat_preset_event pour indiquer le passage en preset security,
  3. versatile_thermostat_hvac_mode_event pour indiquer l’extinction éventuelle du thermostat

Chaque évènement porte les valeurs clés de l’évènement (températures, preset courant, puissance courante, …) ainsi que les états du thermostat.

Vous pouvez très facilement capter ses évènements dans une automatisation par exemple pour notifier les utilisateurs.

Attributs personnalisés

Pour régler l’algorithme, vous avez accès à tout le contexte vu et calculé par le thermostat via des attributs dédiés. Vous pouvez voir (et utiliser) ces attributs dans l’IHM « Outils de développement / états » de HA. Entrez votre thermostat et vous verrez quelque chose comme ceci :

Les attributs personnalisés sont les suivants :

Attribut Signification
hvac_modes La liste des modes supportés par le thermostat
temp_min La température minimale
temp_max La température maximale
preset_modes Les préréglages visibles pour ce thermostat. Les préréglages cachés ne sont pas affichés ici
temperature_actuelle La température actuelle telle que rapportée par le capteur
temperature La température cible
action_hvac L’action en cours d’exécution par le réchauffeur. Peut être inactif, chauffage
preset_mode Le préréglage actuellement sélectionné. Peut être l’un des ‹ preset_modes › ou un préréglage caché comme power
[eco/confort/boost]_temp La température configurée pour le préréglage xxx
[eco/confort/boost]_away_temp La température configurée pour le préréglage xxx lorsque la présence est désactivée ou not_home
temp_power La température utilisée lors de la détection de la perte
on_percent Le pourcentage sur calculé par l’algorithme TPI
on_time_sec La période On en sec. Doit être on_percent * cycle_min
off_time_sec La période d’arrêt en sec. Doit être (1 - on_percent) * cycle_min
cycle_min Le cycle de calcul en minutes
function L’algorithme utilisé pour le calcul du cycle
tpi_coef_int Le coef_int de l’algorithme TPI
tpi_coef_ext Le coef_ext de l’algorithme TPI
saved_preset_mode Le dernier preset utilisé avant le basculement automatique du preset
saved_target_temp La dernière température utilisée avant la commutation automatique
window_state Le dernier état connu du capteur de fenêtre. Aucun si la fenêtre n’est pas configurée
window_bypass_state True si le bypass de la détection d’ouverture et activé
motion_state Le dernier état connu du capteur de mouvement. Aucun si le mouvement n’est pas configuré
overpowering_state Le dernier état connu du capteur surpuissant. Aucun si la gestion de l’alimentation n’est pas configurée
presence_state Le dernier état connu du capteur de présence. Aucun si la gestion de présence n’est pas configurée
security_delay_min Le délai avant de régler le mode de sécurité lorsque le capteur de température est éteint
security_min_on_percent Pourcentage de chauffe en dessous duquel le thermostat ne passera pas en sécurité
security_default_on_percent Pourcentage de chauffe utilisé lorsque le thermostat est en sécurité
last_temperature_datetime La date et l’heure au format ISO8866 de la dernière réception de température interne
last_ext_temperature_datetime La date et l’heure au format ISO8866 de la dernière réception de température extérieure
security_state L’état de sécurité. vrai ou faux
minimal_activation_delay_sec Le délai d’activation minimal en secondes
last_update_datetime La date et l’heure au format ISO8866 de cet état
friendly_name Le nom du thermostat
supported_features Une combinaison de toutes les fonctionnalités prises en charge par ce thermostat. Voir la documentation officielle sur l’intégration climatique pour plus d’informations
valve_open_percent Le pourcentage d’ouverture de la vanne
regulated_target_temperature La température de consigne calculée par l’auto-régulation
is_inversed True si la commande est inversée (fil pilote avec diode)

Quelques résultats

Convergence de la température vers la cible configurée par preset:
image

Cycle de marche/arrêt calculé par l’intégration :
image

Coef_int trop élevé (oscillations autour de la cible)
image

Évolution du calcul de l’algorithme
image
Voir le code de ce composant [ci-dessous]

Thermostat finement réglé
Merci impuR_Shozz !
On peut voir une stabilité autour de la température cible (consigne) et lorsqu’à cible le on_percent (puissance) est proche de 0,3 ce qui semble une très bonne valeur.

image

Enjoy !

Encore mieux

Encore mieux avec le composant Scheduler !

Afin de profiter de toute la puissance du Versatile Thermostat, je vous invite à l’utiliser avec GitHub - nielsfaber/scheduler-component: Custom component for HA that enables the creation of scheduler entities
En effet, le composant scheduler propose une gestion de la base climatique sur les modes prédéfinis. Cette fonctionnalité a un intérêt limité avec le thermostat générique mais elle devient très puissante avec le thermostat Awesome :

À partir d’ici, je suppose que vous avez installé Awesome Thermostat et Scheduler Component.

Dans Scheduler, ajoutez un planning :

image

Choisissez le groupe « climat », choisissez une (ou plusieurs) entité(s), sélectionnez « MAKE SCHEME » et cliquez sur suivant :
(il est possible de choisir « SET PRESET », mais je préfère utiliser « MAKE SCHEME »)

Définissez votre schéma de mode et enregistrez :

Dans cet exemple, j’ai réglé le mode ECO pendant la nuit et le jour lorsqu’il n’y a personne à la maison BOOST le matin et CONFORT le soir.

J’espère que cet exemple vous aidera, n’hésitez pas à me faire part de vos retours !

Encore bien mieux avec la custom:simple-thermostat front integration

Le custom:simple-thermostat ici est une excellente intégration qui permet une certaine personnalisation qui s’adapte bien à ce thermostat.
Vous pouvez avoir quelque chose comme ça très facilement image
Exemple de configuration :

      type: custom:simple-thermostat
      entity: climate.thermostat_sam2
      layout:
        step: row
      label:
        temperature: T°
        state: Etat
      hide:
        state: false
      control:
        hvac:
          _name: Mode
        preset:
          _name: Preset
      sensors:
        - entity: sensor.total_puissance_radiateur_sam2
          icon: mdi:lightning-bolt-outline
      header:
        toggle:
          entity: input_boolean.etat_ouverture_porte_sam
          name: Porte sam

Vous pouvez personnaliser ce composant à l’aide du composant HACS card-mod pour ajuster les couleurs des alertes. Exemple pour afficher en rouge les alertes sécurité et délestage :

          card_mod:
            style: |
              {% if is_state('binary_sensor.thermostat_chambre_security_state', 'on') %}
              ha-card .body .sensor-heading ha-icon[icon="mdi:alert-outline"] {
                color: red;
              }
              {% endif %}
              {% if is_state('binary_sensor.thermostat_chambre_overpowering_state', 'on') %}
              ha-card .body .sensor-heading ha-icon[icon="mdi:flash"] {
                color: red;
              }
              {% endif %}

image

Toujours mieux avec Apex-chart pour régler votre thermostat

Vous pouvez obtenir une courbe comme celle présentée dans some results avec une sorte de configuration de graphique Apex uniquement en utilisant les attributs personnalisés du thermostat décrits ici :

type: custom:apexcharts-card
header:
  show: true
  title: Tuning chauffage
  show_states: true
  colorize_states: true
update_interval: 60sec
graph_span: 4h
yaxis:
  - id: left
    show: true
    decimals: 2
  - id: right
    decimals: 2
    show: true
    opposite: true
series:
  - entity: climate.thermostat_mythermostat
    attribute: temperature
    type: line
    name: Target temp
    curve: smooth
    yaxis_id: left
  - entity: climate.thermostat_mythermostat
    attribute: current_temperature
    name: Current temp
    curve: smooth
    yaxis_id: left
  - entity: climate.thermostat_mythermostat    <--- for over_switch
    attribute: on_percent
    name: Power percent
    curve: stepline
    yaxis_id: right
  - entity: climate.thermostat_mythermostat    <--- for over_thermostast
    attribute: regulated_target_temperature
    name: Regulated temperature
    curve: stepline
    yaxis_id: left
  - entity: climate.thermostat_mythermostat    <--- for over_valve
    attribute: valve_open_percent
    name: Valve open percent
    curve: stepline
    yaxis_id: right

Et toujours de mieux en mieux avec l’AappDaemon NOTIFIER pour notifier les évènements

Cette automatisation utilise l’excellente App Daemon nommée NOTIFIER développée par Horizon Domotique que vous trouverez en démonstration ici et le code est ici. Elle permet de notifier les utilisateurs du logement lorsqu’un des évènements touchant à la sécurité survient sur un des Versatile Thermostats.

C’est un excellent exemple de l’utilisation des notifications décrites ici notification.

alias: Surveillance Mode Sécurité chauffage
description: Envoi une notification si un thermostat passe en mode sécurité ou power
trigger:
  - platform: event
    event_type: versatile_thermostat_security_event
    id: versatile_thermostat_security_event
  - platform: event
    event_type: versatile_thermostat_power_event
    id: versatile_thermostat_power_event
  - platform: event
    event_type: versatile_thermostat_temperature_event
    id: versatile_thermostat_temperature_event
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: versatile_thermostat_security_event
        sequence:
          - event: NOTIFIER
            event_data:
              action: send_to_jmc
              title: >-
                Radiateur {{ trigger.event.data.name }} - {{
                trigger.event.data.type }} Sécurité
              message: >-
                Le radiateur {{ trigger.event.data.name }} est passé en {{
                trigger.event.data.type }} sécurité car le thermomètre ne répond
                plus.\n{{ trigger.event.data }}
              callback:
                - title: Stopper chauffage
                  event: stopper_chauffage
              image_url: /media/local/alerte-securite.jpg
              click_url: /lovelace-chauffage/4
              icon: mdi:radiator-off
              tag: radiateur_security_alerte
              persistent: true
      - conditions:
          - condition: trigger
            id: versatile_thermostat_power_event
        sequence:
          - event: NOTIFIER
            event_data:
              action: send_to_jmc
              title: >-
                Radiateur {{ trigger.event.data.name }} - {{
                trigger.event.data.type }} Délestage
              message: >-
                Le radiateur {{ trigger.event.data.name }} est passé en {{
                trigger.event.data.type }} délestage car la puissance max est
                dépassée.\n{{ trigger.event.data }}
              callback:
                - title: Stopper chauffage
                  event: stopper_chauffage
              image_url: /media/local/alerte-delestage.jpg
              click_url: /lovelace-chauffage/4
              icon: mdi:radiator-off
              tag: radiateur_power_alerte
              persistent: true
      - conditions:
          - condition: trigger
            id: versatile_thermostat_temperature_event
        sequence:
          - event: NOTIFIER
            event_data:
              action: send_to_jmc
              title: >-
                Le thermomètre du radiateur {{ trigger.event.data.name }} ne
                répond plus
              message: >-
                Le thermomètre du radiateur {{ trigger.event.data.name }} ne
                répond plus depuis longtemps.\n{{ trigger.event.data }}
              image_url: /media/local/thermometre-alerte.jpg
              click_url: /lovelace-chauffage/4
              icon: mdi:radiator-disabled
              tag: radiateur_thermometre_alerte
              persistent: true
mode: queued
max: 30

Les contributions sont les bienvenues !

Si vous souhaitez contribuer, veuillez lire les directives de contribution


18 « J'aime »

Hello ! Super idée de créer ton post dédié, plus facile à maintenir et à suivre :slight_smile: En tout cas très prometteur !
Si tu as le temps de checker ce petit problème :

j’ai un souci avec le thermostat. Lorsque j’essaie d’enclencher le chauffage, j’ai un message d’erreur :


Aurais-tu une piste sur ce que j’aurais pu oublier ? Je n’ai pas de sensor de puissance pour les radiateurs mais seulement de façon globale avec un lixee. J’ai donc j’ai laissé vide, je ne sais pas si cela peut venir de là.

Autre petite question/ suggestion : pourquoi ne pas intégrer aussi la température extérieure dans ton algorithme ?

@frankb Y a en effet un bug si aucun capteur de puissance est installé. Je corrige ça de suite.

La version 0.1.2 vient d’être publiée, elle devrait apparaitre rapidement dans HACS.

Merci pour ton retour @frankb :heart:

Note: on peut forcer la maj en cliquant sur l’intégration « Versatile Thermostat »

Merci beaucoup pour ta rapidité :slight_smile:
Bon malheureusement cela ne fonctionne pas (j’ai bien forcé le passage en 0.1.2) :frowning: j’ai toujours le même message, j’ai essayé d’éditer l’intégration et de reconfigurer, mais cela ne change rien.

Edit : j’ai rebooté HA et ça fonctionne :slight_smile:
Merciii je vais pouvoir tester tout ça :slight_smile:

Hello

l’idée est bonne , sauf que j’ai déjà presque que la même chose avec awesome_thermostat, mais moins poussé , je ferais un test plus tard !!

GROS COUP DE GUEULE ( amical )

Il me semble que tu es Français comme beaucoup ici, quel intérêt de tout écrire en Anglais ??
Si telle le cas HACF.fr a pas lieu de vivre.

Sinon tout le monde irai sur le forum officiel vue que l’anglais est de rigueur.
Crois tu qui est facile pour tout le monde de lire l’anglais ?

3 « J'aime »

Ree :slight_smile:
Est-ce qu’il est possible de récupérer les différents états pour pouvoir créer un graphique qui ressemble à ça :


Par exemple la consigne, l’état de chauffe ou non

Suggestions :
Serait-il possible d’intégrer une tempo séparé quand on ouvre une fenêtre et une autre quand on ferme la fenêtre ? Par exemple arrêter le chauffage si la fenêtre est resté ouverte x temps (utile pour éviter de couper le chauffage si on ouvre 5 secondes la fenêtre), et enclencher de nouveau le chauffage après x temps une fois la fenêtre fermée (utile pour lisser la température dans la pièce avant de redémarrer le chauffage)

Merci !

Soit content, ta les screenshots ( oups capture d’écran ) en français :rofl:

1 « J'aime »

Il me semble que tu es Français comme beaucoup ici, quel intérêt de tout écrire en Anglais ??
Si telle le cas HACF.fr a pas lieu de vivre.

Je comprends pas, j’ai fais l’effort de décrire en Français dans le thread justement car forum Français.
Peut être que l’integration serait utile pour des non Français non ? et dans ce cas, seul l’anglais permet de contenter à peu près tout le monde.

Me trompe-je ?

6 « J'aime »

Oui tout est récupérable. Si tu regardes dans Outils de developpement / Etats et que tu mets ton Thermostat tu vas voir tous les états disponibles:

Tout est possible. Je ne suis pas certain de l’utilité par contre. Ce que je fais c’est de mettre 30 sec ou une minute. Comme ça on ne change que si l’état est stable (pas si on ouvre 5 sec la porte pour sortir par exemple).

Re,

de ce cote pas de souci mais cette partie la et ce qui suis en dessous … :wink:

Quand je parle de HACF , c’est parce qu’il est en Francais , si moi je suis venu sur ha , c’est parcequ’il y’avais tout en Français .

Car en anglais je nul comme beaucoup , je me voyais mal passé a HA en devant traduire a chaque fois de l’anglais via le forum officiel

Apres on peux echangé en MP , pour evite de pollue le topic :grin:

Le README de awesome_thermostat est en Anglais tu remarqueras ( je me suis d’ailleurs pas mal inspiré du boulot fait sur awesome_thermostat. J’avais fais une PR pour ajouter ce qu’il me manquait mais le repo Github n’a plus l’air maintenu. D’où une refonte améliorée avec Versatile thermostat).

Si je mets le README en Français y a que les Français qui vont pouvoir le lire, donc c’est pas bon non plus.

Ou alors je comprends pas ce que tu veux me dire.

Si y a des points pas clair, je peux t’éclairer certainement.

Ah super, par contre je bloque un peu comment récupérer ca sur ma carte, je suis assez novice :frowning:
Voici ma carte :

type: custom:apexcharts-card
header:
  show: true
  title: Historique sur 24h
graph_span: 24h
update_interval: 15 min
yaxis:
  - id: temperature
  - id: pourcentage
    opposite: true
    decimals: 0
series:
  - entity: sensor.tvoc_temperature
    name: Temperature
    stroke_width: 2
    group_by:
      duration: 1 min
    show:
      extremas: true
      legend_value: false
    yaxis_id: temperature
  - entity: input_number.consigne_salon
    name: Consigne
    stroke_width: 4
    curve: stepline
    yaxis_id: temperature
    show:
      extremas: true
      legend_value: false
  - entity: input_number.puissance_salon
    name: Puissance
    stroke_width: 2
    curve: stepline
    yaxis_id: pourcentage
    show:
      legend_value: false

Elle utilise des entités, hors je n’arrive pas justement à retrouver ces entités sur le thermostat. Il doit y avoir une astuce en reprenant les valeurs dans developpement / etats, mais je sèche un peu lol

Bon en tout cas pour donner mon avis, l’anglais ne me dérange pas sur le git, après effectivement avoir les 2 est un vrai plus, mais je n’ai pas eu de soucis à traduire soit moi-même, soit avec google mon ami :stuck_out_tongue:

Pour les ouvertures oui vu sous cet angle ce n’est pas faux !!

Sympa le message de bienvenue à @Jean-Marc_Collin qui nous propose un truc sympa et qui en plus propose ici un sujet pour y faire le support. Bref, Google translate est ton nouvel ami :slight_smile:

Home Assistant est une plateforme internationale, donc normal de publier en anglais afin d’en faire profiter tout le monde et pas juste la communauté franco francaise. Pareil pour GitHub.

Sinon il te reste Jeedom, tout est en français…

9 « J'aime »

Je vois avec Apex charts on n’a pas accès aux attributs d’un state facilement. Il faut aller les chercher. Une possibilité que je vois (y en a peut être d’autres) :
Tu crées des templates qui reprennent ce que tu veux avec des templates du style :

- name: "nom de l'entité"
      unique_id: id_de_lentite
      device_class: power
      unit_of_measurement: "kW"
      state_class: measurement
      state: >
        {% if is_state_attr('climate.xxxx', 'attributeName', 'unavailable') %}unavailable{% else %}
          {{ (state_attr('climate.xxxx', 'attributeName') | float) | round(2, default=0) }}
        {% endif %}

A adapter à ce que tu veux faire bien sur.

Je mets ça dans un templates.yaml référencé dans mon configuration.yaml avec cette ligne:

template: !include templates.yaml

Merci pour ta réponse !
Bon c’est encore un peu du chinois pour moi. J’ai fait ce que tu m’as dit, mais j’ai l’impression qu’il ne comprend pas ton exemple de code…


Je vais pas trop t’embêter avec ça, c’est un peu hors sujet et je ne voudrai pas polluer ton post. Je vais creuser tout ça…

oui en yaml il faut indenter proprement. Trouve toi un cours de yaml en ligne si tu ne vois pas de quoi je parle.
Bien indenter, ça devrait ressembler à ça (pour avoir la temperature de consigne par exemple):

- name: "temperature consigne"
  unique_id: temp_consigne
  device_class: temperature
  unit_of_measurement: "°C"
  state_class: measurement
  state: >
    {% if is_state_attr('climate.xxxx', 'temperature', 'unavailable') %}unavailable{% else %}
      {{ (state_attr('climate.xxxx', 'temperature') | float) | round(2, default=0) }}
    {% endif %}

Si tout est correct, après redémarrage tu devrais avoir un sensor.temperature_consigne visible dans Outils de développement (et ailleurs). Tu pourras alors l’uitliser dans ton apex-chart.

Hello,
Et oui je sais qu’il faut bien indenter le code, mais même en copiant ton code ci-dessus, il me met les mêmes messages d’erreurs :


Même la 1ere ligne est en erreur.

Oui, je vois. En fait le fichier templates.yaml si il est importé par la ligne template: !include templates.yaml,
doit commencer par sensor:
Le début du mien est le suivant:

- sensor:
    - name: "Total puissance instantanée (W)"
      unique_id: total_power_w
      device_class: power
      unit_of_measurement: "W"
      state_class: measurement
      state: >
        {% set powerA = states('sensor.iammeter_power_a') %}
        {% set powerB = states('sensor.iammeter_power_b') %}
        {% set powerC = states('sensor.iammeter_power_c') %}

        {% if powerA == 'unavailable' or powerB == 'unavailable' or powerC == 'unavailable' %}unavailable{% else %}
          {{ (powerA | float + powerB | float + powerC | float) | round(2) }}
        {% endif %}