Introduction
Dans un projet Home Assistant centré sur l’optimisation d’un chauffe-eau solaire, une logique complexe avait été mise en place au fil des besoins. Dix automatisations étaient actives, accompagnées de plusieurs helpers (input_boolean, sensors temporaires), pour gérer différents cas : heures creuses, surproduction, activations forcées, coupures planifiées, etc.
Cette structure s’est rapidement avérée difficile à maintenir, sujette aux conflits et peu lisible. Ce contexte a motivé une refonte globale, que nous détaillons ici.
Constat de complexité excessive
Symptômes observés
- Plusieurs automatisations se chevauchaient sur les mêmes périodes.
- Le même appareil (chauffe-eau) était contrôlé par jusqu’à 5 automatisations différentes.
- Des helpers à usage temporaire (production_moyenne_matin, production_suffisante_matin) persistaient dans le temps sans utilité claire.
- Certains capteurs (comme sensor.production_matin_0_23) étaient redondants avec d’autres entités existantes.
Conséquences
- Difficulté à déterminer quelle automatisation était responsable d’un comportement.
- Risque de conflit entre actions opposées (ex. allumage/arrêt simultanés).
- Déclenchements multiples ou inutiles (absence de condition sur l’état courant du switch).
Objectif de la refonte
- Regrouper la logique en un nombre limité d’automatisations claires.
- Éliminer les helpers non essentiels.
- Séparer distinctement les logiques horaires, de production, de secours, et de priorité.
- Améliorer la lisibilité et la débuggabilité.
Solution mise en œuvre
Nouvelle structure en 4 automatisations principales
1. Gestion chauffe-eau solaire
- Se déclenche à 13h.
- Vérifie la production cumulée et la météo.
- Désactive les automatismes « surplus » pour 2 heures si la journée ne s’annonce pas ensoleillée.
2. CE – Surplus solaire
- Allume le chauffe-eau si on injecte > 2 kW depuis 5 minutes.
- L’éteint si on consomme > 2 kW (donc retour à l’import réseau).
- Ajout de conditions sur l’état du switch pour empêcher les répétitions.
3. CE – Extinctions programmées & reset
- Déclenche à 07h, 17h et 00h.
- À 07h et 17h : coupe le chauffe-eau sauf s’il est en mode forcé (input_boolean.chauffe_eau_forcage).
- À 00h : reset du compteur d’heures de chauffe.
4. CE – Secours heures creuses
- À 23h, vérifie que le chauffe-eau a tourné moins de 4h depuis 7h.
- Si c’est le cas, l’allume jusqu’à 7h.
Suppression des automatisations suivantes
- Allumer chauffe-eau à 13h
- Allumer chauffe-eau à 23h si prod insuff
- Éteindre chauffe-eau à 7h / 17h (intégré à l’automatisation unique)
- Détecter production moyenne / suffisante matin (remplacé par sensor dédié)
Suppression des helpers
- input_boolean.production_moyenne_matin
- input_boolean.production_suffisante_matin
- sensor.production_matin_0_23 (remplacé par sensor officiel envoy)
Unification des conditions
- Les triggers numériques utilisent toujours des seuils clairs (above: 2 ou below: 2).
- Les conditions vérifient toujours l’état courant pour éviter les redondances.
Bilan de la refonte
Cette refonte a permis :
- Une logique plus lisible et maintenable.
- Moins de risques de conflits ou de comportements inattendus.
- Un gain notable en compréhension pour tout nouvel intervenant.
Si vous hésitez sur la structure idéale de vos automatisations ou si vous accumulez des déclencheurs dispersés, n’hésitez pas à nous contacter pour un audit ou une aide à la refonte.





0 commentaires