Comparer 2 températures

Bonsoir,

J’essaye de créer un système de déstratification (faire descendre l’air chaud du plafond vers le sol), avec un ESP j’ai créé 2 sensors un pour le plafond et un pour le sol. Je souhaite créer une automatisation pour comparer les 2 températures et déclencher une ventilation si plafond est supérieur de 5° au sol.

J’ai essayé de le faire par node red étant débutant j’ai vite abandonné et je n’ai pas trouvé de possibilités par les automatisations.

Pouvez-vous m’aider ?
Merci

Salut,

Si tu veux faire ça dans une automatisation HA, ce serait avec un déclencheur « Template ».
Indice: le code ressemblerait à ça :wink: :

{% if (states('sensor.temp_1')|float(0)) - (states('sensor.temp_2')|float(0)) >= 5  %}true{%endif%}

Bonne chance, regardes les exemple dans ce lien:

Sinon on Node Red ce ne serait pas dur non plus à faire…

Merci de ton aide

normalement c’est réglé :slight_smile:

voici ma solution

trigger:
  - platform: template
    value_template: "{% if (states('sensor.temperature_plafond')|float(0)) - (states('sensor.temperature_sol')|float(0)) >=5 %}true{%endif%}"
action:
  - service: fan.set_preset_mode
    data:
      preset_mode: favorite
    target:
      entity_id: fan.zhimi_mb3_3945_air_purifier

Cool.
En revanche, je ne sais pas comment ça réagit si le différence reste longtemps au dessus de 5°.
Je rajouterais une condition pour voir si le mode de ventilation n’est pas déjà actif.
Pour éviter de bombarder ce pauvre ventilo de requêtes

1 « J'aime »

Apres plusieurs tests donc le code est bon et le ventilateur ce mets en route lors du déclenchement de l’automatisation mais il ne semble pas être « bombardé » de commandes. Il se remets en route seulement si la déférence de temperature est une nouvelle fois dans les circonstances demandées.

Merci pour ton aide. :grinning:

trigger:
  - platform: template
    value_template: "{% if (states('sensor.temperature_plafond')|float(0)) - (states('sensor.temperature_sol')|float(0)) >=5 %}true{%endif%}"
action:
  - service: fan.set_preset_mode
    data: 
      preset_mode: Favorite
    target:
      entity_id: fan.zhimi_mb3_3945_air_purifier
        

Merci beaucoup pour ces infos.

Je viens de m’en inspirer pour créer un système analogue : quand l’humidité extérieure est 10 points plus faible que celle à l’intérieur, je déclenche la VMC. Dès que les taux d’humidité sont identiques ou qu’il fait plus humide dehors, j’arrête.

Voici le code :

platform: template
value_template: >-
  {% if (states('sensor.humidite_sdb_studio_humidity')|float(0)) -
  (states('sensor.temperature_pool_house_humidity')|float(0)) <=0
  %}true{%endif%}

Actuellement le calcul renvoie un peu moins de -20 et l’ensemble renvoie bien True en le testant. Pourquoi alors mon automatisation ne se déclenche jamais? J’ai bien sûr attendu la mise à jour des taux d’humidité.

Ci-dessous, le code complet de l’automation (je teste actuellement celle qui arrête la VMC).

alias: "VMC Studio Arrêter "
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.humidite_sdb_studio_humidity
    attribute: humidity
    below: 65
  - platform: template
    value_template: >-
      {% if (states('sensor.humidite_sdb_studio_humidity')|float(0)) -
      (states('sensor.temperature_pool_house_humidity')|float(0)) <=0
      %}true{%endif%}
condition:
  - condition: device
    type: is_on
    device_id: 836aa18b4ddd0e4f8976a33f2e2fa8b0
    entity_id: switch.vmc_studio
    domain: switch
  - condition: state
    entity_id: timer.vmc_studio
    state: idle
action:
  - type: turn_off
    device_id: 836aa18b4ddd0e4f8976a33f2e2fa8b0
    entity_id: switch.vmc_studio
    domain: switch
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - type: turn_off
    device_id: 836aa18b4ddd0e4f8976a33f2e2fa8b0
    entity_id: switch.vmc_studio
    domain: switch
mode: single

Initialement j’utilisais des seuils, je souhaite cumuler les deux. Le timer est bien inactif. Ça ne fonctionnait déjà pas avant que je ne l’ajoute pour éviter que la VMC ne s’éteigne juste après avoir été allumée si le taux d’humidité extérieur est à 90%. Après une douche avec toute la buée en suspension, je veux quand même évacuer l’air. Le switch VMC est bien sur On. J’ai aussi redémarré Home Assistant. Rien n’y fait !!! Je ne vois pas d’erreur…

Si j’exécute manuellement l’automation elle arrête bien la VMC alors que le taux d’humidité est à 71% (90% dehors). Donc ça fonctionne. C’est le déclenchement qui ne se fait pas, et je ne comprends pas pourquoi.

Tu peux reformuler STP ? c’est pas cohérent.

refixes les règles.
Tu veux allumer la VMC à partir de quand ?
Tu veux éteindre la VMC à partir de quand ?

