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
Bonjour,
Je n’utilise pas de sonoff mais je code toujours entierement mes esp8266.
Donc je ne peux pas vous aider de ce coté. Désolé
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.
Bonjour,
Je possède un poêle cherie up egalement, en attente de mon Netamo, j’ai tenté la même installation que vous (en couplant le thermostat de ma chaudière sur une carte relais via JEEDOM).
le souci est que le poêle ne démarre pas. contact sec banché sur les borne 5 et 6.
sur la télécommande, dans la section info. je vois bien DOM passé de ON a OFF mais pas de démarrage du poêle.
Avez-vous du changer des paramètres pour que cela fonctionne?
Bonjour,
Je n’ai pas eu de souci pour le contact sec, c’est en effet entre 5 et 6.
Vous avez tenté avec un fil à la main pour voir ?
On m’a changé 2 fois la carte mere du poele et à chaque fois, aucune config specifique.
Les fils sont ils bien branchés sur la carte mere ? Je me suis fait avoir au 2eme changement de carte mere le gars avait mal remis le connecteur. Il doit etre branché sur DOM et pas autre chose. Je pense que votre souci est là.
Au besoin on pourra se contacter si vous voulez.
Fabien
Bonjour à tous, bonjour Fabien, Pouvez-vous me confirmer les pin du DB9 à relier sur un poêle Edilkamin Seven? J’ai essayé 6&7 (manuel constructeur), 5&6 et 2&6 mais rien, il ne démarre pas. Dois-je l’ouvrir ?? une idée ? Merci par avance
Bonjour Jimmy,
Pour moi c’etait bien 5 et 6. Vous le faites a la main ou vous avez un cable db9 et des fils dénudés pour tester ?
Il faut bien que les fils restent en contact pour que le poele demarre, qd le contact ne se fait plus le poele lance son extinction.
Merci Fabien pour avoir prit le temps de répondre. Je le fais à la main avec un fils dupont… Je vous tiendrai au courant si je finis par trouver.
Pas de pb. Je vous conseille de prendre un cable avec prise db9, de bien denuder tous les fils et de tester deux par deux avec un wago pour bien faire la connexion. Faut que la connexion soit franche !