Poêles Jolly Mec

Bonjour. Je viens moi aussi de trouver cet email dans mes spams :frowning: C’est regrettable. Les réponses du constructeur, qui décline toute responsabilité, sur le groupe Facebook Jolly Mec France posent également question. Je me demandais s’il était possible de commander ces poelles (pour ma part un Bottero2) sans être à nouveau pris en otage via le nouveau module wifi.

Après quelques recherches, voici les infos que j’ai pu trouver :

  • Il est possible que le module actuellement présent dans mon poelle utilise un microcontroleur de type ESP8266 (car le hostname de celui-ci sur mon routeur début par ESP_XXX). Si c’est le cas, la partie hardware d’un module DIY pourrait être envisageable simplement.
  • GitHub - TheNetStriker/JollyMecApi: This project describes two methods to control JollyMec heaters using scripts and directly via the serial interface. : une personne a commencé un reverse via le protocole Single Wire Serial
  • Peut être tenter de sniffer la communication entre le module actuel et Efesto avant la coupure de celui-ci.
  • L’appli Efesto de jolly mec n’avait pas été mise à jour depuis un moment. Elle n’utilisait même pas de https ce qui, quand on y pense, permettrait à une personne malveillante de sniffer les infos de session et de prendre le contrôle de notre poelle à distance, avec les risques d’incendie que je vous laisse imaginer…
  • D’autre applis utilisant efesto semblent toujours en ligne et plus à jour que l’appli de jollymec (par ex : Login page qui dispose même du https :wink: ).

Savez-vous si d’autres personnes pourraient être intéressées par un tel projet ?

Personnellement je suis intéressé par le projet puisque comme tout le monde, je serais bloqué en juin également… J’ai des connaissances limitées dans le domaine, mais je peux filer un coup de main !

L’appli Efesto a été abandonné par Jolly Mec depuis un moment en effet. Il y a bien d’autres fabricants qui passent par Efesto, mais les pages ne sont pas plus à jour (celle de ton lien date de 2016). De plus, leurs sites ne reconnaissent pas les adresses MAC et modèle de chez Jolly Mec, donc c’est une impasse selon moi. Même si par miracle, on arrivait à enregistrer nos poêles, mon petit doigt me dit que tous les fabricants vont lâcher Efesto un par un et que le problème ne sera réglé que temporairement du coup.

Pour la méthode du Github, ça peut être prometteur, mais pas très user friendly. Ca nécessite de la soudure et du bidouillage du firmware. Autant sur un petit appareil, j’aurais dit osef, autant sur un poêle qui peut très simplement mettre le feu à ta maison, je suis plus sceptique.

De mon côté, j’ai trouvé le module Wifi nécessaire « officiel » c’est un Agua Navel 2.0 de chez Micronova. Mais il coûte 150€ tout de même, à voir si un peu pas plutôt lui trouver un remplaçant DIY.

J’ai transmis la communication de Jolly Mec à mon installateur et je suis en attente de son devis. Sur un groupe facebook Jolly Mec France j’ai vu qu’une personne avait réussi à obtenir un prix de 80 euros pour le nouveau module Micronova. Pour moi l’intéret du DIY n’est vraiment pas le prix si on ajoute le temps passé. Par contre on pourrait y gagner :

  • En stabilité et support pour ne plus dépendre à nouveau d’un fournisseur IT ou de Jolly Mec (qui devrait prendre à sa charge les remplacements des modules, car efseto était bien son fournisseur)
  • En sécurité pour, par exemple, limiter le contrôle du poelle en réseau local ou via son propre VPN
  • En finesse de controle, car on pourrait scripter des lancements / extinctions de façon plus poussée que le « chronothermostat » de efesto.

Coté sécurité pour le DIY, pour moi le plus gros risque est plutôt d’endommager la carte principale du poelle comme c’est arrivé à l’auteur du répo github. Le module wifi en lui même ne fait qu’allumer le poelle et rêgler la température de consigne ou le niveau de chauffe. Tout le reste est géré par la carte mère du poelle.

Avec un analyseur logique on devrait pouvoir faire un peu de reverse eng, mais ce qui me freine c’est d’ouvrir le poelle pour bidouiller à l’intérieur. Idéalement il faudrait sniffer les paquets pendant que le site efesto est toujours actif. Ce qui laisse 1 mois.

1 « J'aime »

Bonjour, je suis intéressé également de mon côté car je pilote mon poele avec le plugin JollyMec depuis 2 ans maintenant.
Je vais tenter d’intercepter le trafic HTTP entre le poele et le portail Efesto en espérant d’y voir des choses en clair et comprendre le fonctionnement.
L’objectif serait de réussir à reproduire la communication entre le portail efesto et mon poele depuis un autre serveur web.

