Pilotage Chaudière Frisquet ECO Radio System Visio

Haha j’ai justement un Heltec Lora v3 sur mon bureau qui traine depuis 4 mois, car je m’étais trompé en commandant j’avais besoin d’un v2 explicitement.

Ecoute, ca me parait une super idée, d’autant que le lora v3 est super facile à trouver. Je l’avais eu moins cher sur amazon aussi (25€) et sur ali express, on peut les trouver à encore moins (potentiellement ~15€)

Je suis pas dispo ce week-end, mais je vais m’y interesser la semaine prochaine :smiley:

Trop trop bien ! Merci pour tous tes tests !

Hello,

j’ai aussi testé la transmission avec ce Heltec Lora v3, ça semble bien fonctionner, les trames sont correctement reçus par un RF69 qui décode aussi la chaudière.

Après tous ces heures passé sur ce RF69 le quelle j’ai seulement réussi à faire fonctionner en réception avec RadioHead. La transmission avec cette librairie semble d’avoir des problèmes avec le FIFO, et avec RadioLib en réception il y a aussi 2 bytes en plus après le SyncWord. Bref, c’est bcp mieux avec ce Heltec et RadioLib!

ça serait trop cool si on avancerait, la régulation température de la Frisquet seulement avec le satellite n’est pas trop au point je trouve: la température à peu près stable, mais des longues périodes sans que l’eau chaude circule dans les radiateurs et ça fait une sensation de froid, au moins chez moi. pour ajouter une sonde extérieure il faut acheter la sonde sans fil Visio pour 300€, un ESP32 serait bcp plus raisonnable en terme de prix et ferait bien le même travail :wink:

@+

Hello,

J’ai aussi commencé à expérimenter de mon côté avec un rf69. J’utilise un feather M0 qui n’a pas de support WIFI du coup j’ai ajouté un client serial à frisquet-commander.

