Controle d'un poèle à pellet Interstove par Jeedom

Bonjour, je travaille sur un projet de contrôle d’un poèle a pellet via Jeedom. Ce poèle de marque Interstove se contrôle au moyen de commandes envoyées sur le port serie du contrôleur du poèle.
J’ai réalisé au moyen d’un Raspberry une passerelle TCP(raw)–>Serial(TTL) au moyen de l’appli ser2net. Cette interface me permet pour le moment d’envoyer les commandes et de récupérer des données du poèle par putty a distance via wifi. Pour information, le contructeur Interstove fournit une interface remote wifi, mais je ne l’utilise pas car elle fonctionne par un serveur distant.
La prochaine étape consiste à envoyer par Jeedom les commandes et récupérer les données comme par exemple allumer ou éteindre l’appareil, vérifier son état ou récupérer la température ambiante, mais là je ne sais pas quelle solution adoptée. Si vous pouviez m’aiguiller sur quelques pistes, ça m’aiderait bien.
Merci d’avance.
Cdt

Si tu peux le piloter en ssh, le #plugin-script doit aussi pouvoir le faire.

Bonjour, merci pour l’information concernant le plugin Script. effectivement, j’ai créé des commandes dans ce plugin en Python et ça fonctionne à peu près. Dans le script je crée un socket TCP et je peux envoyer des commandes et recevoir les données de réponse. Par contre j’ai un problème de mise à jour des données ? J’ai l’impression que les toutes les commandes sont exécutées à la sauvegarde et qu’ensuite elles ne sont pas envoyées ou bien que les données de réponse ne sont plus mise à jour quand je teste la commande.
Je dois encore chercher pourquoi.

Je mets un exemple de commande ci-dessous, si ça peut servir à quelqu’un.

< import socket
#import time
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
sock.connect((« 192.168.1.18 », 2000))
#data = « \x1bRF000058& »
data = « \x1bRDA00067& »
sock.send(data.encode())
dataFromServer = sock.recv(10);
print(dataFromServer[1:9])
sock.close() />

Cdt

Bonjour,

Voila, j’ai terminé mon projet de contrôle d’un poêle à pellet Marina Interstove à partir de Jeedom. Pour rappel, je n’utilise pas l’interface EvoRemote propriétaire qui nécessite de passer par le serveur de la marque. A la place, j’ai utilisé ma propre interface à base de Raspberry PI et de wifi qui permet un contrôle à distance en local.

J’ai créé à partir du plugin Script, un équipement qui contrôle l’appareil à distance via Jeedom. Les commandes permettent d’allumer, d’éteindre, de régler la température de consigne, de lire la température ambiante et le statut du poêle. Maintenant que tout fonctionne correctement, il me reste à finaliser le montage et le câblage de cette interface qui reste assez simple à réaliser à partir d’éléments du commerce. Pour information, le cout de cette interface est d’un peu plus de 40 euros qui comprend un RPI 3a+ et une carte micro SD.

Si quelqu’un est intéressé par le jeu de commandes du contrôleur Interstove EVO LCD V7, je peux lui fournir les données que j’ai récupérées à partir de rétro-ingénierie. Ces données ne sont pas exhaustives, mais elles sont suffisantes pour une intégration dans Jeedom comme indiqué ci-dessus.

La prochaine étape va consister à créer des scenarios dans Jeedom pour automatiser le fonctionnement du poêle.

Cdt

Merci de ton partage pour la communauté.

Pense à mettre ton code entre balise </> pour qu’il ne soit pas modifié par l’éditeur de texte du forum.

Bonjour,
Afin de simplifier le montage que j’avais réalisé au départ au moyen d’un Raspberry PI , j’ai finalement tout remplacé par un ESP8266 et ESPeasy. Fonctionnellement, ça fait exactement la même chose. Cependant, le montage est plus compact et consomme moins de courant, ce qui permet de supprimer l’alimentation 5v extérieure et d’alimenter le montage par le 5v du contrôleur du poêle. Côté Jeedom, je n’ai rien changé, le code du plugin Script reste exactement le même.
Je posterai une documentation si quelqu’un est intéressé.
Cdt

Bonjour,

Ci-joint une documentation concernant la réalisation de mon projet de domotisation d’un poêle à pellet au moyen d’une carte ESP8266, ESPeasy et Jeedom.

