J’ai vu que je n’étais pas le seul à me poser des questions sur la vitesse de la VMC.Elle n’est jamais éteinte, donc je n’utilise qu’un simple switch pour activer la grande vitesse.
Le sujet récent dans la même rubrique était centré sur les moyen de piloter (suivez ce lien, très interessant).Mais quand déclancher la grande vitesse??
Là je vous donne mon approche:
L’humidité relative telle que donnée par une sonde dépend de la température. Donc comparer l’humidité d’une sonde exterieure vs une sonde intérieur est inutile.
Il faut calculer l’humidité absolue pour l’extérieur et l’intérieur (pièce humide) via un template (en mg/m3). L’humidité absolue est la quantité d’eau dans l’air, indépendamment de sa température
L’humidité relative est celle qui donne un indicateur de confort.
{% set temp = states(‹ sensor.thermometre_cuisine_temperature ›) | float %}
{% set humidity = states(‹ sensor.thermometre_cuisine_humidity ›) | float %}
{% if temp is not none and humidity is not none %}
{{ (6.112 * (2.71828 ** ((17.62 * temp) / (243.12 + temp))) * humidity * 2.1674) / (273.15 + temp) | round(2) }}
{% else %}
{{ states(‹ sensor.humidite_absolue_cuisine ›) | default(0) }}
{% endif %}
Ensuite, il faut calculer la différence d’humidité absolue intérieur et extérieur:
Je prends la pièce la moins humide car je veux savoir si ça vaut le coup d’allumer la VMC. Si l’écart est faible, alors ça ne sert à rien de faire rentrer de l’air aussi humide que l’air qui sort.
Ensuite, je regarde l’écart. Perso j’active la VMC sous différentes conditions:
Si l’écart est supérieur à 1.5 mg/m3
Si l’humidité relative est supérieur à la zone de confort pour les pièces de vie. Une petite recherche sur le web permet de connaître les zones de confort de l’humidité relative pour chaque pièce
Si ça n’est pas la nuit
Mon rêve : si on n’est pas à la maison
Voici mon visuel (au milieu, c’est un interrupteur, il y a 2 fois SdB Bas car je n’ai pas encore zigbee dans la salle de bain du haut :/):
Ça semble une bonne idée. Tes mesures de mg/m³ viennent d’où? Tu laisses donc ta vmc allumée tout le temps en basse vitesse ou pas? Pour renouveler l’air j’entends.
Oui, ma VMC est allumée tout le temps. Ce que je module, c’est la vitesse 2;
Je calcule la masse d’eau par m3 à partir de l’humidité relative et la température.
L’humidité relative dépend de la température : à 100%, cela correspond au point de rosée, c’est à dire le moment où il y a trop de vapeur pour un volume donné et une température donnée: ça condense (rosée).
Il existe un addon qui donne pas mal d’infos qu’on peut paramétrer pièces par pièces
Il y a quelques temps j’étais parti dans la même démarche pour piloter deux déshumidificateurs, depuis je suis revenu à quelque chose de plus basique avec “hygrostat”
Je pense qu’il y a une erreur d’unité.
Vous devrier plutôt exprimer votre humidité absolue en g/m3 et non en mg/m3.
Les valeurs usuelles dhumidité absolue sont généralement comprise entre 5 et 20 g/m3
Quand je suis passé de jeedom à home assistant j’ai essayé de reproduire les différents scénarios que j’avais et notamment sur cette base comme @TroyLeChat : “Si l’humidité relative est supérieur à la zone de confort pour les pièces de vie”
Je n’ai jamais été satisfait du résultat
Ensuite je suis passé à une solution base “hygrostat” mais là encore, la cible de déclenchement dans une région humide comme la mienne n’est pas évidente et doit pouvoir être dynamique avec des critères fiables.
Ce thread m’a donné envie de retravailler le sujet et en creusant j’en suis venu à définir que le critère le plus fiable est le “dew point” “point de rosée” puisqu’il varie en fonction de l’humidité et de la température de la pièce. A partir de là il suffisait de trouver les bons calculs et les bons seuils.
A force de lectures il semble que ce soit l’équation d’Arden Buck qui donne les résultats les plus précis. Et qu’on peut se baser pour les Pièce sur les recommandations d’indices de Point de Rosée suivants :
Pour une cuisine il est conseillé de maintenir un indice “dew point” < à 16° C
Pour une Salle de Bain il est conseillé de maintenir un indice “dew point” < 16°C ou 18°C sachant qu’évidemment il y aura des pics et qu’on déclenchera la vitesse 2 de la VMC.
- Un exemple pour une salle de bain ou j’ai un extracteur deux vitesses, la vitesse 1 tourne en permanence et la vitesse 2 se déclenche si on prend une douche.
template:
- sensor:
## Sdb1er dewpoint
- name: "sdb1er_dewpoint"
unique_id: sdb1er_dewpoint
unit_of_measurement: "°C"
device_class: temperature
state: >-
{% set temp = states('sensor.sdb1er_temperature_median') %}
{% set hum = states('sensor.sdb1er_humidite_median') %}
{% if temp in ['unavailable', 'unknown'] or hum in ['unavailable', 'unknown'] %}
unavailable
{% else %}
{% set T = temp | float %}
{% set RH = hum | float %}
{% if RH <= 0 %}
unavailable
{% else %}
{% set a = 6.1121 %}
{% set b = 18.678 %}
{% set c = 257.14 %}
{% set d = 234.5 %}
{% set e = 2.718281828459045 %}
{# Calcul de l'exposant #}
{% set exponent = (b - (T / d)) * (T / (c + T)) %}
{% set Ps_m = a * (e ** exponent) %}
{# gamma_m = ln(RH/100 * exp(exponent)) = ln(RH/100) + exponent #}
{% set gamma_m = log(RH / 100) + exponent %}
{% set dew = (c * gamma_m) / (b - gamma_m) %}
{{ dew | round(1) }}
{% endif %}
{% endif %}
- name: "sdb1er_dewpoint_comfort"
unique_id: sdb1er_dewpoint_comfort
state: >-
{% set td = states('sensor.sdb1er_dewpoint') %}
{% if td in ['unavailable', 'unknown'] %}
Inconnu
{% else %}
{% set td = td | float %}
{% if td <= 10 %}
Très sec
{% elif td <= 12 %}
Sec
{% elif td <= 16 %}
Confortable
{% elif td <= 18 %}
Légèrement Humide
{% elif td <= 21 %}
Humide
{% elif td <= 24 %}
Très Humide
{% else %}
Extrêmement Humide
{% endif %}
{% endif %}
- Un exemple pour la cuisine ou j’ai un déshumidificateur, je le déclenche si le point de rosée est > ou = à 16°C
template:
- sensor:
## Cuisine dewpoint
- name: "cuisine_dewpoint"
unique_id: cuisine_dewpoint
unit_of_measurement: "°C"
device_class: temperature
state: >-
{% set temp = states('sensor.cuisine_temperature_median') %}
{% set hum = states('sensor.cuisine_humidite_median') %}
{% if temp in ['unavailable', 'unknown'] or hum in ['unavailable', 'unknown'] %}
unavailable
{% else %}
{% set T = temp | float %}
{% set RH = hum | float %}
{% if RH <= 0 %}
unavailable
{% else %}
{% set a = 6.1121 %}
{% set b = 18.678 %}
{% set c = 257.14 %}
{% set d = 234.5 %}
{% set e = 2.718281828459045 %}
{# Calcul de l'exposant #}
{% set exponent = (b - (T / d)) * (T / (c + T)) %}
{% set Ps_m = a * (e ** exponent) %}
{# gamma_m = ln(RH/100 * exp(exponent)) = ln(RH/100) + exponent #}
{% set gamma_m = log(RH / 100) + exponent %}
{% set dew = (c * gamma_m) / (b - gamma_m) %}
{{ dew | round(1) }}
{% endif %}
{% endif %}
- name: "cuisine_dewpoint_comfort"
unique_id: cuisine_dewpoint_comfort
state: >-
{% set td = states('sensor.cuisine_dewpoint') %}
{% if td in ['unavailable', 'unknown'] %}
Inconnu
{% else %}
{% set td = td | float %}
{% if td <= 10 %}
Très sec
{% elif td <= 12 %}
Sec
{% elif td <= 16 %}
Confortable
{% elif td <= 18 %}
Légèrement Humide
{% elif td <= 21 %}
Humide
{% elif td <= 24 %}
Très Humide
{% else %}
Extrêmement Humide
{% endif %}
{% endif %}
A partir des sensor.*_dewpoint on peut facilement faire ses automatisations
Exemple d’automatisation :
J’ai créé un “helper” Timer VMC dewpoint qui me permet de définir une tempo avant que la vitesse 2 s’arrête quand le point de rosée est inférieur à 16°C, je l’ai paramètré à 10mn mais c’est au choix