@mgre j’ai ouvert une pull request ((je n’ai pas le droit de poster de lien mais elle facilement trouvable, c’est la #1)), il y a pas mal de change car j’ai utilisé cargo fmt mais le principal est la /src/rf.

@dgeppert si tu veux l’utiliser il faut que tu crée un fichier config.yaml

serial_port: "/dev/cu.usbmodem111201"
serial_speed: 115200
network_id: <HEX_ID>

Le client interprète toute ligne encodé en hexa, pour ton programme (pas testé) ça ressemblerait à

Serial.printf("%02X", len);
for (int i = 0; i < len; i++)
    Serial.printf("%02X", byteArr[i]);
Serial.println();

Pour les commandes c’est au format : . Pour les commandes supporter je t’invite a regarder le module serial (/src/rf/serial/mod.rs).

J’ai commencé à implémenter Frisquet Connect, je vous en dit plus bientôt!

très intéressant, impatient à lire la suite! :stuck_out_tongue_winking_eye:

C’est génial ! Ça me fait tellement plaisir de voir toute cette émulation !

J’ai vu ta PR, j’ai l’impression que tu es plus à l’aise en rust que moi :sweat_smile:

J’ai l’impression qu’il y a quelques tests qui sont passés en commentaires, je vais regarder ça dans la semaine (qui devrait faire 2-3j de plus pour passer moins vite). Je vais surement passer un commit de formatage pour y voir plus clair avant.

A+

Pour les adeptes d’enigme dans ce sujet :innocent:
J’ai commence a travailler sur les commandes du mode vacance, mais je ne parviens pas a identifier le format de la data :sweat_smile:
Le format est le suivant:

69906555 est 16/11/2023
bb106556 est 17/11/2023

de906567 est 30/11/2023
30106569 est 01/12/2023
8190656a est 02/12/2023
d310656b est 03/12/2023
2490656d est 04/12/2023
7610656e est 05/12/2023
c790656f est 06/12/2023
19106571 est 07/12/2023
6a906572 est 08/12/2023
bc106573 est 09/12/2023
0d906575 est 10/12/2023
5f106576 est 11/12/2023

0e906592 est 01/01/2024
60106593 est 02/01/2024

ed1065ba est 01/02/2024
93906774 est 01/01/2025 
e5106775 est 02/01/2025

Hello
Super ton travail !
C’est étrange ton problème de date. Car dans le dialogue entre la sonde externe et la chaudère la date apparait en clair de même qu’entre la chaudière et la box Frisquet Connect.
Voici ce à quoi j’étais arrivé lors de mes essais de décodage avec @mgre
Dialogue Sonde ↔ Chaudière

Dialogue Box Connect ↔ Chaudière

Ce serait bizarre que les dates soient programmées autrement dans le mode vacances…
Bonne enquête !
Jacques

Hello !

Pour les dates, tu pourrais tenter avec des dates au milieu de l’année ?

Je me demande si il n’y a pas une histoire d’offset par rapport à une date :stuck_out_tongue:

C’est bizarre, le troisième octet est toujours égal à 65H sauf pour les deux dernières dates en 2025 où il est à 67H.

Bonjour, je surveille cette discussion depuis le début car je possède aussi une chaudière frisquet Visio que j"aimerais bien améliorer coté régulation et programmation…
Les valeurs correspondent à la date au format UNIX, c-à-d le nombre de seconde depuis le 1/01/1970 en hexa sur 4 octets. La seul subtilité est que dans votre cas il faut intervertir le MSW et LSW :

69906555 est 16/11/2023 => 0x65556990
5 « J'aime »

Ah bien vu @gib! C’est super de voir tout le monde essayer de faire avancer le projet :slight_smile:
De mon coté, j’ai fini d’implémenter le support du rf69 (il me manquait la partie émission).
J’arrive a présent a communiquer avec la chaudière en parallèle du module visio. Il faut que je peaufine un peu mon code, mais j’arrive déjà (concernant connect) à:

  • Récupérer les infos:
    • Température ECS
    • Température CDC
    • Température Départ zone1, zone 2 et zone 3
    • Température Ambiante zone1, zone 2 et zone 3
    • Température Consigne zone1, zone 2 et zone 3
    • Température Extérieur
  • Configurer pour la zone1:
    • Température Réduit, Confort, Hors gel
    • Boost
    • Dérogation
    • Mode [Auto, Confort, Réduit, Hors gel]
    • Programmation horaire
5 « J'aime »

Bonsoir,
j’ai aussi acheté un module Heltec Lora v3 en vue de dialoguer avec le SX1211 de la chaudière. En utilisant le petit code arduino précédent et en y mettant l’ID de ma chaudière récupéré par décodage radio, ça fonctionne directement. Du coup l’analyse du trafic chaudière / satellites devient plus simple. Je n’ai pas encore testé l’émission vers la chaudière, j’attends d’avoir décodé le maximum d’info des trames.

1 « J'aime »

Je suis aussi tenté de sauter le pas même si j’ai peur que mes connaissances me fassent rapidement défaut.
@Gib où avez-vous acheté votre module ?

ça se trouve à 27€ pour les pressés sur Am… et pour beaucoup moins sur les sites chinois.
Mais c’est en plus un module radio Lora + un ESP32 (wifi+Bluetooth) + un écran Oled + une interface batterie lithium…

1 « J'aime »

Hello,

J’ai répliqué aussi le POC de @dgeppert sur le heltec-lora-v3, je reçois aussi les informations dans la console :+1:
Par contre, la sensibilité parait moins bonne que celle du sx1211, je capte moins bien le signal de la chaudière au même endroit…

C’est génial cette émulation !

1 « J'aime »

J’ai reçu mon Heltec Lora 32 v3 hier d’Ali Express (18€ pendant le black friday)
Novice dans le developpement via Arduino IDE, j’ai mis en place un environnement de dev et j’ai réussi à faire compiler et flasher les exemples fournis par le constructeur.

Je me suis donc lancé sur l’execution du script de @dgeppert et j’ai eu une erreur de compilation

     int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
                         ~~~~~~~~^~~~~~~~
Compilation error: invalid conversion from 'int*' to 'uint8_t' {aka 'unsigned char'} [-fpermissive]

J’ai tenté de remplacer int par uint8_t sur la ligne de déclaration de network_id et la compilation est passée.
Mais je ne suis pas sûr que c’était la bonne chose à faire.

Ensuite, bien que ca flashe correctement, rien n’est retourné dans la console série.
Si j’ai bien compris à la lecture complète du thread, il faut connaître l’identifiant du réseau de la chaudière, mais comment peut-on l’obtenir ?

Merci pour votre travail, en espérant pouvoir aider à faire avancer le projet

Hello @pafnow,

si tu n’as pas une clé SDR / rtl_433 à la main, tu pourrais essayer de programmer un SyncWord avec taille zero:

int network_id[] = {0x12, 0x34, 0x45, 0x67};
state = radio.setSyncWord(network_id, 0);

Avec un peu de chance ça met le chip en mode promiscuous, il synchronise seulement sur la Preamble (mais faut faire quand même si non RadioLib programme un byte LoRa par default je crois). Je pourrais tester seulement le week-end, mais pour mon RF69 avec RadioHead ça a bien fonctionné.
Si ça fonctionne tu vois probablement du traffic et en actionnant un button du satellite Visio (par ex Consigne +/-) tu pourrais identifier le vrai SyncWord / adresse de ton réseau Frisquet.

Bonne chance :wink:

Hello,
moi j’ai utilisé une clé SDR pour récupérer l’id de ma chaudière mais avec les infos issues du code de mgre je viens de faire le test d’écouter le traffic avec l’id de broadcast (FF FF FF FF) pendant la ré-association de mon satellite et bingo, la chaudière envoi bien son id…
Du coup il faut juste mettre l’id de broadcast

int network_id[] = {0xFF, 0xFF, 0xFF, 0xFF};
state = radio.setSyncWord(network_id, 4);

puis effacer le satellite dans le menu de la chaudière puis relancer une association. Sur la console série on voit apparaitre les échange d’association entre la chaudière et le satellite :
RECEIVED [11] : 00 80 33 D8 02 41 04 NN NN NN NN ==> id chaudière

RECEIVED [11] : 00 80 1A 04 02 41 04 NN NN NN NN ==> id chaudière
RECEIVED [14] : 80 08 1A 04 82 41 03 23 12 06 01 27 00 02 ==>réponse du satellite

1 « J'aime »

Merci pour vos réponses, j’ai enfin trouvé le temps de retester tout cela cet après-midi et j’ai réussi à récupérer l’ID de la chaudière avec le code de @Gib
Et du coup avec le code initial je capte bien les échanges entre le satellite et la chaudière.

Je vais maintenant essayer de comprendre un peu ce qui circule en m’aidant de vos nombreux échanges.
Si vous avez besoin de quelque chose pour avancer, n’hésitez pas, j’ai des bonnes connaissances en programmation même si le monde Arduino est une nouveauté pour moi.

1 « J'aime »

Salut 0xd33d33

Quand tu écris « concernant connect », tu veux dire que tu arrive a te faire passer pour un connect avec la partie association ou que tu récupère les infos de ton connect?

Est ce que tu as partager ton code quelque part?
ca me semble super prometteur en tout cas!