InterstoveRemoteCmd.pdf (658,0 Ko)

Pour information, une version plus récente du document est disponible plus loin sur ce fil de discussion. Cette nouvelle version comporte des corrections ainsi que le code des scripts Python des commandes Jeedom.
Cdt

Bonjour, je viens d’acheter un poêle à granulé Marina Interstoves (14kw étanche).
J’ai suivi votre tuto via votre document pdf mais malgré mes essais d’envoi de tram (via python sous jeedom), je n’ai aucune réponse du contrôleur du poêle.
J’utilise un esp8266 wifi avec micro usb + un level shifter ( TXS0108E 8 Channel Logic Level Converter TTL 3.3V 5V Bi-Directional). j’ai bien accès à l’interface web de esp easy et configuré comme vous le dites dans votre tuto. le module est bien inclus dans jeedom. Pouvez-vous me donner le type de contrôleur de votre poêle (le mien c’est duepi v7.0.0) ainsi que le model de level shifter que vous avez utilisé car j’ai épuisé tous les test et branchements possible sans succès ?
Merci d’avance.
Cordialement.

Bonjour,
effectivement dans mon cas aussi, l’interface série ne fonctionnait avec le translateur de niveau à 8 canaux. J’ai fait un essais avec le translateur à 4 canaux spécial I2C et là je n’avais plus de problème de communication entre le L’ESP et le contrôleur du poêle.
J’ai trouvé le translateur 4 canaux sur Amazon. Ils sont vendus par 5 pièces par XCSOURCE.
En ce qui concerne la version du contrôleur, je suis en congé en ce moment, je vérifierai en rentrant.
Pour vérifier que la communication wifi et ser2net fonctionne, il est facile de faire un bouclage rx/Tx sur L’ESP et de vérifier que les données émises reviennent bien vers Jeedom.
On peut également utiliser un emulateur de terminal pour envoyer et recevoir les commandes. J’utilise Realterm qui gère tcp.

Cdt

Bonjour,
je vous remercie pour les infos.
Je possède justement un level shifter Xsource (4 canaux) de chez Amazon.
J’ai essayé avec celui-ci mais toujours pareil (aucun retour de tram).
Pouvez-vous me confirmer qu’il faut brancher les cables TX et RX sur les bornes GPIO1 et GPIO3 de l’esp?
En ce qui concerne le test de bouclage, si j’ai bien compris il faut brancher un cable entre le TX et le RX directement sur l’esp ?
Or quand je branche en direct du TX au RX, sur l’esp, dans le log de l’esp easy j’ai un déffillement non stop du port série (error…etc).
Encore un grand merci pour votre aide.
Cordialement.

Bonjour,
il ne faut pas utiliser le translateur de niveau TXS car ça ne fonctionnera pas.
Quelle carte ESP utilisez vous ? Sur ma carte, j’ai un Tx/Rx dédié et ce sont ces 2 bornes que je connecte au contrôleur du poêle en croisant rx/tx. En ce qui concerne les messages qui apparaissent sur le port série, il faut supprimer l’envoi des logs sur le port série dans la configuration avancée de ESPeasy.
Pour debugger, il est plus sur de commencer avec Realterm en bouclant rx/Tx. On envoie des données au clavier et ces données doivent revenir sur le terminal.
Ensuite on connecte L’ESP rx/TX au contrôleur du poêle en croisant les fils. On envoie les commandes au contrôleur du poêle en respectant bien la syntaxe et le contrôleur doit répondre à la commande.
Enfin, quand toutes les étapes précédentes sont correctes, on peut passer à Jeedom.
Je peux vous envoyer le script python que j’utilise pour information.

Petite précision, la vitesse du port série du contrôleur du poêle est fixée à 115200bps. Il n’y a pas de fonction d’autobaud, et donc la vitesse du port série de L’ESP doit également être fixée à 115200bps.

Cdt

OK . J’avance ça y est!! en passant par RealTerm, j’envoie la commande de température ambiante via TCP et j’ai bien le retour de température dans le terminal. Ouff!!
Par contre j’ai essayé d’envoyé la commande de status (\x1bRDA909005f&) mais je n’ai aucun retour dans le terminal.
Je me demandais si nous n’aviez pas fait une erreur de frappe dans votre procédure PDF ?
Merci.

