L'auto-régulation
- L'auto-régulation
Vous avez la possibilité d'activer la fonction d'auto-régulation pour les VTherm de type over_climate uniquement.
Il y a globalement 2 cas :
- Si votre sous-jacent est un TRV et que la vanne est commandable directement dans Home Assistant (Sonoff TRVZB par exemple), cette fonction va autoriser VTherm a manipuler directement l'ouverture de la vanne pour effectuer la régulation. L'ouverture est alors calculé par un algorithme de type TPI (cf. ici).
- Sinon, Versatile Thermostat va adapter la consigne de température donnée au climate sous-jacent afin que la température de la pièce atteigne réellement la consigne.
Configuration
auto-régulation par contrôle direct de la vanne
Ce type d'auto-régulation nommé Controle direct de la vanne nécessite :
- une entité de type
climatequi est mis dans les sous-jacents du VTherm, - une entité de type
numberqui permet de contrôle du taux d'ouverture de la vanne du TRV, - une entité facultative de type
numberpermettant le contrôle de la fermeture de la vanne
Lorsque l'auto-régulation choisie est Contrôle direct de la vanne sur un VTherm over_climate alors une nouvelle page de configuration nommée Configuration de la régulation par vanne apparait :

Elle permet de configurer les entités de contrôle de la vanne :

