Pilotage Chaudière Frisquet ECO Radio System Visio

Bonjour tout le monde !

Déjà chapeau bas pour le travail accomplie vous êtes incroyables !

Je change de chaudière (actuellement une vieille Franco belge piloté en contact-sec avec un module zigbee et un pilotage depuis HA avec HASmartThermostat qui se débrouillé très bien).

Je vais la remplacer par un Frisquet de fin 2012 avec Eco Radio System Visio (pile le cas de figure de ce sujet). Avec, j’ai un satellite.

Dans le meilleur des mondes, j’aimerai pouvoir piloté sa consigne de température ambiante à maintenant depuis un thermostat dans HA (car j’ai toute une gestion de présence avec changement de consigne quand je ne suis pas présent etc…). Bien évidement, en simple contact sec ça peut très bien fonctionner, comme dit au début du sujet, ça serait s’assoire sur la modulation de puissance que peut faire la chaudière.

J’ai une sonde de température extérieur zigbee également qui pourrait être utilisé comme sonde extérieur virtuelle.

J’ai lu tout le topic mais je me suis noyé dans le sujet et au final je ne sais pas par où commencer.

Que me faudrait-il comme matériel pour arriver à mes fins ? (J’ai en stock ESP8266 et arduino uno).

Merci à vous !

Merci, J’ai une chaudière récente (2023). J’ai trouvé le menu qui est effectivement le dernier dans la liste : Partenaires → Ajouter.
Je vois bien les trames qui passent mais comment associer le Frisquet Connect vituel. Si j’appuie sur le bouton du satellite il me répond évidemment que ce n’est pas le bon matériel :frowning:

Faut il envoyer une trame particulière ?

Merci beaucoup, quand j’aurais réussi tout cela je ferai un didacticiel pour les débutants comme moi :slight_smile:

Alors, ca dépend de comment tu veux faire, mais dans tous les cas, il te faut une carte Heltec ESP32-lora v3 qu’on trouve entre 10 et 30€ suivant les sites (sur amazon, c’est disponible rapidement, mais beaucoup plus cher)

Ensuite, il faut se poser différentes questions :

  • Tu veux faire une régulation avec une loi d’eau indexée sur la temperature extérieure => il te faut une sonde extérieure, que tu peux émuler avec les différents programmes fournis (ESP qui fait tout, utilisation d’un soft en rust, etc…)
  • Tu veux remplacer un satellite par un termomètre zigbee => idem, on a décodé le protocole pour.
  • Tu veux collecter des données depuis le frisquet connect => Il faut s’associer avec le connect, mais c’est pas forcement très utile pour de la régulation pure.

Une piste que je veux suivre, mais c’est assez personnel comme décision car je pense que ca correspond mieux à mes besoins, c’est d’utiliser mes TRV + sonde de température pour demander du chauffage dans chaque pièce, si besoin. La demande de chauffage se fait par commande contacteur sec et la modulation de puissance se fait par la loi d’eau avec l’extérieur. Je conserve un satellite dans la pièce principale pour que la chaudière puisse adapter sa loi d’eau en fonction de la maison en mettant une influence à 0.

Concernant les guides, je pense que pour le moment, personne n’a vraiment travaillé sur un service clé en main qui permettrait de répondre à un cas d’usage complet, on est encore sur du bricolage.

Pour ma part, j’utilise depuis ~6 mois ce programme qui requiert de brancher le heltec sur un ordinateur qui lancerait le code en rust. GitHub - mgrenonville/frisquet-connect at mqtt_output_hqss
J’ai la récupération de la température extérieure dans home assistant via une entité, et le forward des infos connect dans mqtt.

En partant du repo github, tu peux associer une sonde extérieure après configuration via :

cargo run -- pair sonde

Pour le connect :

cargo run -- pair connect

Et ensuite, pour interagir comme une sonde, cargo run -- sonde et pour récupérer les infos de capteurs connect cargo run -- sensors. Il faut prévoir de faire tourner ces scripts de manière régulière pour éviter de perdre le chauffage, si la chaudière ne reçoit pas d’infos pendant 30 minutes, elle affiche un défaut et s’arrete.

