Fonctionnement des déclencheurs

Bonjour,

comme c’est mon premier post, je tiens d’abord à vous remercier pour cette communauté à laquelle j’espère participer régulièrement. J’ai découvert HA il y a quelques semaines et ai donc (pour l’instant ?) des questions j’imagine assez basiques. Voici donc mon premier souci:

J’ai intégré un boitier Konyks eCosy me permettant de contrôler mon radiateur électrique. J’arrive à l’activer / le désactiver avec un déclencheur de type heure et je souhaite maintenant pouvoir le déclencher en fonction de la température actuelle.

J’ai donc défini l’automatisation ci-dessous:

alias: Maintien de la température à en journée
description: 'Entre 8h et 18h, le chauffage doit s''allumer s''il fait moins de 19,5°'
trigger:
  - type: temperature
    platform: device
    device_id: cff9ec9e8287b4ee1e9634a02595e4b6
    entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
    domain: sensor
    below: 19.5
    for:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 0
condition: []
action:
  - scene: scene.8thk9cgpvn3i63ac
  - device_id: 309d842de9ce681a10743bcab1423819
    domain: mobile_app
    type: notify
    title: 'Température < 19,5° en journée'
    message: Le chauffage s'est allumé dans le bureau
mode: single

cependant rien ne se déclenche alors que la température actuelle est bien en-dessous de 19,5°.

Ma première piste est que la valeur récupérée n’est peut être pas numérique mais je ne sais pas comment le vérifier et ensuite la convertir.

Pourriez-vous me guider et/ou m’indiquer d’autres pistes ?

Merci

Thierry

Je pense avoir trouvé la solution pour la conversion mais cela ne fonctionne toujours pas. Voici le code:

alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 18h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
  - platform: numeric_state
    entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
    value_template: >-
      {{ states('sensor.netatmo_station_meteo_interieur_bureau_temperature') |
      float }}
    above: '20.0'
condition: []
action:
  - device_id: 309d842de9ce681a10743bcab1423819
    domain: mobile_app
    type: notify
    title: Changement de statut du radiateur
    message: Le radiateur s'est allumé dans le bureau
  - service: persistent_notification.create
    data:
      title: Changement de statut du radiateur
      message: Le radiateur s'est allumé dans le bureau
mode: single

Avez-vous une idée ?

Merci

Thierry

Je ne pense pas qu’il y ai besoin de conversion. Passes par l’UI pour créer ton automatisation, paramètre tout et rebascules sur le YAML (tout en haut à droite) , tu auras le code.

Tu es sur que l’info de ton netatmo est remontée?

Test ton automatisation en changeant la température manuellement dans « outils de supervisions ».

Non il n’y en a pas besoin avec la plateforme numeric_state qui indique à l’interpréteur que c’est un nombre :+1:

Mets la notification en 1ère position pour la mise au point car si une action avant elle échoue, elle ne sera pas créée. :innocent:

@Pompoire57 dans le 1er code tu as mis below (en dessous) et maintenant above (au dessus)…

Peux tu fournir un aperçu de l’entité netatmo_station_meteo_interieur_bureau_temperature (depuis Outils de développement → Onglet ETATS?

C’est peut-être ça le pb, il a mis device et pas de conversion, puis numeric_state et conversion?

bonsoir et merci pour toutes vos réponses.

La différence entre mes deux codes s’explique par le fait d’avoir d’abord essayé un trigger de type device puis basculé sur un trigger de type numeric_state.

Je suis maintenant passé sur un type template dont voici le code (je fais tout par l’interface graphique):

alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 19h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
  - platform: template
    value_template: >-
      {% if states('sensor.netatmo_station_meteo_interieur_bureau_temperature')
      | float <= 20 %}

      true

      {% else %}

      false

      {% endif %}
condition:
  - condition: time
    after: '08:00'
    before: '19:00'
action:
  - device_id: 309d842de9ce681a10743bcab1423819
    domain: mobile_app
    type: notify
    title: Température < 20° en journée
    message: Le radiateur s'est allumé dans le bureau
  - service: persistent_notification.create
    data:
      title: Changement de statut du radiateur
      message: Le radiateur s'est allumé dans le bureau
  - scene: scene.8thk9cgpvn3i63ac
mode: single

Ce qui m’étonne, c’est que si je vais dans Outils de développement > Etats, que je sélectionne l’entité sensor.netatmo_station_meteo_interieur_bureau_temperature et que je fixe une valeur dans le champs Etat et que j’appuie sur <DEFINIR L’ETAT>, tout se passe parfaitement.

Par contre, si je filtre sur l’entité en question, je constate que les attributs associés sont:
unit_of_measurement: °C
friendly_name: Netatmo Station météo (Intérieur) bureau Temperature
device_class: temperature

Du fait de la première ligne, je suis quasi sûr que je dois faire une conversion mais je peux bien sûr me tromper. Je joins un screenshot pour plus de détails.

@Clemalex, merci pour l’information concernant la notif persistente mais même celle-ci ne se déclenche pas.

En attente de vos suggestions :slight_smile:

Thierry

Tu pars dans du code trop compliqué pour ce que tu cherches à faire… (je comprends tu cherches une solution à ce que cela fonctionne :wink: )

Oui, tu te trompes et je l’ai déjà expliqué ici

:wink:

Voici un code qui fonctionne chez moi :

alias: Test notification température
description: ''
trigger:
  - platform: numeric_state
    entity_id: sensor.outside_temperature
    above: '20'
condition: []
action:
  - service: persistent_notification.create
    data:
      message: toast
mode: single

animate

Mes conditions étaient pourries. Du coup, voici ce qui fonctionne maintenant:

alias: Minimum 20° en journée dans le bureau
description: 'Entre 8h et 19h, le chauffage doit s''''allumer s''''il fait moins de 20°'
trigger:
  - platform: numeric_state
    entity_id: sensor.netatmo_station_meteo_interieur_bureau_temperature
    below: '20'
condition:
  - condition: time
    after: '08:00'
    before: '19:00'
action:
  - service: persistent_notification.create
    data:
      title: Changement de statut du radiateur
      message: Le radiateur s'est allumé dans le bureau
  - device_id: 309d842de9ce681a10743bcab1423819
    domain: mobile_app
    type: notify
    title: Température < 20° en journée
    message: Le radiateur s'est allumé dans le bureau
  - scene: scene.8thk9cgpvn3i63ac
mode: single

Je pense d’ici peu utilisé des inputs pour faciliter la customisation en cas de besoin.

Merci pour votre aide !

Thierry

C’est à dire ?


je fixe actuellement les heures et les températures limites en dur. Ce serait plus pratique depuis lovelace

1 « J'aime »

Effectivement, il faut que tu paramètres tout ça :+1:

Je te conseille te le faire au fur et à mesure (c’est très rapide depuis que l’on peut créer les entités depuis l’interface graphique) avant de devoir revenir sur toutes tes automatisations :sleepy:.

Pour ce qui est déclencheur (trigger) et condition, l’interface graphique te propose déjà d’utiliser des entités :+1:

Voici un exemple par contre pour le message de notification (tu en trouveras d’autre sur le forum dans divers posts :+1: ) :

  - device_id: 309d842de9ce681a10743bcab1423819
    domain: mobile_app
    type: notify
    title: "Bureau : température < {{states('input_number.temperature_minimale_bureau')}}"
    message: Le radiateur s'est allumé.
1 « J'aime »