Vous devez donner :
- autant d'entités de contrôle d'ouverture de la vanne qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont obligatoires,
- autant d'entités de contrôle du taux de fermeture qu'il y a de sous-jacents et dans le même ordre. Ces paramètres sont facultatifs ; ils doivent être tous fournis ou aucun,
opening_threshold: l'ouverture minimale de la vanne en dessous de laquelle la vanne doit être considérée comme fermée, et par conséquent, le paramètre 'max_closing_degree' s'applique,max_closing_degree: le pourcentage de fermeture maximum absolu. La vanne ne se fermera jamais plus que ce qui est indiqué dans cette valeur. Si vous voulez autoriser la fermeture complète de la vanne, alors laissez ce paramètre sur 100,minimum_opening_degrees: le pourcentage d'ouverture minimal lorsque leopening_thresholdest dépassé et que le VTherm doit chauffer. Ce champ est personnalisable par vanne dans le cas d'un VTherm avec plusieurs vannes. Vous spécifiez la liste des ouvertures minimales séparées par des ','. La valeur par défaut est 0. Exemple : '20, 25, 30'. Lorsque la chauffe démarre (ie l'ouverture demandée est supérieure àopening_threshold), la vanne s'ouvrira avec une valeur supérieure ou égale à celle-ci et continuera d'augmenter régulièrement si nécessaire.max_opening_degrees: le pourcentage d'ouverture maximal que la vanne peut atteindre. Ce champ est personnalisable par vanne dans le cas d'un VTherm avec plusieurs vannes. Vous spécifiez la liste des ouvertures maximales séparées par des ','. La valeur par défaut est 100 (ouverture complète). Exemple : '80, 85, 90'. La vanne ne s'ouvrira jamais au-delà de cette valeur, permettant ainsi de limiter le débit d'eau chaude et d'optimiser la consommation énergétique. Cette valeur doit être strictement supérieure àminimum_opening_degreespour chaque vanne.
L'algorithme de calcul du taux d'ouverture est basé sur le TPI qui est décrit ici. C'est le même algorithme qui est utilisé pour les VTherm over_switch et over_valve.
Si une entité de type taux de fermeture de la vanne est configurée, il sera positionné à la valeur 100 - taux d'ouverture pour forcer la vanne dans un état sinon elle est positionnée à 100.
Notes
- l'attribut
hvac_actiondes TRV Sonoff TRVZB est capricieux. Si la température interne du TRV est trop en décalage par rapport à la température de la pièce, l'entitéclimatepeut indiquer que le TRV ne chauffe pas alors que la vanne est forcée en ouverture par VTherm. Ce défaut n'a pas de conséquences puisque l'entitéclimatedu VTherm est corrigée et tient compte de l'ouverture de la vanne pour valoriser son attributhvac_action. Ce défaut est minimisé mais pas totalement annulé par la configuration du calibrage du décalage.- l'attribut du VTherm
valve_open_percentpeut ne pas être égale à la valeur de 'opening degree' envoyé à la vanne. Si vous utilisez un des quatre paramètresopening_threshold,max_closing_degree,minimum_opening_degreesoumax_opening_degrees, un ajustement est fait. L'attribut personnalisévalve_open_percentest alors la valeur brute calculée par VTherm. La valeuropening degreeenvoyée à la vanne peut être adaptée.- certains équipements ont des valeurs qui ne vont pas forcément de 0 à 100. VTherm s'adapte automatiquement aux plages autorisées pour votre équipement.
- Si vous utilisez le paramètre de régulation
regulation_threshold(cf. over_climate régulation), alors leopening_thresholdsera ajusté pour qu'il ne soit jamais en dessous de cette valeur. En effet, leregulation_thresholdest l'unité de régulation en dessous de laquelle la consigne n'est pas envoyée. Mettre unopening_thresholdn'aurait aucun effet.- Un VTherm est considéré comme actif si
opening_thresholdest dépassé. Par conséquent, si le VTherm commande une chaudière centrale, elle se sera pas allumée en dessous de cette valeur.
Comment régler correctement les paramètres qui contrôlent l'ouverture ?
Note : une visualisation graphique des impacts des paramètres de réglage de l'ouverture de la vanne est disponible ici. Un grand merci à @nicklassim80 pour cette contribution.
Les 4 paramètres de réglage de l'ouverture de la vanne permettent un réglage fin du comportement de la vanne notamment au début du cycle de chauffe. Si on représente l'ouverture demandée par l'algorithme TPI en abscisse et l'ouverture réellement envoyée sur la vanne en ordonnée, on obtient cette courbe :
<img src="../../images/opening-degree-graph.png" alt="réglage des paramètres d'ouverture" width="600">Cas 1 : vous avez une zone morte de 15% sur votre vanne (les 15 premiers % ne permettent pas à l'eau chaude de circuler)
Les réglages peuvent alors être :
minimum_opening_degrees: 15. Dès que la chauffe est nécessaire il faut chauffer d'au moins 15%,max_closing_degree: la valeur par défaut (100) pour permettre une fermeture totale,opening_threshold: la valeur par défaut (0) pour déclencher la chauffe dès que c'est nécessairemax_opening_degrees: la valeur par défaut (100) pour permettre une ouverture totale de la vanne.
Vous avez alors la courbe suivante :
<img src="../../images/opening-degree-default-1.png" alt="réglage des paramètres d'ouverture" width="400">ou si vous n'avez pas défini de regulation_threshold :
Cas 2 : vous ne voulez jamais totalement fermer totalement la vanne ni l'ouvrir totalement
Ce cas permet de traiter les bruits parasites lors d'une fermeture complète ou une sécurité pour toujours laisser un peu d'eau circuler et éviter d'endommager le circulateur. Les réglages peuvent alors être les suivants :
minimum_opening_degrees: 10 pour chauffer d'au moins 10% lorsqu'une chauffe est nécessaire,max_closing_degree: 90 pour laisser toujours au moins 10% d'ouverture,opening_threshold: 10 pour considérer que les premiers 10% ne chauffent pas. Le TRV est alors en modeIdlemax_opening_degrees: 50 pour limiter l'ouverture de la vanne à 50%.
Vous avez alors la courbe suivante :
<img src="../../images/opening-degree-default-3.png" alt="réglage des paramètres d'ouverture" width="400">autres auto-régulation
Dans ce deuxième cas, le Versatile Thermostat calcule un décalage basé sur les informations suivantes :
- la différence actuelle entre la température réelle et la température de consigne, appelé erreur brute,
- l'accumulation des erreurs passées,
- la différence entre la température extérieure et la consigne
Ces trois informations sont combinées pour calculer le décalage qui sera ajouté à la consigne courante et envoyé au climate sous-jacent.
La fonction d'auto-régulation se paramètre avec :
- une degré de régulation :
- Légère - pour des faibles besoins en auto-régulation. Dans ce mode, le décalage maximal sera de 1,5°,
- Medium - pour une auto-régulation moyenne. Un décalage maximal de 2° est possible dans ce mode,
- Forte - pour un fort besoin d'auto-régulation. Le décalage maximal est de 3° dans ce mode et l'auto-régulation réagira fortement aux changements de température.
- Un seuil d'auto-régulation : valeur en dessous de laquelle une nouvelle régulation ne sera pas appliquée. Imaginons qu'à un instant t, le décalage soit de 2°. Si au prochain calcul, le décalage est de 2.4°, il ne sera pas appliqué. Il ne sera appliqué que si la différence entre 2 décalages est au moins égal à ce seuil,
- Période minimale entre 2 auto-régulation : ce nombre, exprimé en minute, indique la durée entre 2 changements de régulation.
Ces trois paramètres permettent de moduler la régulation et éviter de multiplier les envois de régulation. Certains équipements comme les TRV, les chaudières n'aiment pas qu'on change la consigne de température trop souvent.
Conseil de mise en place
- Ne démarrez pas tout de suite l'auto-régulation. Regardez comment se passe la régulation naturelle de votre équipement. Si vous constatez que la température de consigne n'est pas atteinte ou qu'elle met trop de temps à être atteinte, démarrez la régulation,
- D'abord commencez par une légère auto-régulation et gardez les deux paramètres avec leur valeurs par défaut. Attendez quelques jours et vérifiez si la situation s'est améliorée,
- Si ce n'est pas suffisant, passez en auto-régulation Medium, attendez une stabilisation,
- Si ce n'est toujours pas suffisant, passez en auto-régulation Forte,
- Si ce n'est toujours pas bon, il faudra passer en mode expert pour pouvoir régler les paramètres de régulation de façon fine. Voir en-dessous
L'auto-régulation consiste à forcer l'équipement à aller plus loin en lui forçant sa température de consigne régulièrement. Sa consommation peut donc être augmentée, ainsi que son usure.
L'auto-régulation en mode Expert
En mode Expert pouvez régler finement les paramètres de l'auto-régulation pour atteindre vos objectifs et optimiser au mieux. L'algorithme calcule l'écart entre la consigne et la température réelle de la pièce. Cet écart est appelé erreur. Les paramètres réglables sont les suivants :
kp: le facteur appliqué à l'erreur brute,ki: le facteur appliqué à l'accumulation des erreurs,k_ext: le facteur appliqué à la différence entre la température intérieure et la température externe,offset_max: le maximum de correction (offset) que la régulation peut appliquer,accumulated_error_threshold: le maximum pour l'accumulation d'erreur.overheat_protection: si activé, divise l'accumulation d'erreur par 2 en cas d'inversion de signe.
Pour le tuning il faut tenir compte de ces observations :
kp * erreurva donner l'offset lié à l'erreur brute. Cet offset est directement proportionnel à l'erreur et sera à 0 lorsque la target sera atteinte,- l'accumulation de l'erreur permet de corriger le stabilisation de la courbe alors qu'il reste une erreur. L'erreur s'accumule et l'offset augmente donc progressivement ce qui devrait finir par stabiliser sur la température cible. Pour que ce paramètre fondamental ait un effet il faut qu'il ne soit pas trop petit. Une valeur moyenne est 30
ki * accumulated_error_thresholdva donner l'offset maximal lié à l'accumulation de l'erreur,k_extpermet d'appliquer tout de suite (sans attendre une accumulation des erreurs) une correction lorsque la température extérieure est très différente de la température cible. Si la stabilisation se fait trop haut lorsque les écarts de température sont importants, c'est que ce paramètre est trop fort. Il devrait pouvoir être annulé totalement pour laisser faire les 2 premiers offset
Les valeurs préprogrammées sont les suivantes :
Slow régulation :
kp: 0.2 # 20% of the current internal regulation offset are caused by the current difference of target temperature and room temperature
ki: 0.8 / 288.0 # 80% of the current internal regulation offset are caused by the average offset of the past 24 hours
k_ext: 1.0 / 25.0 # this will add 1°C to the offset when it's 25°C colder outdoor than indoor
offset_max: 2.0 # limit to a final offset of -2°C to +2°C
accumulated_error_threshold: 2.0 * 288 # this allows up to 2°C long term offset in both directions
Light régulation :
kp: 0.2
ki: 0.05
k_ext: 0.05
offset_max: 1.5
accumulated_error_threshold: 10
overheat_protection: true
Medium régulation :
kp: 0.3
ki: 0.05
k_ext: 0.1
offset_max: 2
accumulated_error_threshold: 20
overheat_protection: true
Strong régulation :
"""Strong parameters for regulation
A set of parameters which doesn't take into account the external temp
and concentrate to internal temp error + accumulated error.
This should work for cold external conditions which else generates
high external_offset"""
kp: 0.4
ki: 0.08
k_ext: 0.0
offset_max: 5
accumulated_error_threshold: 50
overheat_protection: true
Pour utiliser le mode Expert il vous faut déclarer les valeurs que vous souhaitez utiliser pour chacun de ces paramètres dans votre configuration.yaml sous la forme suivante. Exemple de 'Extrem regulation` :
versatile_thermostat:
auto_regulation_expert:
kp: 0.6
ki: 0.1
k_ext: 0.0
offset_max: 10
accumulated_error_threshold: 80
overheat_protection: true
et bien sur, configurer le mode auto-régulation du VTherm en mode Expert. Tous les VTherm en mode Expert utiliseront ces mêmes paramètres, il n'est pas possible d'avoir plusieurs réglages expert différent.
Pour que les modifications soient prises en compte, il faut soit relancer totalement Home Assistant soit juste l'intégration Versatile Thermostat (Outils de dev / Yaml / rechargement de la configuration / Versatile Thermostat).
Notes
- En mode expert, il est rarement nécessaire d'utiliser l'option Compenser la température interne du sous-jacent. Cela risque de générer des consignes vraiment très forte.
Synthèse de l'algorithme d'auto-régulation
Une synthèse de l'algorithme d'auto-régulation est décrite ici
Notes