Nouveau thermostat type proportionnel avec gestion des presets / portes et fenêtres / détection de mouvement .. (archive)

Hello @Philippe_Leray

Tu as l’exemple complet ici: versatile_thermostat/documentation/fr/additions.md at main · jmcollin78/versatile_thermostat · GitHub

La consigne c’est l’attribut temperature

Bonjour à tous !!

J’ai basculé tous mes radiateurs (électriques) d’une gestion par le thermostat générique HA vers VTherm. Je suis impressionné par la qualité et le suivi du dev !!
Bravo @Jean-Marc_Collin !!!

J’ai déménagé voici quelques mois et c’est mon premier hiver, dans une maison très (très) mal isolée… selon les pièces je peux perdre jusqu’à 2,5°/h… qui vont mettre 5h à retrouver une bonne température, et d’autres qui vont atteindre la bonne température en quelques dizaines de minutes.

Dans mon ancienne maison j’avais une chaudière contrôlée par un thermostat Netatmo. Une fonctionnalité que je trouvais très intéressante, était d’indiquer une heure de retour à la maison, et après apprentissage, le thermostat s’arrangeait pour démarrer au bon moment pour que la consigne soit atteinte à l’heure souhaitée.

Sachant que j’ai des pièces très disparates au niveau du bilan thermique, j’aurais souhaité faire de même : Indiquer une heure de retour (voir même une date en partant plusieurs jours), et que chaque radiateur s’allume selon la capacité thermique de la pièce.

J’ai cherché sur les différents forums, mais je n’ai pas trouvé (il se peut aussi que je ne l’ai pas vu…). Vu de ma fenêtre j’ai l’impression qu’on a tout ce qu’il faut avec des données de montée et descente en température, etc…

Vous auriez des idées ?

Merci beaucoup :slight_smile:

2 « J'aime »

Will, pourquoi ne pas mettre un thermostat par pièce ? Je n’en suis pas là encore mais c’est ce que je m’apprête à faire. Mais peut-être n’est-ce pas le sens de ta question.

Vu que je n’ai que des radiateurs électriques, c’est ce que j’ai fait. J’ai 1 thermostat/pièce et chaque radiateur est piloté indépendamment des autres avec un capteur de température/pièce.

Finalement ce que je voudrais faire, c’est prévoir le temps de montée en température de chaque pièce, pour pouvoir démarrer le radiateur associé au moment le plus opportun.

1 « J'aime »

Hello @Will711990 ,

C’est une demande fréquente même si la tienne est plus originale. La difficulté, c’est que le Scheduler n’est pas intégré à VTherm (et ce sera très dur à faire - cf dialogue ci-dessus). Donc va savoir qu’elle sera la consigne de temperature a telle heure … Donc, dis comme ça ce n’est pas possible.

Par contre, tout n’est pas complètement perdu :

  1. tu as la consigne à l’instant t (vtherm.target_temperature),
  2. tu as la pente de la courbe de température en °C/h (vtherm.slope),
  3. tu as la date courante

duree_chauffe en heure = (consigne - room temp) / slope. Si slope est 0 la durée est infinie.

Donc, si tu ajoutes now, tu dois savoir à quelle heure approx ta pièce sera à température.

Ca ne répond pas à ta question de l’anticipation du chauffage, mais ça donne une info de quand la pièce sera à température toutes choses égales par ailleurs et donc du délai de chauffe.

1 « J'aime »

Merci pour les réponses :slight_smile:
Alors effectivement j’étais parti là-dessus : duree_chauffe en heure = (consigne - room temp) / slope.

Mon but finalement en discutant, c’est de modéliser la pente car avec elle on peut simuler les montées en température.

Je pense que la pente serait à corréler avec (liste non exhaustive) :

  • La température extérieure
  • Le taux de fuite (C’est LA variable mystère)
  • La puissance du radiateur et son temps d’allumage
  • Le volume de la pièce

Pour le moment, j’ai des automations qui fonctionnent car j’ai moyenné la pente sur plusieurs cycle de montée en température.
Mais c’est très empirique et plutôt très approximatif, puisque ça dépend par mal de la température extérieure…
En tout cas chaque radiateur démarre sur une durée à peu près cohérente… mais j’avais en tête de faire quelque chose un peu plus « industrialisable » sur la base de grandeurs physiques mesurables plus facilement

EDIT :