3 « J'aime »

Salut @jude merci pour l’idée ! C’est vrai qu’avec un peu de chance, la communication entre le module wifi du poelle et efesto n’est pas chiffrée. Je n’y ai pas pensé, mais vu que l’interface utilisateur n’utilise pas de https non plus…
Si ca fonctionne, un proxy transparent ou juste une redirection DNS sur le réseau local pourraient fonctionner. Ca serait vraiment l’idéal car cela ne nécessite pas d’ouvrir le poelle et de bidouiller avec la carte mère. Ca doit bien faire 15 ans que je n’ai pas touché à tcpdump, mais je veux bien aider :slight_smile:

j’ai trouvé de quoi démarrer, je crois que le module wifi du poelle est connecté sur mon routeur openwrt. Du coup Wireshark via sshdump comme expliqué ici pourrait fonctionner : [OpenWrt Wiki] How to capture, filter and inspect packets using tcpdump or wireshark tools

Salut. J’ai fait quelques tests ce midi via tcpdump. Quelques trouvailles :

  • On est bien un module expressif, probablement ESP8266 vu l’age du module car dans les requetes ARP on voit « Espressi_ » + le hostname est en ESP_XXXXX
  • A la mise sous tension du poelle, le module cherche à communiquer avec : wifi.jolly-mec.it -> type CNAME wifi.micronovasrl.com -> A 51.75.89.31 C’est étonnant car je croyais que Efesto et Micronova étaient deux entités séparées. Est-ce que Jolly-Mec nous a dit toute la vérité dans son email ?
  • Donc le module communique avec 51.75.89.31 uniquement port 1857. Je ne connais pas le protocole (ca ne semble pas du http)… mais rien ne semble crypté car on voit bien passer ###login customerCode=XXXXXX id=YYYYYYY security=ZZZZZZ ver=00.22 type=1 puis *** login accepted - server ver: 1.0.20.2
  • Ensuite toutes les 6 secondes un message contenant : « ###echo » part du poelle et reçoit une réponse « ***echo » du serveur. Peut être une sorte de keep-alive.
  • Lorsqu’une commande est envoyée via l’interface efesto, le serveur envoie des ***echo##...k".. ou ***echo##.....x~ (il faudrait regarder le détail). On dirait que chaque commande différente correspond à une action différente sur l’interface. Si c’est le cas, il suffirait de toutes les enregistrer pour les rejouer.
  • Lorsque le serveur envoie « ##…h » le module répond avec un payload de 390 octets dont je ne tire rien d’utile pour l’instant. Peut être un statut avec les températures etc pour mettre à jour l’interface Efesto.

Je veux bien de l’aide pour avancer, notamment si quelqu’un d’autre ( @jude ?) peut faire la même capture chez lui pour vérifier les quelques infos. Est-ce que quelqu’un a déjà vu un tel protocole ?

Bref l’idée semble réalisable, même s’il faudra peut etre décoder les messages octet par octet :frowning:
Il faut à tout prix capturer toutes les communications, y compris l’ajout d’un nouveau module, avant la fermeture d’Efesto.

1 « J'aime »

J’avais déjà essayé de faire une capture avec WireShark, je n’avais rien obtenu, je viens de refaire un test avec tcpdump, et c’est pareil, je n’ai rien.
En tout cas, on peut se servir du protocole pour envoyer des ordres, mais à priori, ça va être difficile d’obtenir l’état du poêle sans hack du DNS ou autre chose du genre.

Etonnant de ne rien voir, le module est assez bavard.

De mon coté j’ai lancé le tcpdump sur mon routeur wifi (openwrt) sur lequel est connecté le poele :
tcpdump -i wlan1 -v -A host <IP du poele>

1 « J'aime »

Ok, je comprends mieux comment vous avez pu sniffer le protocole.
De mon côté, je n’ai qu’une freebox, et à priori, pas de possibilité de sniffer un protocole à partir d’elle.
En tout cas, avec ces infos, on pourrait envoyer des commandes au module, mais avec un plugin jeedom, on ne pourrait pas récupérer l’état du poêle, ce qui est assez problématique.

La redirection DNS semble jouable, car le module utilise le DNS fourni par le DHCP du réseau local. Il faudra donc rediriger wifi.jolly-mec.it vers un serveur / rpi ou autre. Ca n’est bien sur possible que si vous maitrisez votre serveur DNS (celui de la box risque de ne pas fonctionner).
L’autre possibilité serait peut etre de mettre une route statique vers l’IP 51.75.89.31 mais il faudra la mettre à jour à chaque fois que les entrées DNS wifi.jolly-mec.it ou wifi.micronovasrl.com changent.

