Domotiser son poêle à granulés avec un ESP8266 et MQTT
Mon poêle à granulés Edilkamin Seven dispose d’un contact sec que je veux exploiter pour domotiser le poêle, de manière sécurisée. Voici comment j’ai procédé.
Concept
J’avais déjà branché un Netatmo en guise de thermostat sur le poêle, via le contact sec (une prise DB9 sur laquelle il faut mettre en contact 2 pins), pour pouvoir le démarrer et l’éteindre à distance via une programmation. Mais depuis l’installation en complément de notre pompe à chaleur air/air, gérer les 2 systèmes de chauffage via Netatmo était impossible. Il me fallait contrôler les deux systèmes et définir des règles précises de fonctionnement.
J’ai donc choisi, au départ, d’utiliser mon IPX800 et de tirer un câble via mes combles jusqu’au poêle à granulés. Mais après quelques jours d’essais, je me rend compte qu’il y a des perturbations autour du câble qui le font démarrer et s’arrêter n’importe quand … pas très pratique pour avoir un système fiable.
J’ai testé de passer le câble via mon sous sol jusqu’au poêle, mais sans succès aussi … toujours les mêmes perturbations.
En repensant au Netatmo, qui est sans fil, je me suis dit : pourquoi ne pas reproduire un système équivalent, sans fil. Et j’ai décidé d’utiliser un ESP8266 de marque Wemos, modèle D1 mini. Il se connecte en wifi au réseau de la maison, et permet de disposer de plusieurs GPIO digitaux (comme le nodemcu).
Je lui ai adjoints un relais piloté et 2 leds de contrôle : une pour l’alimentation, et 1 pour le statut du relais.

MQTT et sécurité
J’ai d’abord tenté de mettre sur l’ESP8266 un programme sous forme de serveur web, qui lorsqu’elle est appelée fait allumer ou éteindre un relais (source : https://pastebin.com/mjW9CZpr).
Problème : au bout d’un moment, le site devient inaccessible, on ne peut plus joindre le module, et le reboot de l’ESP8266 inévitable. Vous comprendrez aisément qu’au niveau fiabilité, on a connu mieux …
Oui, mais comment faire donc ? Ayant déjà pas mal travaillé sur MQTT, je me suis dit qu’il fallait que l’ESP8266 soit en attente d’une action, ce pour quoi il est censé marcher, et pas qu’il soit en train de fournir de l’info (comme la page web au dessus) et donc qu’il passe une partie de son temps à faire la page web et pas écouter ce qui arrive.
Et bingo, c’est beaucoup, beaucoup plus fiable !
Le programme est très simple : une fois connecté au wifi, il se connecte au broker MQTT et s’abonne au topic. Puis il tourne en boucle en attendant un évènement sur le topic. Si un 1 arrive, il active le relais et la LED de contrôle. Si un zéro arrive, il désactive le relais et la LED de contrôle.
Facile non ?


Gestion avec Jeedom
Grâce au plugin MQTT, il est facile de créer un MQTT avec 2 actions sur un topic concerné, qui sur On mettent le payload à 1 et sur Off mettent le payload à 0.

Sur chaque action, dans les paramètres supplémentaires, j’ai ajouté une action après exécution de la commande pour modifier une variable avec l’état du poêle.

Enfin, dans un équipement virtuel, je récupère la variable pour l’afficher dans Jeedom.

Et donc, sur la page d’accueil, on retrouve un widget pour la partie MQTT On/Off et un widget avec le statut du pôele.


Code source
Voici le lien github du code utilisé : https://github.com/doddyfab/Arduino_PoeleMQTT
Conclusion
On voit qu’il est assez facile de domotiser un poêle sur contact sec. La limite de l’exercice est qu’on peut juste gérer le on/off, pas la puissance. Le modèle Edilkamin Seven ne permet pas plus. Nous allons changer prochainement notre poêle par un Edilkamin Cherie Up, qui disposera d’un contact sec et d’un modèle wifi de pilotage du poêle (puissance, ventilo, etc …). Aucune doc n’existe vraiment, je pense que des heures de reverse engineering sont à venir …
Edit du 01/01/2020
Nous avons changé de poêle pour un Edilkamin Cherie Up 11kW, et il n’y a pas de changement : pilotage par contact sec, à faire sur les bornes 5 et 6 du poêle (voir ci dessous). Le module wifi wifire a quant à lui été arrêté par Edilkamin … On ne pourra donc pas gérer la puissance du poêle … Le module ESP8266 n’a pas changé et marche toujours comme un charme. Je continue de chercher une solution en parallèle, peut être via la télécommande … A suivre.

Bonjour
J’ai essayé de faire la même opération pour commander un relais d’un sonoff th16 mais en vain
Pourriez vous me communiquer les paramètres entrés dans espeasy
Avez vous fait un rue et si oui comment ?
Par avance merci
Bonsoir Michel,
je n’ai pas mis d’espeasy, je code tout depuis l’Arduino en C. Je ne connais pas du tout espeasy.
Mais pour activer un relais, il faut que votre port ESP soit en output et le mettre à LOW ou HIGH pour activer/désactiver le relais.
Le code est dispo ici : https://github.com/doddyfab/Arduino_PoeleMQTT/blob/master/poele_mqtt.ino/poele_mqtt.ino.ino
Bonjour, merci pour votre article très intéressant. Je dispose d’un poêle Edilkamin Chérie UP H, je resterais donc très attentif en espérant un petit article sur ce modèle en temps voulu 🙂
Je me pose une question, y a t’il moyen d’alimenter l’ESP8266 avec le poêle directement ? (Si j’ai bien compris vous avez une alimentation externe). Edilkamin vend un module wifi pour le Cherie up, j’imagine qu’il est auto alimenté d’une manière ou d’une autre.
Merci
Nous venons de changer notre poêle pour un cherie up il y a 2 mois … et ben notre revendeur nous a remboursé le module wifi qui a été abandonné chez Edilkamin 🙁
Du coup, on garde le même principe que l’article et on se connecte sur les pins 5 et 6 du bornier à l’intérieur pour faire un contact sec. On ne pourra faire espérer gérer la puissance du poele via la domotique.
Pour l’alimentation du module, il faudrait en effet regarder si il y a un 12V sur la carte électronique et là j’avoue ne pas y avoir pensé.
Au besoin, je suis dispo pour les branchements et je peux vous fournir des photos.
Edit : j’ai modifié l’article pour ajouter la photo de raccordement du contact sec, comme ça pas de place au doute.