J’avance peu à peu sur la question, tout en reprenant quelques cours de maths depuis bien longtemps oublié, car il faut résoudre une équation différentielle… merci Mistral AI :slight_smile:

J’ai pu faire une modélisation de la montée en température d’une pièce, à l’aide d’un PID qui était assez chouette. J’ai alors souhaité remplacé le PID par % = coeff_c * (T consigne - T intérieure) + coeff_t * (T consigne - T extérieure)
Pour le moment, la modélisation n’est pas tout à fait concluante, mais j’avance :

Voici le code Python mis à jour pour modéliser la montée en température avec cette nouvelle gestion :

import numpy as np
import matplotlib.pyplot as plt

# Paramètres
A = 11  # Surface de la pièce (m²)
P_radiateur_max = 1350  # Puissance maximale du radiateur (W)
V = 27.5  # Volume de la pièce (m³)
C = 1.2 * V * 1000  # Capacité thermique de la pièce (J/K)
U = 2.5  # Coefficient de perte thermique (W/(m²·K))
T_ext = 0  # Température extérieure (°C)
T_int_initial = 18.1  # Température intérieure initiale (°C)
T_setpoint = 19.3  # Température souhaitée (°C)
taux_renouvellement = 1.2  # Taux de renouvellement d'air (renouvellements/heure)
rho = 1.2  # Densité de l'air (kg/m³)
cp = 1005  # Capacité thermique massique de l'air (J/(kg·K))
delta_t = 10  # Pas de temps (s)
temps_total = 3600  # Temps total de simulation (s)

# Débit volumétrique d'air
V_dot = taux_renouvellement * V / 3600  # m³/s

# Coefficients pour la gestion du radiateur
coeff_int = 0.5  # Coefficient pour la différence de température intérieure
coeff_ext = 0.1  # Coefficient pour la différence de température extérieure

# Initialisation
t = np.arange(0, temps_total + delta_t, delta_t)
T_int = np.zeros_like(t)
T_int[0] = T_int_initial
P_radiateur = np.zeros_like(t)

# Résolution de l'équation différentielle avec la nouvelle gestion du radiateur
for i in range(1, len(t)):
    # Calcul du pourcentage d'allumage
    percent_on = coeff_int * (T_setpoint - T_int[i-1]) + coeff_ext * (T_setpoint - T_ext)

    # Limiter le pourcentage d'allumage entre 0 et 1
    percent_on = max(0, min(1, percent_on))

    # Puissance du radiateur ajustée
    P_radiateur[i] = percent_on * P_radiateur_max

    # Mise à jour de la température intérieure
    T_int[i] = T_int[i-1] + (delta_t / C) * (P_radiateur[i] - U * A * (T_int[i-1] - T_ext) - V_dot * rho * cp * (T_int[i-1] - T_ext))

# Tracé de la courbe
plt.plot(t / 60, T_int, label='Température intérieure')
plt.plot(t / 60, P_radiateur / 1000, label='Puissance du radiateur (kW)')
plt.xlabel('Temps (minutes)')
plt.ylabel('Température intérieure (°C) / Puissance (kW)')
plt.title('Courbe de montée en température avec gestion du radiateur')
plt.grid(True)
plt.legend()
plt.show()

Explications des modifications :

  1. Gestion du radiateur : La gestion du radiateur est basée sur la formule de pourcentage d’allumage.
  2. Coefficients : Les coefficients coeff_int et coeff_ext sont définis pour ajuster le pourcentage d’allumage en fonction des différences de température intérieure et extérieure.
  3. Calcul du pourcentage d’allumage : Le pourcentage d’allumage est calculé et limité entre 0 et 1.
  4. Puissance du radiateur ajustée : La puissance du radiateur est ajustée en fonction du pourcentage d’allumage.
  5. Mise à jour de la température intérieure : La température intérieure est mise à jour en utilisant la puissance ajustée du radiateur.
1 « J'aime »

Salut,
Je cherche à faire une chose qui me semblerait logique avec la configuration centralisée mais que je n’arrive pas à faire.
Je cherche à activer un preset identique sur l’ensemble de mes radiateurs. Un exemple précis, quand le jour tempo devient rouge. Je voudrais activer le mode eco sur l’ensemble de mes vtherm.

Salut ,
Il faudrait que je fasse ça moi aussi :grin:
Je vais faire une automatisation qui lancera le mode eco des vtherm quand je jour rouge HP débutera, et qui coupera les scheduleurs pour pas que ça réactive.

