the boiler app now use mqtt instead of relying on an automation on ha side
This commit is contained in:
1 parent
a2f40f81ba
commit
6447d754ca
8 files changed
+261
-77
No files matched your search
+43
-15
@@ -1,23 +1,36 @@
|
||||
# Chauffage radiateurs — AppDaemon et C6
|
||||
|
||||
L'app `radiator_heating` expose `climate.radiator_heating` par MQTT Discovery.
|
||||
Les publications utilisent le service `mqtt.publish` de Home Assistant, comme
|
||||
l'ancienne implémentation de SmartObject. Aucun identifiant MQTT supplémentaire
|
||||
ni plugin MQTT AppDaemon n'est nécessaire.
|
||||
La version MQTT directe utilise le plugin MQTT d'AppDaemon pour les publications
|
||||
et les abonnements. Le plugin Home Assistant sert à lire les thermomètres.
|
||||
Les commandes du climate et les retours C6 restent sur les mêmes topics.
|
||||
|
||||
## Configuration MQTT
|
||||
|
||||
Le plugin `MQTT` est configuré dans `appdaemon.yaml`, namespace `mqtt`.
|
||||
Les identifiants du broker sont dans `secrets.yaml` (exclu de Git) et référencés
|
||||
par `!secret`. Ils doivent être sauvegardés séparément pour une réinstallation.
|
||||
Un redémarrage complet du conteneur/service AppDaemon est nécessaire pour charger
|
||||
un nouveau plugin ; le rechargement des apps ne suffit pas.
|
||||
|
||||
Le climate et son watchdog exigent ce plugin. Les deux anciennes automatisations
|
||||
Home Assistant ont été supprimées après vérification des commandes et de la
|
||||
télémétrie en MQTT direct. Aucun relais MQTT dans Home Assistant n'est nécessaire.
|
||||
|
||||
## Fichiers
|
||||
|
||||
- `apps/boilerclimate.py` : MQTT Discovery, consigne, mode, mesures et commandes.
|
||||
- `apps/boilerwatchdog.py` : surveillance indépendante du heartbeat.
|
||||
- `apps/boilerregulator.py` : calcul indépendant de la température d'eau.
|
||||
- `apps/global/heating.yaml`, bloc `radiator_heating` : paramètres actifs de l'app.
|
||||
- `homeassistant/packages/radiator_heating_mqtt.yaml` : copie des deux
|
||||
automatisations installées via l'API de configuration de Home Assistant.
|
||||
Ne pas inclure aussi cette copie comme package : les automatisations existent
|
||||
déjà dans Home Assistant. Leur modification dans cette copie ne les redéploie pas.
|
||||
- `apps/global/heating.yaml`, blocs `radiator_heating` et
|
||||
`radiator_heating_watchdog` : paramètres actifs des deux apps.
|
||||
- `appdaemon.yaml`, plugin `MQTT` : connexion broker, abonnements et Last Will.
|
||||
|
||||
## Régulation
|
||||
|
||||
Avec S la consigne ambiante, Ti la température du couloir et Te celle de devant :
|
||||
Avec S la consigne ambiante, Ti la température du couloir et Te la plus basse
|
||||
des températures extérieures (`sensor.ext_front_temperature` et
|
||||
`sensor.ext_back_temperature`, configurées dans `outdoor_sensors`) :
|
||||
|
||||
courbe = S + pente × (S − Te) + décalage
|
||||
correction P = kp × (S − Ti)
|
||||
@@ -42,7 +55,12 @@ Après arrêt, le redémarrage exige Ti <= S + 0,1 °C et une demande suffisante
|
||||
Les gains sont des valeurs initiales à ajuster après les essais de circulation,
|
||||
pas des coefficients identifiés pour cette maison.
|
||||
|
||||
Les deux capteurs doivent fournir des valeurs finies en °C, entre −40 et 60 °C.
|
||||
Le capteur intérieur et les deux capteurs extérieurs doivent fournir des valeurs
|
||||
finies en °C, entre −40 et 60 °C. Le minimum extérieur est recalculé à chaque
|
||||
mise à jour de l'un des capteurs et à chaque cycle. L'attribut `outdoor_sensors`
|
||||
liste les sondes utilisées et `outdoor_sensor` identifie celle sélectionnée.
|
||||
Si l'une des sondes est invalide, le chauffage reste inhibé comme auparavant.
|
||||
La configuration historique `outdoor_sensor` reste acceptée pour une seule sonde.
|
||||
Une température inchangée, même ancienne, reste valide : ces sondes peuvent
|
||||
ne publier qu'en cas de changement. Aucun délai sur l'âge de la mesure n'est
|
||||
appliqué. Les états indisponibles/inconnus, les valeurs invalides et les unités
|
||||
@@ -67,11 +85,21 @@ cette app, conserve les accents et le symbole °C.
|
||||
- État et diagnostics : `appdaemon/radiator_heating/state` et `/attributes`.
|
||||
- Chaudière : `themaplus-condens/bai/SetMode/set`.
|
||||
|
||||
L'automatisation de retour transmet les commandes MQTT et les retours chaudière
|
||||
à l'événement `APPDAEMON_BOILER_MQTT`, écouté par l'app. Le watchdog marque le
|
||||
climate indisponible après trois minutes sans heartbeat. Il ne commande PAS
|
||||
la chaudière : il signale l'arrêt de l'app. Configuration et états sont retenus ;
|
||||
les commandes utilisateur et chaudière ne doivent jamais être retenues.
|
||||
Le plugin transmet les commandes MQTT et les retours chaudière à l'événement
|
||||
`MQTT_MESSAGE` du namespace `mqtt`, écouté directement par l'app. Le watchdog
|
||||
AppDaemon marque le climate indisponible après trois minutes sans heartbeat
|
||||
(vérification toutes les dix secondes). Il ne commande PAS la chaudière.
|
||||
Il utilise un worker distinct du climate. Il publie `offline` au démarrage et
|
||||
après reconnexion tant qu'aucun heartbeat récent n'est arrivé. Seul le climate
|
||||
publie `online`, selon la validité de ses mesures.
|
||||
|
||||
La disponibilité MQTT Discovery exige simultanément la disponibilité de l'app
|
||||
(`/availability`) et celle de la connexion MQTT (`/connection`). Le plugin
|
||||
publie `online` sur `/connection` à la connexion, et le broker publie `offline`
|
||||
via le Last Will si cette connexion est perdue. Ce mécanisme ne garantit pas
|
||||
une détection immédiate et ne coupe pas le chauffage. Configuration et états
|
||||
sont retenus ; les commandes utilisateur et chaudière ne doivent jamais l'être.
|
||||
Une reconnexion MQTT republie la découverte et renouvelle la commande.
|
||||
|
||||
`SetMode` est renouvelé chaque minute et lors d'un changement de demande.
|
||||
Les retours de télémétrie ne renouvellent pas la commande. Un arrêt ordonné
|
||||
|
||||
Reference in new issue
Block a user