Voici la config que j’utilise:

[frisquet]
send_init = false # sera trouvé par l'association
network_id = "xxxxxxxx" # sera trouvé par l'association
association_id = "xx" # sera trouvé par l'association
request_id = "xx" # sera trouvé par l'association

[sonde]
send_init = false # sera trouvé par l'association
network_id = "xxxxxxxx" # sera trouvé par l'association
association_id = "xx" # sera trouvé par l'association
request_id = "xx" # sera trouvé par l'association

[home_assistant]
host = "http://ip-home-assistant:8123"
port = 0
token = "api-token-homeassistant"
entity_id = "weather.maison"
temperature_field = "temperature"

[serial]
port = "/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0"
speed = 115200

[mqtt]
broker = "tcp://mqtt.home:1883"
client_id = "frisquet-connect"
cmd_topic = "/frisquet/cmd"
lst_topic = "/frisquet/listen"

Pour les lancements périodiques, j’utilise systemd après avoir fait un cargo build:

### ~/.config/systemd/user/frisquet-connect.service
[Unit]
Description=Frisquet Sensors Service
StartLimitIntervalSec=500
StartLimitBurst=5



[Service]
Type=oneshot
WorkingDirectory=/path/to/frisquet-connect
# Command to execute when the service is started
ExecStart=/path/to/frisquet-connect/target/debug/frisquet-commander sensors
Restart=on-failure
RestartSec=5s


[Install]
WantedBy=default.target

Et un timer:

### ~/.config/systemd/user/frisquet-connect.timer
[Unit]
Description=Python Demo Service

[Timer]
OnBootSec=7min
OnUnitActiveSec=5min



[Install]
WantedBy=timers.target
1 « J'aime »

Merci.
J’essaye déjà de comprendre les trames que je reçois et notamment la 63 pour récupérer les infos.
J’ai mis comme température 5.0°C pour tous les modes comme cela il n’y a que le mode qui doit changer en théorie dans la trame reçue.
J’ai bien attendu au moins 30 minutes entre le changement de mode sur le satellite et la récupération de la dernière trame 63.
Je ne comprends toujours pas comment elle est construite. Si je me réfère au wiki fait par burnallover (trame 63 bytes · Burnallover/frisquet-mqtt Wiki · GitHub) je devrais avoir en positions 16 et 17 et 18 la même donnée, hors ce n’est pas le cas. J’ai 04 puis F6 puis 01.

08 80 EB FA 81 03 38 01 D1 02 A4 01 15 04 F6 04 F6 01 8D 00 00 00 00 00 00 00 00 16 00 00 09 01 6C 00 00 00 00 00 00 00 00 00 00 00 F7 04 F6 04 F6 00 C6 00 C6 00 C6 00 32 00 00 00 00 05 0A Hors Gel
08 80 EB 23 81 03 38 01 D1 02 91 01 25 04 F6 04 F6 01 8D 00 00 00 00 00 00 00 00 16 00 00 09 01 6C 00 00 00 00 00 00 00 00 00 00 00 FD 04 F6 04 F6 00 C6 00 C6 00 C6 00 32 00 00 00 00 05 0A Auto
08 80 EB 4A 81 03 38 01 D1 02 7F 01 1A 04 F6 04 F6 01 89 00 00 00 00 00 00 00 00 16 00 00 09 01 6C 00 00 00 00 00 00 00 00 00 00 01 02 04 F6 04 F6 00 C6 00 C6 00 C6 00 32 00 00 00 00 05 0A Confort
08 80 EB 3D 81 03 38 01 F8 03 23 01 45 04 F6 04 F6 01 AD 00 00 00 00 00 00 00 00 18 00 00 09 01 5E 00 00 00 00 00 00 00 00 00 00 01 11 04 F6 04 F6 00 C6 00 C6 00 C6 00 32 00 00 00 00 05 0A Réduit
08 80 EB 66 81 03 38 01 FD 03 09 01 3A 04 F6 04 F6 01 AD 00 00 00 00 00 00 00 00 18 00 00 09 01 63 00 00 00 00 00 00 00 00 00 00 01 14 04 F6 04 F6 00 C6 00 C6 00 C6 00 32 00 00 00 00 05 0A Hors Gel