La carte n’est pas exactement la même, mais je vois sur la photo qu’il y a bien les bornes rx/TX, et c’est bien celles ci qu’il faut connecter au contrôleur, en désactivant l’envoi des logs sur le port série et en fixant la vitesse à 115200 bps.

Pour le circuit « level shifter », c’est exactement le même que celui que j’utilise.

Je vous enverrai le code en fin de semaine, car je ne suis pas à mon domicile.

Cdt

Bonne nouvelle , ça fonctionne ! Pour la commande, je n’ai pas le code sous la main, donc je ne sais pas exactement, on pourra regarder en fin de semaine. Il est vrai que la référence c’est le code, et j’ai pu faire une erreur en recopiant les commandes. Essayez les autres commandes pour voir si ça passe.
Pour information, la commande de statut est importante car elle est utilisée dans quasiment toutes les autres commandes.
Comme je l’ai mentionné dans le document, les deux caractères ESC et & sont très importants pour l’interprétation des commandes par le contrôleur. Donc il faut bien vérifier que ces deux balises sont présentes dans les commandes envoyées.
Je viens de relire le document et effectivement, je pense qu’il y a une erreur. Le commandes étant codées sur 8 caractères, j’essaierais RDA9005f pour la commande de statut.
Cdt

ok merci. Bonne journée
Cordialement

Bonjour,

ci-joint une nouvelle version du document avec quelques corrections et le code Python des commandes.

InterstoveRemoteCmd_V1_1.pdf (723,1 Ko)

Cdt

Bonsoir,
un grand merci pour la nouvelle version du document PDF et pour votre travail qui est au top !
C’est grâce à des personnes comme vous qu’il est possible d’intégrer nos appareils correctement avec la domotique + scenarios via une seule application qui gère tout.

Car ce qui m’énerve c’est que je trouve que beaucoup de fabricants offre des solutions connectée mais propriétaire (pas d’API). Grace à vous j’ai exactement ce que je voulais car il m’était impossible d’intégrer le boitier wifi du fabricant avec ma box domotique (pas open source et pas d’API et trop cher à mon goût).

Je vous confirme que les commandes que vous avez indiqué dans le PDF (InterstoveRemoteCmd_V1_1.pdf), fonctionnent toutes sans problème.

J’ai juste une dernière question:

Est normal que quand je règle la puissance (1 ou 2 ou 3 ou 4 ou 5) du poêle il s’allume et la puissance ne change pas sur l’ écran de l’appareil ?

Quand je change la température de consigne via script, celle-ci change bien de valeur sur l’écran de l’appareil.

Encore un grand merci et une bonne soirée.
Cordialement.

Bonjour,

merci pour le message positif. J’ai trouvé beaucoup d’aide sur internet dans divers domaines, et je trouve normal d’en faire autant.

En ce qui concerne le contrôle de la puissance du poêle par l’interface série, je n’ai pas le comportement que vous décrivez.
Si je change la puissance alors que le poêle est éteint, il ne se passe rien,il ne s’allume pas. Pour la puissance affichée sur le panneau de contrôle du poêle, effectivement, la valeur ne change pas et reste à 1. Par contre, si le poêle est en mode « allumé » ou « allumage » et que je change la puissance, la nouvelle valeur est bien prise en compte.

Pour information, la version complète du contrôleur, affichée sur le panneau du poêle à la mise sous tension est E7.00_243 .

Cdt

Bonjour,
je viens de m’apercevoir que la commande d’allumage est identique à la commande de réglage en puissance 1.
Est-ce normal que la commande d’allumage est identique à celle du réglage en puissance 1?
(\x1bRF001059&)==> commande allumage et puissance 1 identiques ?
En envoyant la commande (\x1bRF00205A&)==> puissance 2 ==> poêle éteint==> le poêle s’allume aussi.
La version complète de mon poêle est identique au votre ( E7.00_243).
Merci.

Effectivement, la commande de puissance de niveau 1 est la même que celle que j’utilise pour la mise en route. Dans mes scénarios, je démarre toujours en niveau 1, et donc je ne savais pas que l’on pouvait démarrer directement en niveau 2,3,etc. J’ai préféré séparer la commande de mise en route et la commande de puissances comme sur le panneau de contrôle du poêle.
Cdt