J’ai déjà un calcul du temps de relance de ce type là depuis pas mal de temps, qui marche plutôt bien, mais pas parfait… Pour ma part c’est le seul défi, après la régulation des radiateurs elle marche toute seule avec des radiateurs à inertie sèche.

Du coup je suis en train de faire un modèle thermique plus précis et plus simple à calibrer (avec seulement 2 coefficients) en fonction des mesures de température extérieures et intérieures tout simplement.

Bref, je partagerais le script de calibration et la formule physique correcte du calcul du temps de relance dès que c’est à peu près fonctionnel.

EDIT: le mystère du « taux de fuite » c’est le paramètre d’infiltration lié à la vitesse du vent, et ça c’est ma seconde étape (d’abord calibrer correctement les 2 principaux paramètres liés à l’inertie de l’habitation et à la résistance thermique)

EDIT2: mais à mon avis c’est un sujet à part du topic de cette conversation :wink:

2 « J'aime »

Hello, de façon centralisée on peut éteindre ou mettre en hors gel. Y a pas le eco.

Je preneur pour voir la tête de ton calcul (même imparfait) ! :slight_smile:

Salut,
Venant d’emménager, je dois changer mon installation de chauffage pour m’adapter à la nouvelle maison.
Celle-ci comporte des radiateurs électriques (je vais pouvoir réutiliser mes anciens modules Nodon SIN-4-1-21 via des Vtherm sur Switch.
J’ai aussi une pompe à chaleur avec des radiateurs. Il faut donc que je change les têtes pour des TRV de type SONOFF - Tete thermostatique connectée Zigbee 3.0 pour chaque radiateur et ainsi crée des VTherm. Celle-ci dispose d’un capteur de température qui permet de régler celle-ci pour tous les radiateurs de manières identiques.
Et une autre pompe à chaleur réversible pour la clim.

J’ai des capteurs de températures en zigbee pour chaque pièce.
Je me demande donc comment contrôler chaque radiateur indépendamment via la pompe à chaleur et les têtes thermostatiques. Via un Vtherm sur Climate pour chaque pièce (radiateurs).
Et aussi via un VTherm over Climate pour la clim ?

Ce qui ferait des VTherme over Switch pour les radiateurs électriques et un VTherm Over Climate pour chaque TRV et la clim?

Mon raisonnement est-il correct ?

Merci.

Hello @lilp

L’idée générale c’est d’avoir un VTHherm par zone de chauffage. Si tu as 3 radiateurs avec des TRV dans le salon, tu crées un seul VTherm avec les 3 Sonoff. C’est des VTherm over_climate avec une régulation via la vanne directement. Cf Readme.

Tu peux aussi commander une chaudière centrale -type air-eau par exemple qui alimente tes TRV (je ne suis pas sur que ta « clim » en soit une dans ta description). Si c’est le cas, y a besoin d’un VTherm de type configuration centralisée pour piloter la chaudière centrale (cf. readme pour savoir comment on fait).

Si ta clim ne dessert qu’une seule pièce, il faut un VTherm over_climate pour cette pièce et donc la clim.

Le Nodon est bien un Vtherm over_switch avec un switch virtuel qui pilote le Nodon. Y a pleins d’exemples ici et dans le README aussi. Tu devrais t’en sortir avec ça. Tiens nous au courant.

1 « J'aime »

Bonjour,

J’utilise versatile en mode over_climate depuis quelques temps, et j’en suis super content.

Mais je me permet une petite question : comment s’assurer que ma versatile est bien éteinte quand je le souhaite ?

Je m’explique…
Au cours de son cycle, versatile passe des fois en éteint (ainsi que le sous jacent), pour mieux reprendre plus tard.
Mais si je quitte la pièce dans ce cas là, comment faire pour interrompre le cycle, et être sûr que ça ne reprenne pas plus tard quand je suis absent ?

Merci d’avance, et bonnes fêtes !

Hello, regarde la gestion de la présence dans le readme. C’est fait pour ce que tu veux.

Bonjour
j’ai aussi des valves Netatmo, sans le thermostat central Netatmo, juste les valves à chaque radiateur.
Donc je dois bien paramétrer les Vtherm en Over-climate ?
Mais je me demande si on ne risque pas de double pilotage entre le Vtherm et le controle Netatmo via son cloud ? Ou comment organise t on les deux systèmes pour qu’il n’y ait poas de doublon ? Supprimer les plannings côté Netatmo ? ou en garder un basique et permanent sachant que c’est le Vtherm qui viendra donner le température cible à chaque valve en fonction du capteur de temp ? (des Sonoff SNZB-02 chez moi)

Et comment reconstruire un planning global pour la maison avec des temp adaptées aux pièces en fonction des heures ? Il me semble comprendre que Vtherm n’intègre des plannings que valve par valve ?

Beaucoup de questions… Mais j’avais fait un test il y a 1 an puis j’ai poursuivi avec Netatmo seul, mais j’aimerai bien reprendre et peut être avoir des valves Zigbee dans les pièces ou le protocole Netatmo ne passe pas bien… Mais le mix Netatmo / Zigbee sera t il possible ? a priori oui avec Vtherm je suppose ?

Edit : je suis en train de relire la doc en détail… et elle est super bien détaillée… mais je bute encore sur l’application des toutes ces fonctions à ma configuration en particulier… je continue ma lecture

Bonjour,
Je viens d’installer Versatile thermostat, et je n’arive pas à commander la mise en marche ou arrête de mon radiateur electrique.
Je commande mon radiateur élèctrique via son fil pilote avec un module Nodon en zibgee + ZigBee2mqtt.
J’ai bien créer un swicht virtuel, et celui-ci est bien renseigné dans les sous-jacents lors de la configuration de Vth.
Vth semble fonctionner voir image suivante, mais celui-ci nje semble pas commander mon radiateur ?
Je ne vois pas ce que je dois ajouter / modifier comme pamamètre pour que cela puisse commander correctement mon radiateur, faut il passer par des commandes MQTT

Merci

Voici la config lié à Vth dans le fichier configuration.yaml

switch:
  - platform: template
    switches:
      fil_pilote:
        value_template: "{{ is_state('input_boolean.fil_pilote', 'on') }}"
        turn_on:
          service: switch.turn_on
          data:
            entity_id: input_boolean.fil_pilote
        turn_off:
          service: switch.turn_off
          data:
            entity_id: input_boolean.fil_pilote


script:
   fil_pilote_confort:
    sequence:
      - service: climate.set_preset_mode
        target:
          entity_id: climate.chambre_quentin
        data:
          preset_mode: "comfort"

   fil_pilote_eco:
    sequence:
      - service: climate.set_preset_mode
        target:
          entity_id: climate.chambre_quentin
        data:
          preset_mode: "eco"

   fil_pilote_arret:
    sequence:
      - service: climate.set_preset_mode
        target:
          entity_id: climate.chambre_quentin
        data:
          preset_mode: "off"

Merci beaucoup.

J’ai regardé, mais malheureusement, ce n’est pas ce que je cherche. Je ne souhaite pas changer de profil de température, mais vraiment la désactiver.

D’autant que mes clims étant réversibles, le même profil absent n’aura rien à voir en été ou en hivers (j’ai volontairement désactivé le mode AC, comme elles doivent toutes fonctionner en chaud ou en froid, je ne peux pas les dissocier individuellement)

Bonjour,

Pour ma part, l’application Netamo prend le relais de son horaire que je n’ai pas su supprimer.

Ça fait un planning H24 a la même température dans Netamo et un planning heure par heure dans HA. Ce qui est modifié par HA semble considéré comme modification temporaire dans Netamo qui la remet au planning de Netamo

Pour le VTherm, j’ai une pièce avec 4 vannes dans Netamo, ce n’est qu’une vanne dans HA. Donc un VTherm pour la pièce avec l’entité.

Il y a peut-être mieux, mais c’est ce que j’ai trouvé quand j’ai remis le chauffage pour que ça soit vite fonctionnel.

En résumé :
Netatmo. Température minimale que je veux sur un planning H24.
VTherm gère les températures.
Schedule pour le planning pièces par pièces avec une programmation par heure.

Ok, il me semblait bien que ça devait faire ce genre de choses, mais quand tu dis Netatmo remet à son planning, il le fait à quelle fréquence ? Et chaque fois qu’il change, Vtherm remet immédiatement sa propre consigne ?

Si c’est un truc comme ça ça fait pas des actions répétées sur la vanne et donc sur ses piles ?

Edit : En tous cas ça semble vouloir dire aussi que si je remplace qques vannes par du Zigbee, ça devrait fonctionner parfaitement aussi.