Je cherche notamment à interroger la chaudière pour savoir dans quel mode est-elle afin de mettre en place une automatisation pour allumer un seche serviette pendant les mois ou les autres radiateurs sont fermés.

  1. détecter le taux d’humidité
  2. passer la chaudière en mode confort (avec une température fixée sur 30°C)
  3. attendre 30 minutes
  4. rebasculer en hors gel.
  5. vérifier que l’on est bien en hors gel.

Et d’ailleurs une autre question est-il possible de mettre à jour le satellite ? Quand j’envoie un changement à la chaudière via le heltec, le satellite n’est pas mis à jour.

Merci

Bonjour à tous,

Je cherche a simuler un frisquet connect via un heltec pour récupérer les informations et faire des modifications de consigne à distance. Si j’en crois les différent repo git, pour le moment, ce n’est pas encore possible c’est bien ça ?
Seul le code en rust sait le faire ?

Merci

Salut,

Je ne parlerai que pour le Heltec et le code de mon git, j’avais commencé la logique d’association d’un Connect mais c’est tout.
J’aimerais bien le finir avant cet hiver, mais des premiers test qui ont été effectués par d’autre sur les trames qui ont été décodées, les consignes mettent presque 30 minutes à remonter.

1 « J'aime »

Salut,

Ca y est, les fraîcheurs arrivent et la nécessité de rallumer le chauffage se rapproche également.
J’ai maintenant ma Frisquet en place est fonctionnelle. Non compatible Frisquet Connect, je possède un satellite/thermostat.

J’ai fais l’acquisition d’une Heltec Lora v3 et après quelques galère pour la flasher avec VSC et PlatformIO j’ai réussi à voir quelque chose de fonctionnel.
Parti sur le code du Git de @Burn la sonde extérieur virtuelle fonction ! Appairage réussi du premier coup.

Dans la finalité je souhaiterai pouvoir à minima définir le mode et la température de consigne (se faire passer pour un satellite donc) depuis HA. Se passer du satellite pour le virtualiser complètement serait pas mal (même sans la partie programme qui du coup n’est pas vraiment utile).

Je ne suis pas dev malheureusement, mais à lire et relire ton code, j’en comprend au moins la logique. J’ai commencé a étudier les trames qui passe dans le playload pour comprendre ce qui s’échange entre mon satellite et la chaudière.

Je suis prêt à faire des tests en tout genre pour faire avancer ce projet en tout cas !

1 « J'aime »

@mgre as-tu progressé avec ton projet de gérer toi même les horaires de production d’eau chaude? J’ai le même besoin.

Hello,

Bon j’avance doucement dans la compréhension de tout ça. Je suis loin d’être à votre niveau :smile:

Pour info la version de la commande chaudière est en v15.02.00 chez moi (pas toute jeune) et mon satellite est un TH947 v14.01.01. De ce fait j’ai peut-être moins de trames possible que pour des version plus récente.

Je me suis d’abord intéressé à lister tout les codage des modes de chauffe.
Premier constat, en mode auto, le satellite envoi simplement « Mode Confort » ou « Mode Réduit » en fonction de la programmation qui est configurée.

Byte 21 de la trame 23 (Satellite à Chaudière) Mode détail
0x00 Mode Réduit (identique en mode Auto mode réduit)
0x01 Mode Confort (identique en mode Auto mode confort)
0x10 Mode Hors-gel
0x03 Mode Auto sur programme Réduit avec dérogation Présence consigne de température transmise = Tcons Mode Confort
0x02 Mode Auto sur programme Confort avec dérogation Absence consigne de température transmise = Tcons Mode Réduit

Je n’ai pas trouvé d’autre mode et à mon sens cela suffit largement pour automatiser les modes de chauffage et consigne de température via HA.

voici les trames complètes

Résumé

