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 :

  1. 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).
  2. 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 :

  1. une entité de type climate qui est mis dans les sous-jacents du VTherm,
  2. une entité de type number qui permet de contrôle du taux d'ouverture de la vanne du TRV,
  3. une entité facultative de type number permettant 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 :

Menu de configuration

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

Entités de configuration

Vous devez donner :

  1. 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,
  2. 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,
  3. 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,
  4. 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,
  5. minimum_opening_degrees : le pourcentage d'ouverture minimal lorsque le opening_threshold est 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.
  6. 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_degrees pour 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.

Attention Notes

  1. l'attribut hvac_action des 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é climate peut 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é climate du 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.
  2. l'attribut du VTherm valve_open_percent peut ne pas être égale à la valeur de 'opening degree' envoyé à la vanne. Si vous utilisez un des quatre paramètres opening_threshold, max_closing_degree, minimum_opening_degrees ou max_opening_degrees, un ajustement est fait. L'attribut personnalisé valve_open_percent est alors la valeur brute calculée par VTherm. La valeur opening degree envoyée à la vanne peut être adaptée.
  3. 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.
  4. Si vous utilisez le paramètre de régulation regulation_threshold (cf. over_climate régulation), alors le opening_threshold sera ajusté pour qu'il ne soit jamais en dessous de cette valeur. En effet, le regulation_threshold est l'unité de régulation en dessous de laquelle la consigne n'est pas envoyée. Mettre un opening_threshold n'aurait aucun effet.
  5. Un VTherm est considéré comme actif si opening_threshold est 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 :

  1. minimum_opening_degrees: 15. Dès que la chauffe est nécessaire il faut chauffer d'au moins 15%,
  2. max_closing_degree : la valeur par défaut (100) pour permettre une fermeture totale,
  3. opening_threshold : la valeur par défaut (0) pour déclencher la chauffe dès que c'est nécessaire
  4. max_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 :

<img src="../../images/opening-degree-default-2.png" alt="réglage des paramètres d'ouverture" width="400">
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 :

  1. minimum_opening_degrees: 10 pour chauffer d'au moins 10% lorsqu'une chauffe est nécessaire,
  2. max_closing_degree : 90 pour laisser toujours au moins 10% d'ouverture,
  3. opening_threshold : 10 pour considérer que les premiers 10% ne chauffent pas. Le TRV est alors en mode Idle
  4. max_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 :

  1. la différence actuelle entre la température réelle et la température de consigne, appelé erreur brute,
  2. l'accumulation des erreurs passées,
  3. 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 :

  1. une degré de régulation :
    1. Légère - pour des faibles besoins en auto-régulation. Dans ce mode, le décalage maximal sera de 1,5°,
    2. Medium - pour une auto-régulation moyenne. Un décalage maximal de 2° est possible dans ce mode,
    3. 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.
  2. 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,
  3. 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.

Astuce Conseil de mise en place

  1. 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,
  2. 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,
  3. Si ce n'est pas suffisant, passez en auto-régulation Medium, attendez une stabilisation,
  4. Si ce n'est toujours pas suffisant, passez en auto-régulation Forte,
  5. 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 :

  1. kp : le facteur appliqué à l'erreur brute,
  2. ki : le facteur appliqué à l'accumulation des erreurs,
  3. k_ext : le facteur appliqué à la différence entre la température intérieure et la température externe,
  4. offset_max : le maximum de correction (offset) que la régulation peut appliquer,
  5. accumulated_error_threshold : le maximum pour l'accumulation d'erreur.
  6. 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 :

  1. kp * erreur va donner l'offset lié à l'erreur brute. Cet offset est directement proportionnel à l'erreur et sera à 0 lorsque la target sera atteinte,
  2. 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
  3. ki * accumulated_error_threshold va donner l'offset maximal lié à l'accumulation de l'erreur,
  4. k_ext permet 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).

Astuce Notes

  1. 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