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 :
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
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
@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 :
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
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.
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 :
@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
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.
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 :
J’ai mis en place la solution de Christophe, ça a mis un peu de temps et la mécanique fonctionne :
Mon souci : 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 :
Je vais faire les mêmes mesures en mode pilotage par jeedom.
Hâte de vous lire.
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 :
Ca se passe plutôt bien. J’attend quelques jours et je posterai les traces.
Didier