Domotisation Frisquet Prestige Condensation Eco Radio System

J’ai donc mis à jour Github avec le code de @ParkerLewis.

Pour aller plus loin et utiliser la capacité de condensation de la chaudière, j’ai fait un wiki qui explique comment utilise un algorithme PID avec le plugin Thermostat de Jeedom :

Merci @ChristopheHD !

Bon, pour l’instant j’ai essayé de faire le malin et d’utiliser le plugin « Thermostat Chaudière », résultat = 12 °C ce matin dans la maison…

En fait la chaudière doit recevoir « regulièrement » une consigne, sinon elle se met en erreur…
ET tu le dis bien en creux dans ton tuto :slight_smile:

Et comme ce plugin « spécial chaudière » ne permet pas a priori de le faire, je vais me rabattre comme tu le conseilles sur le plugin officiel qui a l’air de gérer ca :+1:

@ngrataloup et @ChristopheHD je me pose une petite question…

Dans le Wiki, @ChristopheHD dit qu’il faut créer un (seul) thermostat.

Chez moi, j’ai 14 radiateurs dans 11 zones (chambres, salle de bain, cuisine,…), tous avec des têtes thermostatiques domotisées (Shelly TRV pour info).

Le problème que j’ai est que je voudrais chauffer chaque pièce selon son propre agenda, et que la chaudière se déclenche quand il y en a besoin (qu’une zone à besoin d’être chauffée, quoi)… J’ai donc créé 11 thermostats (un par zone) avec les consignes que tu as donné dans le Wiki.

Qu’est ce que vous en pensez ? Ca peut marcher ?

Petite remarque en passant, @ChristopheHD la commande que tu proposes dans ton tuto pour trouver le dev/ttyxxxx (lsusb -l), ne marche pas chez moi.
A voir si tu veux mettre ce code qui, lui, marche sans problèmes :

#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
    (
        syspath="${sysdevpath%/dev}"
        devname="$(udevadm info -q name -p $syspath)"
        [[ "$devname" == "bus/"* ]] && exit
        eval "$(udevadm info -q property --export -p $syspath)"
        [[ -z "$ID_SERIAL" ]] && exit
        echo "/dev/$devname - $ID_SERIAL"
    )
done

Sinon, j’ai dans un premier temps, et à des fins de test pas à pas, simplifié ton script ERS.py sur Jeedom.

Mais alors que ca marche bien depuis mon PC avec Arduino IDE, quand je me branche sur mon RaspBerry PI avec jeedom la chaudière ne réagit pas (j’ai bien les diodes du RXLink qui clignotent (visiblement il y a bien quelque chose d’envoyé)).

Dans Arduino IDE je passe « ERS 3 0 » et ma chaudière s’arrète.
Sur Jeedom, rien ne se passe (a part les diodes qui clignotes sur RFLink) quand je passe ca via le plugin Script ou même en direct via un accès terminal :

import sys
import time
import serial

command = "ERS 3 0\n\r"

arduino = serial.Serial(port="/dev/ttyACM0", baudrate=57600, timeout=1, writeTimeout=1)
time.sleep(1)
arduino.write(command.encode('utf-8'))
arduino.close()

Auriez vous une idée ?

Ca me parait compliqué à gerer. Quel thermostat eteindra ou allumera ta chaudière ?
Pour ma part, je n’ai pas adopté la même méthode que @ChristopheHD.
1 - pour savoir si je démarre la chaudière, je fait la moyenne des positions d’ouverture des vannes. si la moyenne est >= 5% je démarre la chaudière, sinon, je la laisse éteinte.
2 - pour calculer la temperature de l’eau, j’utilise une loi d’eau :

T° eau = 1.5 x (T° intérieure demandée - T° extérieure) + 23

(T° interieure demandée = consigne d’un pièce reference - salon ou cuisine)

Ensuite, cette loi est à ajuster suivant abaque suivant :

cf : Comment régler / optimiser une courbe de chauffe | ELYOTHERM

Tu sais ainsi :

  • via les pourcentages d’ouverture si il y a une demande d’eau chaude
  • via la temp de consigne et la temp exterieure, la température de l’eau à fournir

Pour l’envoi de la température d’eau, mon script :

#!/usr/bin/env python3
# argv[1] is the mode  : 0->Eco, 3->Confort, 4->Hors gel
# argv[2] is the temperature we want

import sys
import time
import serial

mode = sys.argv[1]

temperature = int(sys.argv[2])

command = "ERS " + str(int(mode)) + " " + str(int(temperature)) + "\n"

arduino = serial.Serial(port="/dev/ttyACM1", baudrate=57600, timeout=.1)
time.sleep(2)
arduino.write(command.encode('utf-8'))
time.sleep(1)
loglign = arduino.readline().decode('utf-8')
arduino.close()

print(loglign)

PS : attention,script modifié chez moi. la chaine command n’est peut etre pas identique chez toi
PS: je recupere la temp eau en retour que je mets dans une commande … Ainsi, si la commande n’a pas eu de MAJ depuis X min, je sais qu’il y a un souci d’envoi de la consigne