RECEIVED [23] : 80 08 77 94 01 17 A0 29 00 15 A0 2F 00 04 08 00 CF 00 C8 00 01 00 00 , #mode Confort consigne 20°

RECEIVED [23] : 80 08 77 70 01 17 A0 29 00 15 A0 2F 00 04 08 00 CF 00 AA 00 00 00 00 , #mode reduit (nuit) consigne 17°

RECEIVED [23] : 80 08 77 78 01 17 A0 29 00 15 A0 2F 00 04 08 00 CE 00 32 00 10 00 00 , #mode hors-gel consigne 5°

RECEIVED [23] : 80 08 77 A4 01 17 A0 29 00 15 A0 2F 00 04 08 00 CF 00 C8 00 01 00 00 , #mode Auto (programme confort) consigne 20°

RECEIVED [49] : 08 80 77 A4 81 17 2A 00 9A 00 00 24 09 30 19 20 43 00 01 00 CF 00 C8 00 01 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 , #Réponse

RECEIVED [23] : 80 08 77 9C 01 17 A0 29 00 15 A0 2F 00 04 08 00 CF 00 AA 00 02 00 00 , #mode Auto (programme confort) dérogation sortie consigne 17°

RECEIVED [49] : 08 80 77 9C 81 17 2A 00 9A 00 00 24 09 30 19 18 37 00 01 00 CF 00 AA 00 02 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 , #Réponse

RECEIVED [23] : 80 08 77 BC 01 17 A0 29 00 15 A0 2F 00 04 08 00 CE 00 AA 00 00 00 00, #mode Auto (programme réduit) consigne 17°

RECEIVED [49] : 08 80 77 BC 81 17 2A 00 94 00 00 24 09 30 19 40 13 00 01 00 CE 00 AA 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 , #Réponse

RECEIVED [23] : 80 08 77 B2 01 17 A0 29 00 15 A0 2F 00 04 08 00 D1 00 C8 00 03 00 00, #mode Auto (programme réduit) dérogation présence consigne 20°

RECEIVED [49] : 08 80 77 B2 81 17 2A 00 94 00 00 24 09 30 19 40 15 25 01 00 D1 00 C8 00 03 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 , #Réponse

