Gestion du chauffage – arduino / nodered / grafana

Avec l’arrivée de l’hiver, il devient plus que nécessaire de rebrancher la vieille chaudière et de lui redonner un petit coup de jeune. Du moins, essayer.

Je m’étais déjà attelé à placer un plancher chauffant dans la majeure partie du rez-de-chaussée, avec tout ce qui va bien pour s’adapter à une chaudière existante (régulateur combimix). Mais, comme j’ai viré le vieux thermostat de 1970 qui fonctionnait en mode « débile » (juste une consigne, pas de régulation avancée) on était obligé d’allumer la chaudière à la main tant que la domotique n’était pas passée par là … je n’avais pas envie de taper 100€ dans un thermostat qui n’allait faire que la moitié des choses que je voulais.

Début octobre, il commence à faire froid. Allumer la chaudière tous les matins à la main n’est pas très « année 2018 », et le WAF (woman acceptance factor) est au plus bas. On parle d’un plancher chauffant qui met des heures à se mettre à température, commencer à ressentir le « tiède » à 10h du matin, c’est pas terrible.
Je remplace donc le vieux relais manuel par un arduino nano et un shield ethernet. Bien, on ne doit plus descendre à la cave pour allumer, mais il faut quand même dire à l’arduino quand s’allumer ! C’est là que le fun commence.

Envoyer une consigne à l’arduino, c’est facile, enfin c’est ce que je pensais. Dans mon système (voir le billet « Domotique en rénovation lourde »), c’est Node-red qui gère la consigne de chauffe en fonction de :

    • mode choisi (auto / manuel / away / off)
    • température voulue
    • température actuelle dans la zone à chauffer

Node-red mouline tout (en gros, si la température mesurée est inférieure à la consigne (à 0.3°C près), il envoie un message, qu’on transforme en MQTT sur /chaudiere/consigne. L’arduino capte le message et met en route la chaudière. J’en profite pour sauvegarder les valeurs d’état de la consigne dans InfluxDB pour en faire de beaux graphiques sur grafana.

Gestion chauffage avec Node-Red

Voila qui permet d’avoir du chauffage temporairement, sans se lever de sa chaise.

Le flow est disponible ici pour ceux que ça intéresse

Super. Sauf que … il n’y a aucun système intelligent d’automatisation derrière tout cela (PI, PID, …), et on arrive à des déphasages complets entre la consigne et la valeur mesurée à cause de l’inertie thermique du plancher chauffant (c’est bien connu qu’il faut l’allumer plusieurs heures avant de ressentir l’effet). Le phénomène peut être observé sur grafana :

Courbe de température par rapport à sa consigne

Il faut environ 2h au système pour réagir et inverser la pente de la température, et encore plus de temps pour arriver à la consigne (et 2h pour bien la dépasser alors qu’on a demandé d’arrêter de chauffer)

Les planchers chauffants sont des systèmes lents, mais surtout, ce sont des systèmes à retard qui sont difficile à piloter avec un régulateur PID (les gains doivent être faibles vu la lenteur du système).  De plus, lors de la caractérisation du système pour déterminer tous les coefficients PID – ce qui est généralement fait avec une impulsion de la commande – les conditions extérieures changent avant que le système n’ait pu arriver à s’établir (on parle d’une demi-journée voir d’une journée complète pour une maison avec plancher chauffant). Impossible donc de correctement caractériser le système et utiliser des algorithmes de prédictions du style Smith. Au mieux, on peut estimer des paramètres et regarder ce que ça change sur la réponse. Et chaque itération prend des heures, voir la journée entière.

Mais en réfléchissant un peu, à priori, la température intérieure d’un bâtiment ne dépend finalement que de la température extérieure (Q=Cp * h * S * DT … avec Cp, h et S constant pour un bâtiment, qui dépend de sa taille (surfaces des murs) et de son isolation (coefficient d’échange h à la paroi). Q = K * DT). Ensuite, la température dans la pièce est, elle aussi, directement proportionnelle à la température du liquide dans le réseau du plancher chauffant (loi de diffusion). Donc la température de l’eau en sortie de chaudière doit être directement liée à la température extérieure pour garder la température dans mon salon constante, si la chaudière est constamment en fonctionnement (température extérieure basse = pertes élevées = apport de chaleur élevé. L’inverse est vrai aussi).

Courbe de température avec température extérieure

J’ai encore un peu de boulot là dessus. Ma température extérieure est prise par une API de site météo sur internet (peu fiable donc), je dois mettre une sonde extérieure pour avoir les valeurs exactes. Il me faut aussi une vanne mélangeuse en sortie de chaudière pour régler la température de l’eau dans le circuit (pour ainsi gérer le plancher chauffant mais aussi tous les autres radiateurs de la maison), ou bidouiller l’aquastat de la chaudière avec une sonde de température dans le corps de chauffe et un relais (mais dans ce cas, j’ai une petite voix dans ma tête qui me dit que ce n’est pas une très bonne idée, surtout si mon assureur est abonné à mon blog)

Je pourrais ensuite m’amuser à « prévoir » la température extérieure (et ainsi gagner en temps de réponse du système), avec la dérivée (pente) de la température extérieure. Si elle baisse rapidement, on pourrait augmenter plus rapidement la température de la chaudière, par anticipation.

En gros, j’ai découvert malgré moi la régulation par la loi d’eau. Vous pouvez lire cet excellent résumé sur ce pdf qui explique clairement comment fonctionne la loi d’eau

La suite au prochain épisode, j’espère avant la fin de l’hiver si je ne suis pas mort gelé dans ma maison

Si cet article vous a plu, inscrivez-vous à la newsletter pour être informé de la publication d'autres articles.

Vous pouvez aussi partager cet article sur les réseaux sociaux

Laisser un commentaire