Ravelli Gateway : Domotiser son Poelle à Pellet Ravelli (Palmaire touch radio)

Bonjour à tous,

Je viens ici partager mon expérience sur un projet qui a aboutis : j'ai récemment domotisé mon poelle à pellet ravelli via un module radio (868) contrôlé par un arduino ^^ (que j'ai nommé la "ravelli gateway" pour être super original).

Ce projet m'a pris pas mal de mon temps, c'est donc avec plaisir que je partage ceci pour les amateurs de domotique ^^ Et puis cela pourrais éventuellement amenée des gens à se pencher sur les aspects du projet que je n'ai pas compris (je ne suis qu'un amateur chipotteur... niveau low+).

Donc voila pour l'histoire, dans un premier temps, la solution que j'envisageai était via un relai piloté par un arduino, connecté directement à la carte mère (il y a dans la doc du poel une petite section pour la mise en place d'un "système domotique avancé" ... qu'ils disent dans la doc... :roll_eyes: ).

Puis un jour, pouf la télécommande vole à terre, remplacement, blabla avec l'installateur.... et puis hop, j'ouvre et j'ausculte la télécommande :grin: et je vois que le module radio est un truc tout fait :smiley: (ralala qué des feignass).

RTX-868-FSK

Googeler cela et vous trouvez facilement la doc sur internet, et sur ebay nous trouvons ce module pour 20-25 €.
Le principe est simple, on peut mettre le module soit en mode "écoute" soit en mode "émission", et puis envoyé des 0 et des 1 via le 868, la modulation - démodulation est gérée par le module, tout ce qu'on a à faire c'est blablater avec ^^