La touche « i » du stellite qui permet d’afficher la température intérieur et extérieur si la sonde est présente génère une trame 17 à laquelle la chaudière répond direct (pratique en cas de redémarrage de l’ESP par exemple pour récupérer tous les états qui nous intéresse.

Résumé

RECEIVED [17] : 80 08 77 88 01 17 A0 29 00 15 A0 2F 00 01 02 00 CF , #demande info température (i) depuis le satellite

RECEIVED [49] : 08 80 77 88 81 17 2A 00 9A 00 00 24 09 30 19 07 52 00 01 00 CF 00 32 00 10 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 , #Réponse demande d’info satellite

Et enfin, à l’allumage du satellite voici ce qui se « trame » :laughing:

Résumé

RECEIVED [17] : 80 08 77 00 01 17 A0 29 00 15 A0 2F 00 01 02 00 D0

RECEIVED [49] : 08 80 77 00 81 17 2A 00 94 00 00 24 09 30 20 18 48 00 01 00 D0 00 C8 00 01 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00

RECEIVED [17] : 80 08 77 01 01 17 A0 29 00 15 A0 2F 00 01 02 00 D0

RECEIVED [49] : 08 80 77 01 81 17 2A 00 94 00 00 24 09 30 20 18 52 00 01 00 D0 00 C8 00 01 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00

RECEIVED [17] : 80 08 77 02 01 17 A0 29 00 15 A0 2F 00 01 02 00 D0

RECEIVED [49] : 08 80 77 02 81 17 2A 00 94 00 00 24 09 30 20 18 56 00 01 00 D0 00 C8 00 01 00 00 00 00 04 F6 00 00 00 00 00 00 00 00 04 F6 00 00 00 00 00 00 00 00

RECEIVED [ 8] : 80 08 77 04 01 43 00 00

RECEIVED [ 6] : 08 80 77 04 81 43

RECEIVED [23] : 80 08 77 08 01 17 A0 29 00 15 A0 2F 00 04 08 00 D0 00 C8 00 01 00 00

Maintenant que j’y vois un peu plus clair, je vais tenter d’étoffer petit à petit le code de @Burn en commençant simple : ajouter la récupération du mode de chauffe en cours car c’est quasiment prêt.
J’ai jamais vraiment fait de C mais j’arrive à lire entre les lignes, ça va être long mais rien d’impossible quand on est motivé :muscle:

2 « J'aime »

Salut @Spanky,

Je n’avais jamais codé en C également, mais avec un peu de patience, l’aide de la communauté (et l’aide de mon copain GPT :smiley: ) on fini par s’en sortir.

Pour ma part je vais tenter de reprendre le sujet et faire quelque test d’association (fictive) d’un Frisquet Connect, et envoyer des modes de chauffe.
Le top serait également de pouvoir récupérer la conso de gaz.
que la force soit avec toi !

1 « J'aime »

Pour le coup, je ne pourrais pas aider elle ne gère pas le connect. Maintenant est-ce que on requêtant des adresses de la chaudière je pourrai récupérer des info comme la température départ et CDC… a tester.

Il faudra aussi implémenter l’association du satellite mais j’ai pas vraiment compris comment ça marché ça (en lisant le code de l’asso sonde).

Je me dis qu’il faut aussi rajouter la possibilité de balancer des trames depuis la com’ série pour pouvoir tester facilement des choses.

De mémoire, seule la fonction connect permet de récupérer des informations de la chaudière.

Pour récupérer les informations qui circulent sur la radio (comme la température de la pièce, le mode de chauffe, etc), tu peux simplement écouter passivement la radio et décoder les trames qui circulent.

Par exemple, j’avais commencé par un filtre sur rtl_433 avec un SDR.

Une autre idée pour se passer de connect serait de faire une sorte de module qui serait un intermédiaire entre les satellites et la chaudière et retraiter les ordres, mais il faut être certain que ce module ne se déconnecte pas.

Pour info, @0xd33d33 a fait une version Serie ↔ RF et j’avais fait une version MQTT - RF

Salut !
je viens de découvrir le sujet.
De ce que je comprends, il serait possible d’ajouter une zone de température intérieure à la chaudière?

Je n’ai qu’un visio dans le salon mais dans la chambre il fait toujours plus froid.
Donc je cherche à ajouter une zone de température à la chaudière pour qu’elle continue de chauffer si la chambre n’est pas arrivée à une consigne (j’ai un capteur xiaomi relié à HA dans la chambre)

De ce que je comprend de la documentation Frisquet, si tu as un second satellite, il faut un second circulateur ou le module hydraulique que la chaudière pilote. Je ne sais pas ce que ça donne sans si elle continue a faire fonctionner son circulateur.

1 « J'aime »

De souvenir quand j’ai parcouru la doc la chaudière peux fonctionner sans satellite si une sonde externe est présente.

Salut,

Cela ne fonctionne pas comme cela.
soit tu déplace ton satellite dans la chambre mais j’imagine que tu l’as déjà envisagé, soit tu joue avec tes robinets thermostatiques afin que la pièce la plus chaude chauffe moins vite que la plus froide.

Je viens de me poser une question concernant le codage de la température…
On sait comment ça fonctionne pour les températures négative ?

Car pour moi la température est coder sur 2 bytes, mais uniquement la température, pas le signe + ou -. Sinon passé 25.5°C on ne sait plus coder la température vu que ça nous donne 0xFF.

Et je pense que les gars chez Frisquet on quand même pensaient à ça ^^

Si personne n’a la réponse, je fou mon satellite au congélo (en espérant que ça capte encore) voir ce qui se passe. (Edit : remarque il on peut-être pas prévu qu’il fasse une temp négative pour le satellite, mais pour la sonde, y’a forcément un truc)

Edit 2: j’ai rien dit, je viens de retrouver l’explication, c’est du complément à deux donc valeur de -32768 à +32767

Je comprends vite mais il faut m’expliquer longtemps ^^

1 « J'aime »