vtherm-SmartPI: un regulateur de classe industrielle pour Versatile Thermostat

Je vous presente le nouveau né, vtherm-smartPI, un plugin pour Versatile Thermostat ( >= v10.0 ).

Maintenant que VTherm permet l’externalisation de composants à travers l’api vtherm-api, on peut externaliser entre autre les algorithmes de regulations sous la forme d’integrations.

On a passé l’hiver dessus avec @gael1980, à theoriser, conceptualiser, developper, tester, paufiner, debuguer, et voilà déjà le printemps, il fait 24°, personne va pouvoir tester. :slight_smile:

Qu’est-ce que SmartPI ?

SmartPI est un algorithme de contrôle thermique avancé basé sur un modèle de premier ordre (1R1C) et une boucle Proportionelle Integrale.

Il apprend la capacité de chauffe de la pièce, le taux de perte thermique et les temps morts, puis utilise ce modèle pour calculer une commande de chauffage bien plus précise qu’un contrôleur proportionnel de type TPI.

  • Modèle thermique 1R1C : Apprend le gain de chauffe, le taux de déperdition et les temps morts de votre pièce à partir d’observations réelles — aucun réglage manuel nécessaire
  • Gains PI auto-calculés : Calcule Kp et Ki automatiquement à partir de la constante de temps et du temps mort appris, via des règles IMC et heuristiques
  • Feed-forward basé sur le modèle : Estime la puissance de maintien nécessaire au point de consigne, complétée par un biais lent et une correction prédictive optionnelle (FF3) en cas de perturbation
  • Trajectoire analytique de consigne : Façonne la référence proportionnelle avec un profil de freinage tardif pour atteindre la cible rapidement tout en évitant le dépassement
  • Gouvernance Safety-First : Une matrice par régime gèle ou déverrouille l’apprentissage et l’adaptation des gains selon le contexte opérationnel
  • Auto-calibration : Surveille la qualité du modèle et déclenche une séquence de recalibration lorsque l’apprentissage stagne
  • Linéarisation de courbe de vanne : Traduit la demande SmartPI en position de vanne adaptée au comportement non linéaire des vannes thermostatiques (TRV)
  • Diagnostics détaillés : Publie la progression de l’apprentissage, l’état du modèle et les données de régulation — consultable via une carte Markdown Home Assistant dédiée

Je vous invite à lire README et documentation du projet: vtherm_smartpi/README.fr.md at master · KipK/vtherm_smartpi · GitHub

Repo

Documentation Utilisateur (elle est digeste pour une fois)

Pour comprendre la théorie derrière et implementation de tout ça, c’est ici

Installation

Installer depuis HACS en cliquant sur le bouton du readme
Une fois HA redémarré, aller dans Paramètres, Appareils et Services, Intégrations
Puis ajouter l’intégration SmartPI ( Bouton Ajouter une intégration )

Paramètrage

Pour faire bref, une fois l’integration vtherm_smartpi ajoutée dans HA, selectionner dans l’underlying Versatile Thermostat l’algo smartpi, et dans l’integration smartpi, configurez vos vtherms ( config generale ou config par vtherm ).

La configuration est plutôt simple. Pas de coeff obscurs à régler.
Juste selon le capteur, regler le deadband à 0.1 pour un capteur à 0.1°C, et 0.05 pour un capteur à 0.01 est suffisant sur electrique. Sur Vannes je conseille quand même de garder 0.1 )
Pour le reste garder la conf par défaut.