Sachant que les deux variables sont:

  • humidité extérieure
  • humidité intérieure

C’était évidemment « quand l’humidité extérieure est 10 points plus faible que celle à l’intérieur, je déclenche la VMC », faute de frappe. J’ai corrigé le post. Le code lui n’est pas faux à ce niveau là.

C’est l’extinction que je teste dans le code recopié, donc la partie où l’on coupe la VMC si l’humidité intérieure est inférieure ou égale à celle à l’extérieur.

Ça fonctionne bien en déclenchement manuel mais ça ne se déclenche jamais.

Pas évident pour moi mais bon … passons le sujet n’est pas là.
As tu testé l’action en passant par l’outil de développement service ?
Pourquoi répéter l’action turn_off à 10 secondes d’intervalle ?
Si c’est OK le bug vient de ta condition
Je ne voit pas ce que tu testes avec ca:

condition:
  - condition: device
    type: is_on
    device_id: 836aa18b4ddd0e4f8976a33f2e2fa8b0
    entity_id: switch.vmc_studio
    domain: switch
  - condition: state
    entity_id: timer.vmc_studio
    state: idle

Autre point qui n’a rien à voir mais peut t’intéresser, pourquoi faire une automatisation pour allumer et une autre pour éteindre la VMC. Tu peux tout faire en une seule>

J’ai testé en déclenchant manuellement l’automatisation, et ça a bien fonctionné. Les conditions étaient réunies, la VMC a été coupée. Par l’outil de développement, j’ai testé le calcul dans value_template qui renvoie un peu moins de -20 et l’ensemble qui renvoie bien True. Ce que ne je comprends pas c’est pourquoi ça ne se déclenche pas tout seul.

Le turn_off à 10s d’intervalle c’est pour contourner un bug du module en question. Il dysfonctionne et comme je l’ai acheté chez Ali, pas de retour. J’en ai un qui fonctionne correctement et celui-là qui a un souci. En faisant comme ça ça marche.

Ah oui tout faire en une automatisation ça pourrait m’intéresser. Tu ferais comment? En mettant tous les triggers et en ajoutant des conditions dans les actions?

Dans le code que tu as copié je vérifie que la VMC est bien allumée avant de l’éteindre (à cause du device défectueux). Et je vérifie que le timer d’une heure est écoulé, temps avant lequel je ne veux pas qu’on coupe la VMC.

Peux-tu essayer de remplacer tes conditions par celles-ci?

condition:
  - condition: state
    entity_id: switch.vmc_studio
    state: "on"
  - condition: state
    entity_id: timer.vmc_studio
    state: idle

Petite Question ?
Pourquoi prendre le déclenchement (Humidité) par rapport à l’extérieure, on considere HUMIDE si >70 % (OK normalement entre 40% et 70%)

  • Fais des déclencheurs ON , OFF, Etc…
  • Puis donnes un nom à l’ID par Modifier l’ID sur les déclencheurs !

Tu peux te servir des Conditions pour cas particulier de l’ensemble ( à voir)


Mais tu peux faire des conditions dans chaque cas si tu fais :point_right: image Choisir !
image
tu auras les choix de tes déclencheurs dans les conditions

image
image :point_left:
Tu pourras

  • faire le choix sur un ou plusieurs ID [déclencheurs]
  • ajouter condition :point_right: image
  • faire action(s) :point_right: image
    Ensuite tu fais la même chose pour les autres options !
    image
Résumé des choix simple

J’ai fais ces modifs… Et ça marche ! Merci beaucoup !

Mais pourquoi? J’avais utilisé l’UI pour créer l’automation, qu’est-ce qui n’allait pas? Ou quelle est la subtilité à savoir pour la suite? Je suis curieux de comprendre ça.

Sur la condition du switch vmc à ON, c’est l’état qu’il faut matcher à ON pas l’appareil
De plus, je pense que cette condition n’a aucune raison d’être.

whaooo J’ai appris plein de trucs dans ton post… L’ID de déclenchement, comparer des entités dans Etat numérique, Choisir etc… Cela me fait plein de nouveaux outils, merci beaucoup… Je suis en train de tester tout ça !

OK merci. Tu privilégies l’entité sur l’appareil quand tu as le choix pour une condition?

Quand tu dis entité, c’est l’entité.
L’appareil, c’est tout. Toutes les entités de l’appareil et tous les évènements de l’appareil.

D’accord, merci pour cette précision. Pourquoi le premier code ne fonctionnait pas, ça reste un peu mystérieux pour moi… Parce que ça fonctionnait que je le déclenchais à la main, mais ça ne se déclenchait pas tout seul… Ce que j’en retiens c’est qu’il est plus précis d’interroger l’entité, donc moins de risque de pertes d"informations ou autre…

OK je pige. Ça permet de tout faire avec une seule automation, comme le disait Fredarro. Top ! :+1:

Mais pour déclencher lorsqu’il y a 10 points d’écart il me faut la formule, n’est-ce pas? Je ne peux pas dire Humidité extérieure < (Humidité intérieure + 10) ?