diff --git a/README-fr.md b/README-fr.md index 1454edfd..c94048b2 100644 --- a/README-fr.md +++ b/README-fr.md @@ -25,20 +25,23 @@ - [Exemples de réglage](#exemples-de-réglage) - [Chauffage électrique](#chauffage-électrique) - [Chauffage central (chauffage gaz ou fuel)](#chauffage-central-chauffage-gaz-ou-fuel) - - [Le capteur de température sera alimenté par batterie](#le-capteur-de-température-sera-alimenté-par-batterie) - - [Capteur de température réactif](#capteur-de-température-réactif) - - [Ma configuration prédéfinie](#ma-configuration-prédéfinie) + - [Le capteur de température alimenté par batterie](#le-capteur-de-température-alimenté-par-batterie) + - [Capteur de température réactif (sur secteur)](#capteur-de-température-réactif-sur-secteur) + - [Mes presets](#mes-presets) - [Algorithme](#algorithme) - [Algorithme TPI](#algorithme-tpi) - [Services](#services) - [Forcer la présence/occupation](#forcer-la-présenceoccupation) - [Modifier la température des préréglages](#modifier-la-température-des-préréglages) + - [Modifier les paramètres de sécurité](#modifier-les-paramètres-de-sécurité) +- [Notifications](#notifications) - [Attributs personnalisés](#attributs-personnalisés) - [Quelques résultats](#quelques-résultats) - [Encore mieux](#encore-mieux) - [Encore mieux avec le composant Scheduler !](#encore-mieux-avec-le-composant-scheduler-) - [Encore bien mieux avec la custom:simple-thermostat front integration](#encore-bien-mieux-avec-la-customsimple-thermostat-front-integration) - [Toujours mieux avec Apex-chart pour régler votre thermostat](#toujours-mieux-avec-apex-chart-pour-régler-votre-thermostat) + - [Et toujours de mieux en mieux avec l'AappDaemon NOTIFIER pour notifier les évènements](#et-toujours-de-mieux-en-mieux-avec-laappdaemon-notifier-pour-notifier-les-évènements) - [Les contributions sont les bienvenues !](#les-contributions-sont-les-bienvenues) _Composant développé à l'aide de l'incroyable modèle de développement [[blueprint](https://github.com/custom-components/integration_blueprint)]._ @@ -72,7 +75,7 @@ Ce composant nommé __Versatile thermostat__ gère les cas d'utilisation suivant - Utiliser un algorithme **TPI (Time Proportional Interval)** grâce à l'algorithme [[Argonaute](https://forum.hacf.fr/u/argonaute/summary)] , - Ajoutez 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é. - Ajouter 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. -- Ajoutez 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. +- Ajoutez 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é. # Comment installer cet incroyable Thermostat Versatile ? @@ -243,19 +246,23 @@ Le formulaire de configuration avancée est le suivant : ![image](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/config-advanced.png?raw=true) -Le premier délai (minimal_activation_delay_sec) en sec dans 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 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`` et d'éteindre le thermostat. Si le capteur de température ne donne plus de mesures de température, le thermostat et le radiateur s'éteindront après ce délai et le préréglage du thermostat sera réglé sur ``security``. Ceci est utile pour éviter une surchauffe si la batterie de votre capteur de température est trop faible. +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é. -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é. +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](#examples-tuning) pour avoir des exemples de réglage communs > ![Astuce](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/tips.png?raw=true) _*Notes*_ - 1. Le préréglage ``security`` est un préréglage caché. Vous ne pouvez pas le sélectionner manuellement ou par le service prédéfini, - 2. Lorsque le capteur de température viendra à vivre et renverra les températures, le préréglage sera restauré à sa valeur précédente, - 3. 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". + 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, + 3. 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", + 4. 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, + 5. Pour un usage naturel, le ``security_default_on_percent`` doit être inférieur à ``security_min_on_percent``, + 6. Lorsqu'un thermostat de type ``thermostat_over_climate`` passe en mode ``security`` il est éteint. Les paramètres ``security_min_on_percent`` et ``security_default_on_percent`` ne sont alors pas utilisés. # Exemples de réglage @@ -267,22 +274,36 @@ Voir [exemple de réglages](#examples-tuning) pour avoir des exemples de réglag - cycle : entre 30 et 60 min, - minimal_activation_delay_sec : 300 secondes (à cause du temps de réponse) -## Le capteur de température sera alimenté par batterie +## 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 +## 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) -## Ma configuration prédéfinie +## 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 -``Confort`` : 19 -``Boost`` : 20 +``Éco`` : 17 °C +``Confort`` : 19 °C +``Boost`` : 20 °C Lorsque la présence est désactivée : -``Éco`` : 16,5 -``Confort`` : 17 -``Boost`` : 18 +``É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. @@ -335,7 +356,7 @@ Utilisez le code suivant pour régler la température du préréglage : ``` service : thermostat_polyvalent.set_preset_temperature date: - prest : boost + preset : boost temperature : 17,8 temperature_away : 15 target: @@ -345,6 +366,40 @@ target: > ![Astuce](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/tips.png?raw=true) _*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](#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 : thermostat_polyvalent.set_security +date: + min_on_percent: "0.5" + default_on_percent: "0.1" + delay_min: 60 +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 : @@ -379,10 +434,11 @@ Les attributs personnalisés sont les suivants : | ``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`` | Seuil en dessous duquel le thermostat ne passera pas en sécurité | +| ``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 | -| ``**état_sécurité**`` | L'état de sécurité. vrai ou faux | +| ``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 | @@ -507,6 +563,94 @@ series: 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](https://www.youtube.com/watch?v=chJylIK0ASo&ab_channel=HorizonDomotique) et le code est [ici](https://github.com/jlpouffier/home-assistant-config/blob/master/appdaemon/apps/notifier.py). 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](#notifications). + +``` +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](CONTRIBUTING.md) diff --git a/README.md b/README.md index 6baccecd..ca17906b 100644 --- a/README.md +++ b/README.md @@ -26,19 +26,22 @@ - [Electrical heater](#electrical-heater) - [Central heating (gaz or fuel heating system)](#central-heating-gaz-or-fuel-heating-system) - [Temperature sensor will battery](#temperature-sensor-will-battery) - - [Reponsive temperature sensor](#reponsive-temperature-sensor) + - [Reactive temperature sensor (on mains)](#reactive-temperature-sensor-on-mains) - [My preset configuration](#my-preset-configuration) - [Algorithm](#algorithm) - [TPI algorithm](#tpi-algorithm) - [Services](#services) - [Force the presence / occupancy](#force-the-presence--occupancy) - [Change the temperature of presets](#change-the-temperature-of-presets) + - [Change security settings](#change-security-settings) +- [Notifications](#notifications) - [Custom attributes](#custom-attributes) - [Some results](#some-results) - [Even better](#even-better) - [Even Better with Scheduler Component !](#even-better-with-scheduler-component-) - [Even-even better with custom:simple-thermostat front integration](#even-even-better-with-customsimple-thermostat-front-integration) - [Even better with Apex-chart to tune your Thermostat](#even-better-with-apex-chart-to-tune-your-thermostat) + - [And always better and better with the NOTIFIER daemon app to notify events](#and-always-better-and-better-with-the-notifier-daemon-app-to-notify-events) - [Contributions are welcome!](#contributions-are-welcome) _Component developed by using the amazing development template [[blueprint](https://github.com/custom-components/integration_blueprint)]._ @@ -70,7 +73,7 @@ This component named __Versatile thermostat__ manage the following use cases : - Use a **TPI (Time Proportional Interval) algorithm** thank's to [[Argonaute](https://forum.hacf.fr/u/argonaute/summary)] algorithm , - Add **power shedding management** or regulation to avoid exceeding a defined total power. When max power is exceeded, a hidden 'power' preset is set on the climate entity. When power goes below the max, the previous preset is restored. - Add **home presence management**. This feature allows you to dynamically change the temperature of preset considering a occupancy sensor of your home. -- Add **services to interact with the thermostat** from others integration: you can force the presence / un-presence using a service, and you can dynamically change the temperature of the presets. +- Add **services to interact with the thermostat** from others integration: you can force the presence / un-presence using a service, and you can dynamically change the temperature of the presets and change dynamically the security parameters. # How to install this incredible Versatile Thermostat ? @@ -233,14 +236,19 @@ The first delay (minimal_activation_delay_sec) in sec in the minimum delay accep The second delay (security_delay_min) is the maximal delay between two temperature measure before setting the preset to ``security`` and turning off the thermostat. If the temperature sensor is no more giving temperature measures, the thermostat and heater will turns off after this delay and the preset of the thermostat will be set to ``security``. This is useful to avoid overheating is the battery of your temperature sensor is too low. -The third parameter (security_min_on_percent) is the minimal on_percent value below which the security preset won't be trigger. If you set it to ``0.00`` security preset will be trigger regardeless of the heating on_percent when there is a temperature loss, at the opposite ``1.00`` will never trigger the security preset. +The third parameter (``security_min_on_percent``) is the minimum value of ``on_percent`` below which the security preset will not be activated. This parameter makes it possible not to put a thermostat in safety, if the controlled radiator does not heat sufficiently. +Setting this parameter to ``0.00`` will trigger the security preset regardless of the last heating setpoint, conversely ``1.00`` will never trigger the security preset (which amounts to disabling the function). -See [exemple tuning](#examples-tuning) to have some commons tuning examples +The fourth parameter (``security_default_on_percent``) is the ``on_percent`` value that will be used when the thermostat enters ``security`` mode. If you put ``0`` then the thermostat will be cut off when it goes into ``security`` mode, putting 0.2% for example allows you to keep a little heating (20% in this case), even in mode ``security``. It avoids finding your home totally frozen during a thermometer failure. -> ![Tip](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/tips.png?raw=true) _*Notes*_ - 1. The ``security`` preset is a hidden preset. You cannot select it manually or by the preset service, - 2. When the temperature sensor will comes to live and re-send temperatures, the preset will be restored to its previous value, - 3. Beware that two temperatures are needed: internal temp and external temp and each should give temperature else the thermostat will be in ``security`` preset. +See [example tuning](#examples-tuning) for common tuning examples + +>![Tip](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/tips.png?raw=true) _*Notes*_ + 1. When the temperature sensor comes to life and returns the temperatures, the preset will be restored to its previous value, + 3. Attention, two temperatures are needed: internal temperature and external temperature and each must give the temperature, otherwise the thermostat will be in "security" preset, + 4. A service is available that allows you to set the 3 security parameters. This can be used to adapt the security function to your use. + 5. For natural usage, the ``security_default_on_percent`` should be less than ``security_min_on_percent``, + 6. When a ``thermostat_over_climate`` type thermostat goes into ``security`` mode it is turned off. The ``security_min_on_percent`` and ``security_default_on_percent`` parameters are then not used. # Examples tuning @@ -253,21 +261,35 @@ See [exemple tuning](#examples-tuning) to have some commons tuning examples - minimal_activation_delay_sec: 300 seconds (because of the response time) ## Temperature sensor will battery -- security_delay_min: 60 min (because those sensors are leazy) +- security_delay_min: 60 min (because these sensors are lazy) +- security_min_on_percent: 0.5 (50% - we go to the ``security`` preset if the radiator was heating more than 50% of the time) +- security_default_on_percent: 0.1 (10% - in preset ``security``, we keep a heating background 20% of the time) + +These settings should be understood as follows: + +> If the thermometer no longer sends the temperature for 1 hour and the heating percentage (``on_percent``) was greater than 50%, then this heating percentage is reduced to 10%. + +It's up to you to adapt these settings to your case! + +What is important is not to take too many risks with these parameters: suppose you are away for a long period, that the batteries of your thermometer reach the end of their life, your radiator will heat up 10% of the time for the whole the duration of the outage. -## Reponsive temperature sensor -- security_delay_min: 15 min +Versatile Thermostat allows you to be notified when an event of this type occurs. Set up the alerts that go well as soon as you use this thermostat. See (#notifications) + +## Reactive temperature sensor (on mains) +- security_delay_min: 15min +- security_min_on_percent: 0.7 (70% - we go to the ``security`` preset if the radiator was heating more than 70% of the time) +- security_default_on_percent: 0.25 (25% - in preset ``security``, we keep a heating background 25% of the time) ## My preset configuration This is just an example of how I use the preset. It up to you to adapt to your configuration but it can be useful to understand how it works. -``Eco``: 17 -``Comfort``: 19 -``Boost``: 20 +``Eco``: 17 °C +``Comfort``: 19 °C +``Boost``: 20 °C When presence if off: -``Eco``: 16.5 -``Comfort``: 17 -``Boost``: 18 +``Eco``: 16.5 °C +``Comfort``: 17 °C +``Boost``: 18 °C Motion detector in my office is set to use ``Boost`` when motion is detected and ``Eco`` if not. @@ -330,6 +352,40 @@ target: > ![Tip](https://github.com/jmcollin78/versatile_thermostat/blob/main/images/tips.png?raw=true) _*Notes*_ - after a restart the preset are resetted to the configured temperature. If you want your change to be permanent you should modify the temperature preset into the confguration of the integration. +## Change security settings +This service is used to dynamically modify the security parameters described here [Advanced configuration](#configuration-avanced). +If the thermostat is in ``security`` mode the new settings are applied immediately. + +To change the security settings use the following code: +``` +service : thermostat_polyvalent.set_security +date: + min_on_percent: "0.5" + default_on_percent: "0.1" + delay_min: 60 +target: + entity_id : climate.my_thermostat +``` + +# Notifications +Significant thermostat events are notified via the message bus. +The notified events are as follows: + +- ``versatile_thermostat_security_event``: a thermostat enters or exits the ``security`` preset +- ``versatile_thermostat_power_event``: a thermostat enters or exits the ``power`` preset +- ``versatile_thermostat_temperature_event``: one or both temperature measurements of a thermostat have not been updated for more than ``security_delay_min`` minutes +- ``versatile_thermostat_hvac_mode_event``: the thermostat is on or off. This event is also broadcast when the thermostat starts up +- ``versatile_thermostat_preset_event``: a new preset is selected on the thermostat. This event is also broadcast when the thermostat starts up + +If you have followed correctly, when a thermostat goes into safety mode, 3 events are triggered: +1. ``versatile_thermostat_temperature_event`` to indicate that a thermometer has become unresponsive, +2. ``versatile_thermostat_preset_event`` to indicate the switch to ```security``` preset, +3. ``versatile_thermostat_hvac_mode_event`` to indicate the possible extinction of the thermostat + +Each event carries the key values ​​of the event (temperatures, current preset, current power, etc.) as well as the states of the thermostat. + +You can very easily capture its events in an automation, for example to notify users. + # Custom attributes To tune the algorithm you have access to all context seen and calculted by the thermostat through dedicated attributes. You can see (and use) those attributes in the "Development tools / states" HMI of HA. Enter your thermostat and you will see something like this: @@ -365,6 +421,7 @@ Custom attributes are the following: | ``presence_state`` | The last known state of the presence sensor. None if presence management is not configured | | ``security_delay_min`` | The delay before setting the security mode when temperature sensor are off | | ``security_min_on_percent`` | The minimal on_percent below which security preset won't be trigger | +| ``security_default_on_percent`` | The on_percent used when thermostat is in ``security`` | | ``last_temperature_datetime`` | The date and time in ISO8866 format of the last internal temperature reception | | ``last_ext_temperature_datetime`` | The date and time in ISO8866 format of the last external temperature reception | | ``security_state`` | The security state. true or false | @@ -492,6 +549,93 @@ series: yaxis_id: right ``` +## And always better and better with the NOTIFIER daemon app to notify events +This automation uses the excellent App Daemon named NOTIFIER developed by Horizon Domotique that you will find in demonstration [here](https://www.youtube.com/watch?v=chJylIK0ASo&ab_channel=HorizonDomotique) and the code is [here](https ://github.com/jlpouffier/home-assistant-config/blob/master/appdaemon/apps/notifier.py). It allows you to notify the users of the accommodation when one of the events affecting safety occurs on one of the Versatile Thermostats. + +This is a great example of using the notifications described here [notification](#notifications). + +``` +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 +``` + # Contributions are welcome! If you want to contribute to this please read the [Contribution guidelines](CONTRIBUTING.md) diff --git a/images/config-advanced.png b/images/config-advanced.png index b78411fe..f582eb84 100644 Binary files a/images/config-advanced.png and b/images/config-advanced.png differ diff --git a/images/config-main.png b/images/config-main.png index 10fd3ae1..ee137768 100644 Binary files a/images/config-main.png and b/images/config-main.png differ