Donc première phase : mettre le module en mode écoute, et écouter tout ce qui se passe. Là ça prend assez de temps à analyser (pour info je me suis servis d'un "logic analyser" de type salae) donc je vous passe les détails. Alors, le poel et la télécommande parle en "asynchronous serial Inverted" avec un bitrate de 4800b/s.

Dans les images jointes, vous pourrez observer des exemples de trames que s'envoie la télécommande et le poel.

Malheureusement, je n'ai pas réussis a déchiffrer tout ce qui se trame par là... (ahah)... Et j'ai l'impression que certaines valeurs sont "arbitraire"...
Tout d'abord, il y a le burst : émissions de plusieurs 1-0-1-0... puis série de 0 d'au moins 40ms.
Ensuite, ça commence la causette.
Voici ce que j'ai pu déchiffrer :
(en hexa)
premier byte : si c'est la télécommande qui cause, c'est 0xBC. le Poele : 0xCB -> est ce que cela change en fonction du poele ?
deuxieme byte : le nombre de byte qui est à venir !
3eme : télécommande : 0x21. Poele : 0x11 -> est ce que cela change en fonction du poele ?
4ème : tout le temps 0xCC -> valeur integer 204, ressemble étrangement au "champ ID", que l'on peu lire sur la télécommande lorsque le poel est coupé complètement (prise débranchée).

Les byte qui suive, c'est en fonction du type de requête, en générale, 2 ou 3 byte de requête (la télécommande répond avec ces 2-3 même byte pour valider que la réponse est bien en fonction de la question)...

Enfin, il y a les 2 dernier byte qui sont (certainement) un contrôle de redondance (CRC16 ou autre) mais impossible de reproduire ceci ou de le recalculer ! j'ai tourner la formule dans tout les sens, sur une feuille blanche, je me suis cassé la tête, mais impossible de mettre la main sur la bonne formule... Tant pis, je me passe du checksum ^^

J'ai pus voir passé une dizaine de requête différente, je n'ai identifier que 2-3, dont celles qui m'intéressent : le questionnement pour l'état du poelle, et la commande allumé ou éteindre (c'est la même!).

voici quelques requête :

byte hello1[] = {0xBC, 0x07, 0x21, 0xCC, 0x01, 0x00, 0x1E, 0x9A, 0xBC };
byte hello2[] = {0xBC, 0x07, 0x21, 0xCC, 0x01, 0x00, 0x63, 0x35, 0x86 };
byte hello3[] = {0xBC, 0x07, 0x21, 0xCC, 0x01, 0x00, 0x53, 0x03, 0xD5 };
byte hello4[] = {0xBC, 0x07, 0x21, 0xCC, 0x01, 0x00, 0x52, 0x13, 0xF4 };
byte hello5[] = {0xBC, 0x07, 0x21, 0xCC, 0x01, 0x00, 0x12, 0x13, 0xF4 };
byte hello6[] = {0xBC, 0x07, 0x21, 0xCC, 0x10, 0x17, 0x01, 0x97, 0xD5 };
byte hello7[] = {0xBC, 0x07, 0x21, 0xCC, 0x10, 0x07, 0x04, 0xC4, 0x03 }; -> demande de l'état du poel. Réponse sur 4 byte !
byte hello8[] = {0xBC, 0x07, 0x21, 0xCC, 0x10, 0x07, 0x01, 0x94, 0xA6 }; -> demande de l'état du poel. Réponse sur 1 byte -> c'est cette requête que je fais tout le temps !
byte hello9[] = {0xBC, 0x07, 0x21, 0xCC, 0x10, 0x0A, 0x01, 0xE2, 0xFA };

//update de température
byte helloTemp1[] = {0xBC, 0x08, 0x21, 0xCC, 0x11, 0x00, 0x01, 0x17, 0xF4, 0xCF }; //8eme byte pour la temp en ascii : 23 degré
byte helloTemp2[] = {0xBC, 0x08, 0x21, 0xCC, 0x11, 0x00, 0x01, 0x18, 0x05, 0x20 };
byte helloTemp3[] = {0xBC, 0x08, 0x21, 0xCC, 0x11, 0x00, 0x01, 0x19, 0x15, 0x01 };

//la grosse commande : allumé ou éteindre
byte grossecmd[] = {0xBC, 0x06, 0x21, 0xCC, 0x07, 0x01, 0x9B, 0xDA };

Les réponses du poêl à la requête hello8 :
byte reppoel08_on1[] = {0xCB, 0x08, 0x11, 0xCC, 0x10, 0x07, 0x01, 0x03, 0x7A, 0xD2 }; //en cours de démarrage

le 0x03 se transforme en :

if (theresponse[7] == 0x00) {setPoelStatus(1,"Completement%20Arrete"); codePoel=false;}
else if (theresponse[7] == 0x01) {setPoelStatus(1,"OK%20Cleaning"); codePoel=true;}
else if (theresponse[7] == 0x03) {setPoelStatus(1,"OK%20En%20cours%20de%20demarrage"); codePoel=true;}
else if (theresponse[7] == 0x05) {setPoelStatus(1,"OK%20Completement%20Demarre"); codePoel=true;}
else if (theresponse[7] == 0x08) {setPoelStatus(1,"En%20cours%20d%20arret"); codePoel=false;}
else if (theresponse[7] == 0x11) {setPoelStatus(1,"Modula"); codePoel=true;}
else if (theresponse[7] == 0x17) {setPoelStatus(2,"Alarme%2005"); codePoel=false;}
else if (theresponse[7] == 0x18) {setPoelStatus(2,"Alarme%2006"); codePoel=false;}
else if (theresponse[7] == 0x19) {setPoelStatus(2,"Alarme%2007"); codePoel=false;}
else { setPoelStatus(4,"Unknown%20Status%20code%20-%20"); codePoel=false;}

Vous l'aurez compris : je code comme un zanglief ....

Donc voila, je pense qu'il est possible de faire beaucoup de chose via ce module (certainement tout ce que l'on peut faire avec la télécommande de base) mais bon, c'est trop pour moi :smiley:

J'ai lier le code pour un arduino avec shield ethernet et shield perso sur carte de prototypage... Et j'ai même lié un modèle 3D pour une box arduino "ravelli gateway" :wink:

Voila voila, si vous avez des question n'hésitez pas :wink:

ciao.

ethernet_remote_pellet.ino (13.5 KB)

palmair touch.jpg

ArduinoCasetestOKOK.stl.zip (40.1 KB)

Je rajoute quelques lignes pour le câblage (pour les personnes qui veulent aller jusqu'au bout ^^)

Au début, je faisais mes tests avec un arduino mini directement en 3.3v, ça passe sans aucun soucis (avec les entrée sortie reliées directement au module 868).

Ensuite lorsqu'il fut temps de mettre ça en prod (enfin sur mon meuble TV quoi xD ...) , j'ai eu un soucis avec la conversion 5v vers 3.3v .... avec un logical level shifter (tel que celui-ci : https://www.sparkfun.com/products/12009) cela ne fonctionne pas.... après réflexion et discutions avec des collègues électronicien, il s'agit surement de l’impédance du level shifter qui serait trop élevé pour le transceiver.

Comme workaround, je travail avec des ponts diviseurs de tension pour les signaux qui vont de l'arduino vers le transceiver (et rien dans le sens transceiver -> arduino).

Ciao :wink:

Rah ouais, ya des gens qui réfléchissent!
Super, j'en veux un ^^

Hello,
de nouveau quelques lignes xD
bon après réflexion, il aurait été difficile pour les personnes délirantes de reproduire cette gateway de le faire sans passer par une analyse des communications du poel et de la télécommande... Car en fonction de leurs champ ID, les 2 derniers bytes de CRC changent...
Donc j'ai de nouveau tenter une compréhension et Bingo ! ^^ j'ai eu plus de chance ici...

sur ce site,
https://www.lammertbies.nl/comm/info/crc-calculation.html

lorsque j'introduis à partir du 3ème byte jusqu'au dernier utile (sans les 2 de CRC évidemment), je retrouve mon CRC -> CRC-CCITT (XModem)

Donc en principe, si vous introduisez votre champ ID (vous allumez la télécommande avec le poele complètement débrancher) à la place du 4ème byte (chez moi, 0xCC, en décimal 204), vous recalculer le CRC grâce au site, et vous créez vos propres requêtes :wink:
En réalité dans mon code, je n'utilise que hello8 et grossecmd............... j suis gêné rien qu'a les citer :kissing:

Ciao

Hi Antonino,
sorry but I can't speak French. I really appreciate your post about the automation of the stove.
I have this model of stove and I would like to accomplish the remotization of the power on/off of the stove.
I dont't have experience on arduino and co. Is it impossible or could you help me to do your good job?

Thank You
Regards
Ciao

Bonjour Antoninocanta

D’abord merci pour toutes ces informations. Elles me guident dans mes propres recherches.
J’ai installé récemment un poêle Ravelli modèle infinity. Déçu par la programmation offerte par la télécommande d’une part, et ayant une certaines connaissances en micro-informatique d’autre part, je cherche une substitution à cette télécommande.
La télécommande peut se brancher directement par un câble à l ‘arrière du poêle ou communiquer par liaison radio.
J’ai commencé par analyser les signaux échangés avec la connexion filaire. Une petite adaptation électronique m’a permis d’envoyer les messages échangés sur l’entrée RS252 d’un PC. Cela m’a permit de cataloguer les messages utilisés par toutes les manipulations que permet la télécommande. Bien évidemment, ceux que vous décrivez précédemment y figurent.
Je veux maintenant utiliser la liaison radio. D’abord le transceiver de la télécommande à changé. C’est le circuit : SX1211: Wireless RF 868 Mhz – 3,3v – 25mA qui est utilisé. Côté poêle, je n’ai pas encore démonté le poêle pour accéder à la carte électronique, mais d’après les dernières documentations accessibles sur le site de Ravelli, ce serai encore le tranceiver RTX-868-FSK qui serai utilisé.
C’est là que commencent mes déboires. Le circuit RTX-868-FSK que j’ai acheté et câblé reçois des caractères en permanences. Aucune structure logique dans les messages. J’ai l’impression que c’est du bruit transformé en code ascii. Je n’ai pas trouvé de source radio polluante dans les alentours.

  • Avez-vous pris des précautions particulières pour câbler ce circuit?
  • Quel canal (868,3MHz ou 869,85MHz sélectionné par la broche 6 CN/SEL) avez-vous utilisé?
    Avant d’admettre que mon circuit est défectueux, j’aimerai avoir balayé toutes les autres possibilités d’anomalies.
    Merci par avance et bienvenue à toutes vos idées et réponses,

Bonjour,
Alors, si mes souvenirs sont bon, la fréquence est 868,3 mhz.
Ensuite, Oui en effet, la puce capte bel et bien tout les bruit environnent, si bien que les réponses en sorties sont totalement anarchique jusqu'au moment ou une vrai communication commence. Dés lors qu'il capte un vrai signal, les bruit s'estompent et laisse place à la vrai communication.
Je joins une capture directement en sortie de la puce ou j'écoute la communication entre le poel et la télécommande. (la première capture était en sortie de l'arduino et c'était moi qui l'émettait, voici pourquoi la capture était si clair ^^ désolé, je vous ai induit en erreur)

C'est pourquoi dans mon code code, Je ne fais qu'écouté après l'émission de ma requête, et j'attend la réception du premier byte correct :

while(millis() < timeout)
{

theresponse[0]=mySerial.read();

if (theresponse[0] == (byte)0xCB)
...

Voilavoila, je reviendrais voir plus souvent le post, désoler de la lenteur de ma réponse :s

démarrage.zip (48.3 KB)

Merci Antoninocanta d'avoir pris le temps de me répondre.
J'ai essayé un second transmiter qui donne le même résultat.
J'avais comme vous le dites pensé qu'une vrai communication pouvait se cacher dans le bruit reçu. Malheureusement les différentes analyses que j'ai réalisées ne m'ont pas permis de les trouver.
J'ai édité votre fichier joint. Je suis étonné de ne pas retrouver des chaines de message comme:
0xBC, 0x07, 0x21, 0xCC, 0x10, 0x07, 0x01 ... par exemple.
Avec Notepad++ et un affichage en hexa j'ai ceci:
00 00 00 00 00 00 21 1c 00 00 00 00 00 00 01 00
00 00 00 00 00 00 2f ec 00 00 00 00 00 00 2c 1c
00 00 00 00 00 00 2b 1c 00 00 00 00 00 00 01 00
00 00 00 00 00 00 73 ec 00 00 00 00 00 00 36 1c
Pourquoi tout ces 00 ?
En attendant, mon adaptation du câble de la télécommande vers une RS232 fonctionne bien.
Depuis un PC et une application écrite en WinDev je gère mon poêle.
Je dois maintenant transposer tout cela vers un Raspberry Pi J'hésite encore entre Python ou le C pour écrire le programme.
Je referais des essais avec le transmiter en devenant maître de la communication et non plus en restant seulement à l'écoute.
Si vous pouviez m'éclairer sur le contenu de votre fichier ce serai super.
Cordialement

Hello,
Alors, ce que tu essaye d'analyser en hexa est une capture avec un logic data analyser (type salae : Logic analyzer software from Saleae). L'appareil utilise une fréquence d’échantillonnage que l'on détermine et que l'on place plus haut que la vitesse de transmission réelle (pour ne pas rater d'info).
Du coup, avec le logiciel, c'est très clair (voir image) mais en hexa, pas trop à mon avis :s

Bonne continuation :wink:

Arf! j'étais à côté de la plaque. Maintenant j'ai compris.
Ma première méthode d'analyse était similaire, mais ne disposant pas d'analyser j'ai connecté le signal filaire de la télécommande à travers une petite interface électronique sur l'entrée ligne de mon PC.
J'ai enregistré dans un fichier wav puis écrit un programme pour transformer les échantillons du fichier wav en code ascii.
Je vais retourner à mes essais, ça va me prendre quelques jours. Je reviendrai vous informer des résultats
Merci et à plus.

Bonjour à tous,

Pour ma part j'ai un Ravelli Dual 9 et je m'intéresse depuis quelques jours à le connecter à ma future domotique (bah oui, je n'ai pas encore fait grand chose, lol). Je suis en plus débutant en Arduino (je sais, c'est pas gagné). Je voudrais au choix soit une solution radio, wifi ou rs232.

Tout d'abord, merci Antoninocanta pour toutes ces informations précieuses.

Une photo de ton prototype câblé aurait été le bienvenu pour m'aider, car j'ai un peu de mal à comprendre comment câbler le module FSK a l'arduino (en lisant la doc, un peu trop succinte à mon gout, gnd vcc ok mais bon pour le reste gloups...)

En regardant ton code, j'ai vu l'utilisation des pin de 2 à 6 (define).
Voici mes suppositions :

  • SDSD (désolé je vois pas :cry: )
  • rxPin (à câbler sur la pin DIGITAL DATA OUTPUT, je présume)
  • txPin (à câbler sur la pin DIGITAL DATA INPUT, je présume)
  • enablePin (à câbler sur la pin ENABLE)
  • ioChoicePin (à câbler sur la pin TX/RX)
  • les pin RSSI, CN/SEL du module FSK ne sont pas reliées

Bon, à présent j'attends les insultes et les tomates :wink:

Merci d'avance.

Bonjours.
J'ai lamentablement échoué dans l'utilisation du module radio. Je n'ai pas réussi à capter de signaux.
J'ai donc finalisé ma connexion filaire pour continuer mon projet.
J'ai attaché à ce post un fichier "Liaison RS232.odg" (LibreOffice Draw) qui contient le schéma des 2 extrémités de la liaison RS232.
Je suis en train de développer un programme en langage C pour le Raspberry. J'ai plein d'idées mais peu de temps devant moi car la saison de chauffe devrai s'arrêter dans un mois.
Depuis hier je mesure la température intérieure et la transmet au poêle qui n'y voit que du feu^^
A suivre...

Liaison RS232.zip (21.7 KB)

Petite précision complémentaire:
Le câble Ravelli qui se branche entre le poêle et la télécommande possède 4 fils de couleur:

violet masse (0v)
rouge transmission série asynchrone bi-directionnelle
orange +18v (attention aux court-circuits: danger! Je ne sais pas à quoi il sert)
blanc +5v

Je dispose aussi d'un dictionnaire définissant les principaux messages échangés
A plus

Hello Fred1024,
Bonne déduction pour la connexion des pins :wink:
attention que le module est en 3.3v et l'arduino en 5v donc pour la communication entre arduino -> module, il faut passer par un pont diviseur de tension.
Je ferais un petit montage dessin fritz prochainement :wink: mais en principe tu a tout bon sur la connectique.

la pin SDSD c'est le module SD du shield ethernet chinois, je ne l'utilise pas dans ce montage. par ailleur, je te déconseille le shield ethernet chinois car j'ai des soucis avec au démarrage, il faut le rebooter a chaque mise sous tension car il ne prend pas d'IP :s c'est chiant lors de panne de courant car c'est le genre de truc que l'on oublie xD

Emerinu, tant mieux si tu a trouver ton bonheur avec le RS232, je vais analyser ton code pour voir si les commandes du poel sont les mêmes, il y a des chances ^^
bien à vous
antonino

Ci-joint la liste des commandes en RS232. En radio l'entête est différente je suppose.

Dictionnaire.zip (19.7 KB)

Pensez-vous que cela convient pour travailler avec le Raspberry Pi? J'ai Ravelli Soffio.

merci d'avance

Emerinu:
[...]J'ai attaché à ce post un fichier "Liaison RS232.odg" (LibreOffice Draw) qui contient le schéma des 2 extrémités de la liaison RS232.
Je suis en train de développer un programme en langage C pour le Raspberry. J'ai plein d'idées mais peu de temps devant moi car la saison de chauffe devrai s'arrêter dans un mois.[...]

Bonjour à tous,

Tout d'abord, merci @antoninocanta et @Emerinu pour votre formidable travail de décodage et d'explication, de 2 méthodes de pilotage d'un poêle Ravelli.

Ayant aussi un poêle de cette marque, je souhaite domotiser l'ensemble, pour l'utiliser sur Jeedom.
N'ayant pas ma box juste à côté, et souhaitant passer en filaire (j'ai une préférence pour cette méthode) j'ai dans tous les cas besoin d'un arduino ou raspberry pi zero au cul de la machine pour faire le lien.
J'ai donc quelques questions à propos de la connexion.

Emerinu, le câble que tu fournis est-il seulement utilisé pour écouter les discussions entre la télécommande et le poêle, ou c'est celui que tu as en permanence ?
Aussi, peux-tu détailler un peu tes avancés sur le sujet ?

Bonjour
Mon travail ne porte que sur la connexion d'un Ravelli modèle infinity avec un Rasperi Pi3 et je n'ai aucune idée de sa portabilité sur d'autres appareils. Je vous laisse le soin de le préciser.
Pour le câblage voici les liaisons depuis le poêle vers le Rasperi.

  • j'utilise le câble fourni par le constructeur ( qui réuni normalement le poêle à la télécommande) pour réunir le poêle avec ma 1ère interface RS232 utilisant le MAX232.
  • un câble 4 fils passant par le grenier connecte cette 1ère interface avec la seconde placée près du Rasperi
    utilisant le MAS3232 (Sur le schéma fourni j'ai écris vers ARDUINO, mais en réalité c'est vers le Rasperi, désolé de cette coquille).
    Il me semble aussi avoir vu, sans les noter, quelques erreurs dans mon dictionnaire. Alors prudence pour son utilisation.
    Sinon j'ai une saison de chauffe complète derrière moi et je suis satisfait de mon programme développé avec QT4.
    Voici les améliorations dont je bénéficie:
  • Programmation de la consigne de température pour chaque jour de la semaine. ( Pour contourner le mécanisme d'arrêt du poêle au changement de consigne que provoque la télécommande du constructeur, je conserve une consigne constante dans le poêle : 20 degrés par exemple, et je le trompe sur la mesure de température que je lui fourni pour le faire chauffer ou pas, si je veux 22 et que la température ambiante est de 20 , j’envoie une température de 18 au poêle.)
  • Alerte si on arrive en fin de pellets ( <10% du sac ).
  • Alerte si nettoyage nécessaire ( toutes les 24h de chauffage cumulé.)
  • Gestion de la puissance de chauffe selon la température extérieure et/ou l'écart entre la température ambiante et la consigne désirée.
  • Fichiers historiques de chauffe journaliers.
    Voila je vous souhaite de réussir dans vos objectifs et reste a votre dispositions si nécessaire.

Bonour Emerinu,

Merci pour ces explications.

Emerinu:
Mon travail ne porte que sur la connexion d'un Ravelli modèle infinity avec un Rasperi Pi3 et je n'ai aucune idée de sa portabilité sur d'autres appareils. Je vous laisse le soin de le préciser.

J'ai un Ravelli R-Evolution. Normalement, vis-à-vis de l'infinity, seul le design extérieur change.
Pour le moment, j'hésite entre un raspberry pi zero et un arduino (version à confirmer).

Emerinu:
Il me semble aussi avoir vu, sans les noter, quelques erreurs dans mon dictionnaire. Alors prudence pour son utilisation.

Ca marche, du coup, je vais faire mon propre dictionnaire, pour confirmer ceci.
J'ai l'intention de brancher sur le port série du raspberry pour écouter ce qu'il s'y passe (voir schema joint). J'ai toute la connectique nécessaire pour reproduire le faisceau constructeur avec les borniers blanc.
Est-ce que tu penses qu'ainsi je n'aurai aucun soucis, ou bien est-ce que le câble est mauvais et pourrais détériorer quelque chose ? (Ne sachant pas la valeur de courant sur le fil de transmission, j'ai mis une résistance pour limiter la valeur de courant entrant sur le port série)

Emerinu:
Programmation de la consigne de température pour chaque jour de la semaine. ( Pour contourner le mécanisme d'arrêt du poêle au changement de consigne que provoque la télécommande du constructeur, je conserve une consigne constante dans le poêle : 20 degrés par exemple, et je le trompe sur la mesure de température que je lui fourni pour le faire chauffer ou pas, si je veux 22 et que la température ambiante est de 20 , j’envoie une température de 18 au poêle.)

Il n'était pas possible de simplement changer la valeur de consigne, sans passer par le changement du programme qui arrête le poêle ? Peut-être que ça génère le bip de validation à chaque fois ???

Emerinu:
Alerte si on arrive en fin de pellets ( <10% du sac ).

Tu as un capteur dans la trémie ? Je n'ai rien trouvé sur mon modèle, ni sur le manuel.

Bonjour

  • Concernant ton schéma, Je suis d’accord avec une résistance entre le fil rouge (signal bidirectionnel) et ton interface, par contre la deuxième entrée doit être réunie directement à la masse (le fil violet).

  • Effectivement le changement de consigne provoque un bip, ce que je préfère eviter pour garantir ma qualité de sommeil ^^.

  • La consommation de pellet est calculée proportionnellement à la durée de chauffage. La fin du sac est donc estimée. ( J'ai mesuré pour chaque niveau de puissance le temps nécessaire pour bruler mon sac de 15 kilos de pellets) La précision reste dans les 5 %. A chaque remplissage je corrige si nécessaire la quantité restante et je valide le fait d'avoir rajouté un sac entier. En dernier ressort je contrôle la température du foyer si elle descend en dessous de 200 degrés je provoque une alarme urgente (j'ai 5 à 10 minutes avant que le poêle ne passe en défaut); Contrairement au point précédent j'utilise une séquence d'écriture de la consigne pour provoquer une suite de bip. Pour passer la nuit sans souci je m'assure aussi qu'il reste au minimum 20 % de pellets

  • Je joins un nouveau fichier qui contient le code de tous mes messages (lesquels sont donc certifiés). La constitution de chaque message est définie en début de chaque fonction par les variables BufEnv et BufCmp. Les valeurs 0xff ne sont pas à contrôler ou contiennent les valeurs à analyser en retour.

Je reste à ta disposition pour toutes infos complémentaires.

Messages.cpp (23.6 KB)