Pour les valves il y a une option pour activer la linéarisation de la courbe de puissance de la vanne.
Ca reprend le principe du blueprint de @caiusseverus [ici] (Radiator valve response - difficulties with VTherm, non-linear valve action and calibration loss. · jmcollin78/versatile_thermostat · Discussion #1704 · GitHub) , sans la partie recalibration ( on pense rajouter ca dans un futur plugin dédié à ça ) .

La phase de premier apprentissage ( bootstrap ) va faire osciller autour de la consigne le temps de chopper assez de données pour construire le modèle, puis ça va passer en mode semi-stable.
Une fois qu’il aura les échantillons necessaires, 31 pour le taux de chauffe (A) et 31 pour les pertes (B) , il activera toutes ses fonctionalités.
Donc suffit de laisser tourner, et ca va s’ajuster tout seul et se bonifier avec le temps.

Diagnostics

Les attributs sont dans le sensor.nom_du_vtherm_smartpi_diagnostics

Il y a une carte markdown fournie dans le repo en attendant mieux. C’est rustique, mais ca organise un peu toutes ces données. La carte s’adapte en fonction que le debug ou pas est activé dans la conf.

carte: https://raw.githubusercontent.com/KipK/vtherm_smartpi/refs/heads/master/cards/smartpi_diags-fr.md

7 « J'aime »

Salut,
Super boulot, mais je testerai l’hiver prochain. Le chauffage est coupé et rangé. :sweat_smile:

tu m’étonnes, hier j’étais en maillot de bain :slight_smile:

1 « J'aime »

Moi en Normandie, j’essaie de le couper depuis une semaine mais pas encore possible :smiling_face_with_tear:

Je vais surveiller ça de près, ce blueprint m’a permis de réinstaller versatile thermostat, je suppose que vos tests ont été faits principalement sur des radiateurs électriques pour vtherm-SmartPI ? , Ou est ce que quelqu’un a fait des tests avec les vannes sonoff TRVZB avec la linéarisation de la courbe de puissance de la vanne, c’est décrit dans le readme je suppose que oui.

Ah oui, je suis tout au sud (dans l’aude 11) de la Normandie. :grin:

1 « J'aime »

oui c’est testé sur valve.
Forcément vu la faible resolution des TRV sur certain point de la courbe ( la partie low power ), ca stabilise moins bien qu’en switch on/off, mais c’est très correct ( stab a 0.1-0.2 ) .
En electrique ca peut stabiliser à 0.01 près dans certains cas.

1 « J'aime »

par contre cet été quand tu auras 45°C enfermé les volets fermés la clim à fond, moi je serais sur ma terrasse au soleil à 23°C :grinning_face_with_smiling_eyes:

1 « J'aime »

Chose à savoir,pour un bon apprentissage il faut qu’il puisse apprendre les pertes thermiques. Il faut donc une difference de temperature suffisante entre exterieur et interieur pour qu’il puisse constater une perte de temperature quand ça ne chauffe pas.
Donc en ce moment à lancer plutot la nuit.

Hâte de tester avant qu’il fassz trop chaud !

Mais une fois installée via HACS impossible de la trouver sur mes VTherm.
Je n’ai pas l’option algorithme. Il faut activer une option quelque part pour voir cette configuration ?

Ou bien est-ce parce que cela ne fonctionne que sur les chauffages et non pas sur les réversibles ?

oui ca ne fonctionne que sur les over_switch, over_valve et climate_over_valve, mais pas sur les climate.
C’est comme pour TPI.

La liste des algos est dans underlying, si tu n’a pas l’option TPI, tu n’auras pas les autres algos pluginisés non plus.

1 « J'aime »

Bonjour,

Je n’ai pas smartpi qui s’affiche dans les options :

dans custom components j’ai bien smartpi :

@Nico61

Il faut ajouter l’integration dans home-assistant.

Ah ok c’est bon. Merci de l’info, je pensais qu’il y avait juste besoin de la télécharger via HACS

1 « J'aime »

Quasi 200 installations, aucun retour.

Hésitez pas à partager ici vos graphiques de régulation, j’ai surtout testé sur mon install et sur des simulateurs. Ça m’intéresse de savoir comment ça fonctionne.

J’imagine que le raz de marée de questions arrivera pour l’hiver prochain :grin:

2 « J'aime »

Installé ici mais tous les radiateurs sont off depuis 2 semaines…
Va falloir être patient en effet pour les retours

Merci. Superbe !
Il fait trop beau dans le sud pour tester le chauffage mais en attendant le tsunami voici tout de même une copie d’écran de l’affichage avec les graphiques de régulation.

Bonjour, super travail comme d’habitude :slight_smile:

Petite question : comment fait on pour afficher les graphiques ?

Bonjour,
Pour voir les graphiques il faut que tu sois en version 10 et que tu installes le plugin vtherm-SmartPI.
Ouverture et fermeture de la fenêtre en cliquant (voir image ci-dessous).

1 « J'aime »

Salut ^^

J’étais quand même très tenté d’essayer SmartPI, c’est installé, je vais lire la doc…

J’ai trouvé un truc qui ne colle plus, je ne savais pas où mettre ça :sweat_smile:

Ce n’est plus le cas :grin:

@+

1 « J'aime »

J’ajouterais qu’il faut penser à activer la fonction correspondante dans la config de la carte.

En mode graphique, dans la section “pour tous les thèmes” :

2026-05-06 14_25_04-Climat – Home Assistant — Mozilla Firefox

En mode YAML :

show_regulation_chart: true

@+