de mon côté, il faut que je monte un hotspot wifi sur mon pc pour forcer le poele à passer par celui-ci puis de lancer un wireshark sur mon poste afin de regarder le traffic passer.

J’ai une infra « réseau classique » via ma bonne vieille LiveBox et non un routeur avec OpenWRT :slight_smile:

Je vais tenter cela dans la semaine.

Je me demande si tout ceci en vaut la peine. La redirection DNS est simple pour moi, car j’ai remplacé ma Livebox par mon propre routeur. Mais je réalise que mon setup réseau est peu commun. Même si nous arrivons à comprendre le protocole efesto, à mimina, il vous faudra installer un routeur wifi avec openWRT ou équivalent dessus (ca coute une 30aine d’euros) pour connecter le poele dessus et rediriger le DNS. Les gens prêts à faire tout ceci, avec un poele Jolly Mec / Efesto se comptent surement sur les doigts d’une main :-/

C’est pas faux comme on dit et il faudra derrière un serveur qui devra répondre comme le ferait efesto…

on peut tenter l’analyse de la communication radio entre la télécommande et le poêle mais il me semble avoir lu que ce n’était pas beaucoup plus simple également.

Bonjour, je suis dans la même situation que vous ( efesto hs en juin avec poêle de 2018 botero2) .J ‹ ai chercher des solutions de remplacement, et , j › ai réussis a souder un relais zigbee en parallèle du bouton arrière sur le module wifi , cela me permet de simuler l action du bouton… je peux donc allumer et éteindre avec un scenario le tout sur mon réseaux local , le tout en gardant la régulation de la télécommande.il y a un deuxième bouton a l arrière pour régler la puissances avec plusieurs impulsions a générées, mais je ne sais pas si c 'est vraiment utile, j’ai essayer le branchement s un contact sec sur l entrée du thermostat externe, sa marche aussi, mais plus aucune régulation. Je peux expliquer le branchement si quelqu’un est intéressé . Ps: le contact sec sur l entrée thermostat externe peux aussi régler la puissance du mode Eco au mode (puissance programmé dans la télécommande, sa marche quand on désactive me mode standby du poêle) pour résumé, cela pourrais permettre d’avoir une commande de puissance (eco ou puissance télécommande) en plus de l allumage expliqué juste avant .
je suis partant pour donner un coup de main si il faut pour le développements des requêtes-commandes http sur le poêle en remplacement d’efesto
karl

Salut. @Kchaar ca m’intéresse. Tu aurais des photos de tes montages ? Eventuellement, si tu as accès à la carte wifi, tu pourrais la prendre en photo et confirmer qu’il y a un module ESP8266 dessus ? La mienne est à l’intérieur du poele impossible d’y accéder facilement.

Pour ce qui est des commandes en http, tu as de quoi faire des redirections DNS sur ton réseau local et de quoi sniffer les paquets du poele ? Je suis vraiment partant pour poursuivre le boulot démarré, mais il faudrait au moins une autre personne pour pouvoir comparer les requetes envoyées par le poele, notamment le message de statut du poele (qui doit contenir la température, le niveau de chauffe etc…) que je n’arrive pas du tout à « décoder ».




1 « J'aime »

Voici les photo de mon montage, les soudures sont sur les deux pins situé derrière le bouton on/off manuel du panneau de secours/wifi. il y a derriere ce bouton 4 pins, se sont ceux situés en haut a gauche et en bas a gauche quand on regarde le module retourné. pour la commande un relais une voie zigbee ou wifi et un un virtuel qui lance un scenario ( temporisé 3secondes avec un wait , action on,wait 3s, action off) . pour moi sa marche super bien en tout cas et, je compte faire la même chose pour le bouton puissance.



1 « J'aime »

Bonsoir, ça y est j’ai monté mon setup pour sniffer les traces.
« Le soucis » est que je suis sous Windows donc je n’ai pas toute à fait les mêmes outils que @Garga.
Je confirme bien la connexion à wifi.micronovasrl.com.
Par contre, j’ai des difficultés à retrouver les autres informations que tu as trouvé.

Je vais essayer avec un autre soft.

PS : Je peux fournir les traces wireshark si cela peut aider.

keep in touch.

Salut. Moi aussi j’utilise Wireshark pour lire les traces tcpdump. Pour analyser le reste des messages il faut regarder le contenu à l’intérieur des paquets TCP. N’hésites pas à poster des copies d’écran si tu le souhaites.

1 « J'aime »