Bonjour à tous,
Egalement nouveau sur ce forum mais je suis ce fil depuis quelques années car moi aussi je rêve de pouvoir réguler ma chaudière de façon satisfaisante (i.e. pas en en on/off) et à distance. Quand on recherche sur la régulation d'une chaudière Frisquet, même en n'étant pas utilisateur de Domoticz, on finit toujours pas tomber sur ce topic.
Les premières expérimentations faites ici en hackant le panneau de contrôle ou en jouant du PWM sur la commande on/off ne m'avaient pas convaincu (trop compliqué pour moi, trop intrusif dans la chaudière). En revanche les derniers développement de l'an dernier fait au niveau du récepteur de l'ERS changent vraiment la donne.
Donc, ce weekend, confiné pour cause de covid, j'ai fait mes expérimentations :
1. Branchement d'un Arduino directement sur la prise du récepteur ERS (récepteur alimenté donc par le 5V de l'arduino), avec le sketch
frisquet-ERS-decode. Ca marche direct et je récupère mon ID:
Code : Tout sélectionner
15:00:43.154 -> Init
15:03:35.095 -> 1111110110000001001110100000000000001000000000000000000110000010010011000000000011111011101111001111111100000001
15:03:35.095 -> 00 00 7E 03 B9 00 20 00 00 83 64 00 FE 3D FF 80
15:03:35.095 -> Checksum correct
15:03:35.095 -> Your ID is: 03 B9
15:04:03.651 -> 1111110110000001001110100000000000001000000000000000000110000010010011000000000011111011101111001111111100000001
15:04:03.651 -> 00 00 7E 03 B9 00 20 00 00 83 64 00 FE 3D FF 80
15:04:03.651 -> Checksum correct
15:04:03.651 -> Your ID is: 03 B9
15:04:03.722 -> 1111110110000001001110100000000000001000000000010000000110000010010011000000000011111011001111001111111100000001
15:04:03.722 -> 00 00 7E 03 B9 00 20 00 01 83 64 00 FE 3C FF 80
15:04:03.722 -> Checksum correct
15:04:03.722 -> Your ID is: 03 B9
Étonnamment le message 02 n'est pas vu et la consigne envoyée par l'ERS est 0x64, ce qui est bien au de dessus de 100. Le reste est conforme à vos observations.
2. Il s'agit donc maintenant d'injecter des messages vers la chaudière. Je choisi donc de prendre un ESP32 que je configure sous ESPHome. Je me suis inspiré du sketch
frisquet-mqtt et je l'ai adapté pour ESPHome qui offre l'avantage de gérer nativement le wifi, l'OTA, le MQTT et offre une intégration avec Home Assistant que j'utilise.
Voir ici :
https://github.com/philippemezzadri/frisquet-esphome
Les consignes peuvent être envoyées directement par Home Assistant ou via MQTT. L'ESP32 renvoie en retour par les mêmes canaux la consigne effectivement enregistrée. Je prévois plus tard d'ajouter les capteurs de mesure de température d'eau (départ et retour).
3. Tests : je branche l'ESP32 à l'Arduino pour voir si les trames générées sont bien décodées. Et là ça se complique. Au début, l'application
frisquet-ERS-decode ne voit jamais le troisième message et donc ne log rien. en fait, le code ne sait pas que le message est terminé et attend indéfiniment la prochaine transition.
Petite modification du code, j'ajoute un ponctuation après le dernier message qui règle le problème :
Code : Tout sélectionner
// /!\ Final transition necessary to get the last message decoded properly;
digitalWrite(ERS_PIN, HIGH);
delayMicroseconds(2 * LONG_PULSE);
digitalWrite(ERS_PIN, LOW);
Après cette modification, les trois messages sont bien reçus mais tout est faux. En fait, les bits semblent inversés. Je note que dans le sketch
frisquet-ERS-decode, on prend l'inverse de ce qui est lu, par exemple :
Il y a une raison particulière à cela ? Je ne remets pas en cause puisque ça marche quand on se branche sur le récepteur radio mais je ne comprends pas la logique.
Je modifie donc mon code d'émission et changeant l'état initial de la sortie en début d'émission. Je mets HIGH quand 0 (LOW) était indiqué dans
frisquet-mqtt.
Code : Tout sélectionner
// /!\ I had to put previousState at HIGH to get the message decoded properly.
previousState = HIGH;
message[9] = msg;
message[10] = (msg == 2) ? preHeatingValue : preHeatingValue + 0x80;
message[11] = heatingValue;
Et là ça fonctionne. Si j'envoie en MQTT un consigne à l'ESP32, les messages sont envoyés et capturés correctement par l'Arduino.
Je suis preneur des commentaires des auteurs du code Arduino sur ces modifications que j'ai dues faire.
3. Reste à faire: se connecter à la chaudière et voir ce que ça donne.
Problème, je n'ai pas vraiment envie de couper les fils du récepteur radio et j'aimerai bien me brancher sur la prise au dos du panneau de contrôle. La prise ressemble à du molex micro-fit 3.0 mais le pitch semble plus proche de 2.5 ou 2.56 mm que 3mm. Est-ce que certains d'entre vous ont pu trouver la référence du connecteur ?
A défaut, comment vous êtes vous branchés : sur les fils du récepteur radio ? A l'intérieur du panneau de commande ? Je suis preneur des solutions les moins invasives possibles.
4. Régulation PID : Je pense mettre ça en place sous nodered avec une sonde d'ambiance et une sonde extérieure. Avez vous des conseils ? Ce n'est pas ma partie et je n'ai pas encore les idées claires sur le sujet.
Merci encore pour le travail fantastique fait par vous tous sur ce sujet.
Bonne année à tous !