Interrupteur connecté pour chauffage

Pour automatiser mon système de chauffage, j’ai installé Shelly 1PM Mini Gen3 afin de piloter la chaudière à gaz en fonction des données fournies par différents capteurs, tout en réduisant la consommation d’énergie en veille.

Heater Smart Switch

Commande connectée du chauffage

 

Motivation

Ma famille et moi vivons depuis une vingtaine d’années dans une maison individuelle située en Sarre, en Allemagne. En plus d’une chaudière gaz à condensation, nous disposons d’une installation solaire thermique pour la production d’eau chaude sanitaire. Afin d’économiser les 12 W consommés en veille par la chaudière, je la coupe complètement pendant la période estivale. La production de l’installation solaire est généralement suffisante pour maintenir l’eau à température. Certaines années, j’éteins ainsi le chauffage à la fin du mois d’avril et ne le remets en service qu’au début du mois de novembre. Cette année, en revanche, les nombreuses périodes de mauvais temps m’ont obligé à rallumer ponctuellement la chaudière. Le problème est qu’il m’arrive parfois d’oublier de la remettre en marche. Je ne m’en rends alors compte que lorsque quelqu’un souhaite prendre une douche et que l’eau n’est pas assez chaude. À l’inverse, il peut aussi m’arriver d’oublier de l’éteindre après plusieurs jours d’ensoleillement. J’ai donc décidé qu’il était temps d’automatiser entièrement ce processus.

Prérequis

  • J’utilise déjà plusieurs interrupteurs connectés Shelly pour piloter les volets roulants et l’éclairage de ma maison. Il était donc naturel de m’appuyer sur l’écosystème Shelly pour ce nouveau projet.
  • Par ailleurs, mon habitation est équipée d’un système de supervision que j’ai développé moi-même, composé d’environ 25 capteurs, principalement dédiés à la mesure des températures mais aussi à la surveillance de différents paramètres environnementaux.
  • Ce système repose sur le protocole MQTT et utilise la solution Cloud gratuite de HiveMQ. Mon objectif était également d’exploiter cette infrastructure pour communiquer avec le dispositif Shelly.
  • Enfin, j’avais déjà effectué quelques essais avec Node-RED et je voyais dans ce projet une excellente occasion de développer une première automatisation plus avancée.

Installation de l'interrupteur connecté Shelly

La consommation maximale de ma chaudière gaz à condensation étant largement inférieure à 8 A, j’ai opté pour Shelly 1PM Mini Gen3. Ce choix me permet non seulement de piloter la chaudière à distance mais aussi de mesurer sa consommation électrique lorsqu’elle est en fonctionnement. L’installation s’est révélée relativement simple grâce à l’espace disponible à l’intérieur du boîtier de la chaudière. Celle-ci est raccordée directement au réseau électrique, juste après un interrupteur d’arrêt d’urgence situé dans la pièce voisine. La photo ci-dessous montre l’intégration du module dans l’installation.

Après avoir configuré la connexion MQTT dans l’application Shelly Smart Control, l’infrastructure était prête pour les étapes suivantes. En utilisant les paramètres présentés ci-dessous, j’ai rapidement validé la communication grâce au client Web de HiveMQ. Dès le premier essai, les échanges MQTT ont fonctionné comme prévu, ce qui a permis de poursuivre sereinement le développement de l’automatisation.

 

Capteurs utilisés

Pour cette première version de l’automatisation, j’ai basé la logique de commande sur trois capteurs principaux :

  • La température extérieure, mesurée sur la façade nord de ma maison. Lorsque cette température descend en dessous d’un seuil défini, le chauffage doit pouvoir être activé automatiquement.
  • La température du ballon d’eau chaude sanitaire. Trois sondes sont installées sur le ballon mais pour ce scénario, j’utilise uniquement celle positionnée au milieu. Lorsque la température de l’eau descend sous une valeur prédéfinie, la chaudière est mise en marche afin de réchauffer le ballon.
  • La température du retour du circuit de charge. Cette mesure permet de déterminer la fin du cycle de chauffe. Lorsque la température redescend en dessous de 50 °C, le chargement du ballon est considéré comme terminé.

Le premier capteur est une sonde de température et d’humidité sans fil, dont les données sont collectées via une infrastructure Tinkerforge. Les deux autres sont des sondes DS18B20 utilisant le protocole One-Wire et connectées à Raspberry Pi Pico W. La logique détaillée de l’automatisation sera présentée dans la section consacrée au flux Node-RED.

Node-RED