Norbert

2 « J'aime »

Ce qui va se passer c’est que tes 11 thermostats vont envoyer des consignes différentes à la chaudière et elle va donc faire n’importe quoi. J’avais réfléchi à ce cas sans jamais penser à l’action : l’idée est de récupérer tous les valeurs de puissances des 11 thermostats et d’appliquer un coefficient ou une moyenne pour trouver une valeur à envoyer à la chaudière. Il faut donc un script centralisateur des 11 thermostats qui va appeler la chaudière en fonction de la puissance calculée par ces 11 thermostats.

Je suis en train de l’intégrer dans le github.

1 « J'aime »

Merci pour vos retours @ngrataloup et @ChristopheHD , je vais me plonger dans tout cela, ces posts sont passionnants et je vais apprendre plein de nouvelles choses !

Je suis à fond dans vos posts qui sont absolument passionnants.

Une petite question, a quoi sert vraiment le mode (eco, hors gel, confort)… J’ai pas l’impression que ca change grand chose si l’on passe « ERS 3 0 » ou « ERS 4 0 » …

@ngrataloup , je suis en train de tester de faire la même chose que toi, avec une loi d’eau.

J’ai fait un thermostat par pièce.

A chaque changement de puissance de l’un des 11 thermostats, je lance un script qui trouve le thermostat qui a la puissance la plus élévé (celui qui a besoin de « tirer le plus ») et je prends sa température de consigne pour la loi d’eau.
Je me posais la question de faire une moyenne mais si j’ai 5 radiateurs qui tirent à 5% et un qui a besoin à 100%, je pense que je perds en efficacité…

Vous avez un avis ?

Ouverture des vannes thermostatiques :

  • Pour l’instant je suis parti sur ca : A chaque changement de puissance au niveau du thermostat, je passe la puissance du thermostat à la vanne du radiateur de la pièce (thermostat à 100% de puissance => vanne ouverte à 100%, Thermostat à 37% de puissance => vanne ouverte à 37%)
    Pensez vous que c’est une bonne idée où que je ferais mieux de partir sur du tout ou rien (puissance à 0 : vanne fermée, puissance >0 : vanne ouverte à 100%
    ?

@ngrataloup, merci pour ton script, effectivement récupérer la température est intéressant. seul problème, je récupère la première ligne du message (##### Réception d’une commande #####). J’imagine que tu as modifié le programme de @ChristopheHD pour que ca ne te retourne que la température ?

Je te conseille vraiment de laisser tes vannes thermostatiques faire leur boulot. Tu envoies juste la consigne souhaitée. Elles s’ouvrent où se ferment en fonction de leur algorithme. Et tu récupères juste le % d’ouverture pour savoir si il y a une demande

Toi, tu ne joues que sur la température de l’eau en sortie de chaudière.
J’ai voulu faire comme toi au début … Le résultat est catastrophique

Norbert

J’ai voulu faire comme toi au début … Le résultat est catastrophique

Merci pour ton feedback précieux.
Bon, je me suis bien amusé, mais du coup je vais tout défaire :smiley:

Et pour ta question sur les modes, … Aucune idée, je pense que les modes sont juste en info (ces 3 modes existent sur la télécommande, mais tu leur associes une consigne)

Ma théorie sur les modes est la suivante : Frisquet a récupéré le protocole sans-fil de Vaillant mais n’a jamais implémenté les modes dans le calculateur de la chaudière.

Salut
J’ai suivi les instructions de cette page mais avant d’envoyer des ordres à la chaudière, je voulais voir un peu ce qu’emettait réellement le thermostat fourni par frisquet.
J’ai donc utilisé le script qui permet de récupérer l’id de la chaudiere et je l’ai laissé tourner toute la journée, et je remarque 2 choses, peut etre importante. La première est que les messages sont envoyés 2 fois à 30 secondes d’interval.
La seconde c’est qu’il y a des messages en plus que ceux réglant la température de l’eau. Ceux pilotant la temperature de l’eau sont les messages 0, 1 et 2 envoyé toutes les 10 minutes par le thermostat. Mais en plus toutes les heures il envoie des messages numéroté 224, 225, 226, (à l’heure pile) si on les décodes avec le décodage des messages 0,1,2, ca donne un peu n’importe quoi comme température d’eau (ca semble compter les heures au début, puis il y a des sauts) donc je pense qu’il n’ont pas la meme signification.
Quelqu’un a t-il vu ces messages? Sont-ils important pour le pilotage de la chaudiere ?
merci

Je tourne depuis 2 ans comme ca, pas de souci. Je ne génère aucun message 224,225 ou 226 et je n’envoie qu’un message « température » au lieu des 2.

Norbert

Je n’avais pas remarqué ces messages. Je ne pense pas qu’ils soient important car, comme ngrataloup, cela fait 2 ans que cela tourne chez moi sans ces messages.

Merci pour le partage mais ce fil de discussion concerne les chaudières Frisquet non Visio. Il existe 2 systèmes de chaudières Frisquet : Eco Radio System et Eco Radio System Visio. Ce fil de discussion concerne les Eco Radio System.

1 « J'aime »

Bonjour à tous
… Je viens de découvrir l’usge du mode (0,3 ou 4) envoyé dans la trame (enfin je pense)
J’ai changé ma gestion des modes de chauffage, et oublié de modifier cela dans le script de communication avec la chaudière … Résultat, c’est toujours le mode 3 confort qui était envoyé avec une température allant de 0 (aucune demande de chauffe) à 50°C
J’ai en parallèle mis des capteurs de température sur les tuyaux de départ et retour
Résultat : en mode 3 (Confort), la température de l’eau en départ ne descend pas en dessous de 33-34°C (envoi d’un consigne de température à 0). Dès que je modifie et que je rebascule en mode 0 (Eco), elle descend à 20°C (température ambiante)

J’en déduis donc qu’en mode confort, il y a seuil minimum de température de l’eau qu’il n’y a pas en mode eco. Sans doute pour avoir une réactivité plus importante à la moindre demande de chauffe sur un radiateur.

Je suis preneur de vos constats aussi

Norbert

Bonjour à tous,
Extraordinaire cette conversation et impressionnant le travail réalisé !
Grand merci à @ChristopheHD, @ParkerLewis et @ngrataloup !

Ma config :

  • Jeedom :
    • Jeedom 4.3.21 sur Rapsberry PI
    • Plugin Thermostat pour chacune des pièces à piloter.
    • Kit « Frisquet-Arduino » de Christophe (scripts, RFLink 433.42 Mhz hardware de NODO shop)
    • Capteur de temp Aqara Xiaomi dans chaque pièce
  • Matériel Chauffage
    • Chaudière Frisquet Hydromotix 23KW installée en 2002:
    • 1er circuit plancher chauffant au rdc,
    • 2nd circuit chauffage du 1er étage (3 chambres) et d’un bâtiment annexe (1 pièce)
      3 têtes thermostatiques MOES à l’étage, 1 tête Aqara dans la pièce du bâtiment annexe
      Salle de bain à l’étage avec tête du radiateur toujours ouverte
      Commande Eco Radio System pour ce circuit, de 2002 comme la chaudière
    • ballon d’eau chaude ECS

J’ai mis en place la solution de Christophe, ça a mis un peu de temps et la mécanique fonctionne :grinning::

  • la consigne des têtes est synchro avec la consigne des thermostats jeedom.
    un scénario s’assure que l’ouverture des têtes MOES est cohérente avec la puissance calculée par les thermo jeedom,
    la temp de la tête aqara est external, utilise la capteur Xiaomi de la pièce
  • un scénario récupère les puissances des thermostats jeedom et conserve la plus élevée => appel au script ERS.py avec temperature = 20+0.7puissance.*
    la commande est envoyée à la chaudière, j’ai un 2nd RFLink qui me montre bien les trames envoyées.

Mon souci :thinking:: la chaudière « tarde » à démarrer, la partie jeedom semble très bien fonctionner, mais la régulation ne semble pas au top.
J’ai posé une sonde température sur la sortie de la chaudière et un capteur sur l’entrée du circulateur.

Si je pilote avec l’ERS, ça donne quelque chose comme ça pour la journée du 19 janvier 2024 :
commandes radio envoyées à la chaudière (capturées sur le 2nd RFLINK)

Toutes les heures, une commande avec une température plus basse en envoyée.
Comme indiqué dans le msg de @gabriel79, j’ai aussi

Temp en sortie de la chaudière et circulateur :


En vert la temp, en jaune le circulateur. Il ne semble fonctionner que lorsque la temp est > 50° environ.
Entre 10h et 14h, commande entre 30 et 40, le circulateur ne fonctionne pas. Est-ce que cela veut pas de chauffage à ce moment là ?
Avez vous une idée du pourquoi des commandes « basse » toutes les heures ? Quel effet sur la chaudière ?
Votre avis ?

Je vais faire les mêmes mesures en mode pilotage par jeedom.
Hâte de vous lire. :slightly_smiling_face:
Didier

Je n’ai pas de RFLink pour contrôler mes traces, mais la puissance de mes thermostats ne passe pas à 0 toutes les heures. Tu as a mis quelle période de calcul ? Tu as bien coché la case « PID » dans la configuration avancée du thermostat ? Est-ce que ça ne serait pas un défaut de ton scénario qui récupère la valeur la plus haute ?

Christophe,

Les graphes sont ceux de la chaudière pilotée par le boitier ERS.

Depuis, j’ai coupé le boitier ERS et rebasculé sur les thermostats jeedom. Pour mes thermostats :

  • cron : toutes les 10 mn
  • durée du cycle : 15 mn
  • tps de chauffe min : 5
  • limiter les cycles marche/arrêt et PID : coché
  • mode apprentissage

Ca se passe plutôt bien. J’attend quelques jours et je posterai les traces.
Didier