L’ensemble des données issues du système de supervision du bâtiment est collecté par un dispositif edge basé sur Raspberry Pi Zero, qui regroupe les mesures des différents capteurs dans un flux JSON compressé. De leur côté, les dispositifs Shelly publient et consomment leurs propres données via des topics MQTT dédiés. Il me fallait donc une solution capable de faire le lien entre ces différents systèmes et d’orchestrer les échanges de données. Dès mes premiers essais, Node-RED s’est imposé comme l’outil idéal pour remplir ce rôle. Actuellement, Node-RED s’exécute sur une infrastructure Kubernetes (voir NodeRed-On-Rancher) mais pour une utilisation en production, je prévois de le migrer vers Raspberry Pi, une solution plus simple et plus adaptée à ce projet. J’ai ainsi créé un flux Node-RED chargé de récupérer les données des différents capteurs, d'appliquer la logique de décision définie pour le chauffage et d'envoyer les commandes appropriées au Shelly 1PM Mini Gen3 via MQTT.

 

Explication du flux

  • Les nœuds violets correspondent aux connecteurs MQTT. Ils sont tous reliés à la même solution MQTT. Celui de gauche est chargé de récupérer les données du système de supervision de ma maison, tandis que les deux nœuds situés à droite publient les commandes destinées au module Shelly sur les canaux MQTT appropriés.

  • Le nœud rouge est un sous-flux chargé de traiter les données reçues. Les informations d’origine sont transmises sous la forme d’une structure JSON compressée et encodée en Base64. Ce sous-flux se charge de les décoder et de restituer le contenu JSON exploitable par le reste de l’automatisation.

  • Les nœuds jaunes convertissent simplement le résultat de la logique de commande (0 ou 1) en messages MQTT compréhensibles par Shelly 1PM Mini Gen3. Cette partie pourrait être simplifiée en une seule branche mais j’ai choisi de conserver deux chemins distincts, un pour l’activation et un pour la désactivation, afin de faciliter la compréhension du flux et le débogage.

  • Les nœuds verts servent uniquement à générer les informations de diagnostic affichées dans la fenêtre de débogage située à droite. Ils permettent de suivre le comportement du système lors des tests et des ajustements.

  • Enfin, le nœud orange intitulé « Heater Switching Logic » constitue le cœur de l’automatisation. C’est lui qui analyse les données des différents capteurs et décide si la chaudière doit être mise en marche ou arrêtée. Sa logique est implémentée sous forme d’une fonction JavaScript, présentée ci-dessous.

  Logique de décision

 

Messages de commande Shelly

Pour être complet, il est utile de détailler les commandes MQTT utilisées pour piloter l’alimentation de la chaudière via le module Shelly. Ces messages sont également visibles dans la fenêtre de débogage associée au flux Node-RED.

Canal : shelly1pmmini3-<device_id>/command/switch:0

Payload : on | off

Vous trouverez davantage d’informations sur les commandes MQTT disponibles dans la documentation technique de Shelly.

Conclusion

  • L’association de MQTT, Node-RED et des dispositifs Shelly constitue une solution particulièrement puissante pour concevoir des automatisations sur mesure.
  • J’utilise depuis plusieurs années la solution Cloud gratuite de HiveMQ, que je trouve à la fois fiable, sécurisé et simple à mettre en œuvre.
  • Concernant Node-RED, je reste encore relativement novice mais cette première expérience m’a convaincu de son potentiel pour connecter différents systèmes et orchestrer des automatisations complexes. De plus, son approche visuelle rend le développement particulièrement agréable.
  • Quant aux dispositifs Shelly, ils sont devenus des éléments incontournables de mon installation. Shelly 1PM Mini Gen3 utilisé dans ce projet en est un excellent exemple : malgré son format extrêmement compact, il offre de nombreuses fonctionnalités, parmi lesquelles la gestion avancée des commandes, les programmations horaires, la mesure de consommation électrique ou encore le contrôle externe via MQTT.

Perspectives d’évolution

Les possibilités offertes par cette combinaison de technologies m’ont donné de nombreuses idées pour poursuivre l’automatisation de ma maison. Par exemple :

  • mettre en place un système de géolocalisation permettant d’ouvrir automatiquement la porte du garage à mon arrivée. Celle-ci est déjà équipée de Shelly 1 Mini Gen3 ;
  • automatiser le store de la terrasse à l’aide de Shelly Plus 2PM, associé à Shelly Plus Add-On et à différents capteurs (vitesse du vent, ensoleillement et pluie) ;
  • intégrer les mesures collectées par les capteurs raccordés à Shelly Add-On dans mon système de supervision existant via MQTT.

Concernant le projet actuel, je prévois également d’affiner la logique de pilotage du chauffage. Les règles mises en place répondent parfaitement aux besoins estivaux mais il est probable qu’une stratégie plus élaborée soit nécessaire pour optimiser le fonctionnement de l’installation durant la période hivernale.

Produits Shelly utilisés
Shelly 1PM Mini Gen3

Shelly 1PM Mini Gen3

Prix habituel 14,99 €
Prix promotionnel 14,99 € Prix habituel
Surveillance de la puissance
Lumières
Appareils électroménagers
Serrure de porte
Ventilateur