Automations - remonter (en notification) le nom du déclencheur, ou d'une valeur?

Salut !

J’ai créé plusieurs automatisations :

  • 2 pour m’indiquer l’ouverture / la fermeture des 2 portes de la maison (via capteur Xiaomi)
  • 4 pour m’indiquer le chute du niveau de batterie (de tous mes appareils sur piles (capteurs Xiaomi, etc), 1 pour passage sous les 30%, 1 pour passage sous 20%, 1 pour passage sous 10%, 1 dernière pour passage à 0%.

Je ne sais pas, et pour l’instant je ne trouve pas comment remonter, dans les notifications qui me sont envoyées, le nom du capteur qui a déclenché l’alerte (par exemple, laquelle de mes 2 portes a été ouverte, Entrée ou Salon ?).

Ou, pour les piles, comment remonter le nom (dans les notifs) du ou des capteurs qui viennent de passer sous le seuil de batterie défini, ainsi (en option) que le % précis du niveau restant.

Auriez-vous, svp, une idée ?

D’avance, merci :slight_smile:

J’ai même une automatisation qui m’indique si la température chute sous 10°, via tous mes capteurs Aqara.
Mais je ne sais pas comment ajouter dans la notification le nom du capteur / de la pièce où ça arrive.

Merci de partager au moins une automatisation pour donner un exemple…

Tout va se passer ici : Automation trigger variables - Home Assistant

Certainement la plateforme state et donc regarde dans une notification ce que te donne {{trigger.entity_id}}

Certainement la plateforme numeric_state et donc regarde dans une notification ce que te donne {{trigger.entity_id}}

Le mieux quand tu veux récupérer des informations du déclencheur (trigger), tu ajoutes dans ton automatisation une notification affichant le déclencheur et toutes ses données :

alias: Notification de mise au point
description: >
  Permet d'afficher une notification pour la mise au point lors de
  l'utilisation du déclencheur(trigger)
trigger:
# Renseignez ici vos déclencheur
  - platform: state
    entity_id: input_boolean.hacf
  - platform: numeric_state
    entity_id: input_number.hacf
    above: '10'
#  - platform: <PLATEFORME>
#    entity_id: <DOMAINE>.<ENTITY>
condition: []
action:
  # Affiche une notification persistente
  - service: persistent_notification.create
    data:
      message: |
        {% for list in trigger %}
          {{list}} : {{trigger[list]}}
        {% endfor %}
      title: |
        Le Déclencheur de l'automatisation
      notification_id: '{{ (range(1, 9999)|random) }}'
mode: single

Ce qui donne :


Merci :slight_smile:

Voici celle pour me notifier de l’ouverture / fermeture de porte (avec comme condition l’état du panneau d’alarme (enclenchée ou non).

alias: ALARME - Portes ouverture
description: ''
trigger:
  - type: opened
    platform: device
    device_id: da03968802ffde19775803cdb4a91d4b
    entity_id: binary_sensor.openclose_17
    domain: binary_sensor
  - type: opened
    platform: device
    device_id: 8ad3e5aea26b8305e4be9a31257720ef
    entity_id: binary_sensor.openclose_18
    domain: binary_sensor
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: alarm_control_panel.ha_alarm
        state: armed_home
action:
  - service: notify.notify
    data:
      message: >-
        ATTENTION - Ouverture porte - {{trigger.entity_id}} -
        {{(now()|string).split('.')[0]}}
mode: single

Ca fonctionne, ça me remonte « binary_sensor_.openclose_17 »

Mais est-il possible d’avoir un « alias », le nom donné au capteur non son ID ?
Genre « porte entrée » / « porte salon » ?

Si tu regarde bien… Toi tu veux le friendly_name… Il est dans le message, suffit d’aller le chercher… :innocent:

Je verrais bien un truc du genre :

{{trigger.from_state.friendly_name}} 

Alors rien ne s’affiche avec ta proposition.

J’ai aussi testé {{trigger.entity_id.friendly_name}} mais même chose, rien ne s’affiche à la place de cette variable.

Grace à toi, j’ai suivi ton idée, cette piste en cherchant sur internet et j’ai trouvé ceci :

{{ states[trigger.entity_id.split(".")[0]][ trigger.entity_id.split(".")[1]].name }}

Ca vient d’ici, et ça fonctionne !

Ca c’est pour l’ouverture de mes portes. Maintenant je regarde pour le reste (alerte température sous 10°, etc).
Je reviens ici si besoin ou pour partager les soluces et codes définitifs.

Merci, encore :slight_smile:

Depuis tout à l’heure j’essaie pour m’indiquer le niveau de batteri restante de tous mes capteurs avec pile.
Pour simplifier, j’ai duppliqué l’automation pour ne laisser qu’un seul capteur / déclencheur.

alias: Capteurs - Alerte batterie faible - 0% (Dupliquer)
description: ''
trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_entree_battery_level
    below: '30'
condition: []
action:
  - service: notify.notify
    data:
      message: 'La pile d''un des capteurs est vide - {{trigger.to_state}}'
mode: single

Avec {{trigger.to_state}} (qui est pourtant dans la liste des états numérique) la notif arrive mais vide.

J’ai essayé avec trigger.below mais ça indique le seuil que j’ai configuré, pas la valeur de la pile.

Je ne vois aucune autre variable pouvant répondre à ce besoin. Mais j’imagine que ça vient de moi… Mais je vois pas :expressionless:

Auriez-vous une idée ?

Un peu lourd comme code avec des splits…

Ci dessous le code (qui fonctionne :sweat_smile:) :

 {{state_attr(trigger.entity_id, 'friendly_name') }}

Et pourquoi pas simplement :

{{states(trigger.entity_id) }}

?

Parfait, ça remonte le % de batterie restante, merci !

Par contre ton code pour remonter le friendly name ne fonctionne pas.

Chez moi ceci fonctionne :

alias: Capteurs - Alerte batterie faible - 0% (Dupliquer)
description: ''
trigger:
  - platform: numeric_state
    entity_id: sensor.xiaomi_entree_battery_level
    below: '3'
condition: []
action:
  - service: notify.notify
    data:
      message: >-
        La pile de {{ states[trigger.entity_id.split(".")[0]][
        trigger.entity_id.split(".")[1]].name }} est à
        {{states(trigger.entity_id) }} %
mode: single

J’ai essayé {{state_attr(trigger.entity_id, ‹ friendly_name ›) }} mais la zone est vide dans la notif.

… Chez toi :wink:

alias: Notification de mise au point
description: >
  Permet d'afficher une notification pour la mise au point lors de l'utilisation
  du déclencheur(trigger)
trigger:
  - platform: state
    entity_id: input_boolean.hacf
  - platform: numeric_state
    entity_id: input_number.hacf
    above: '10'
condition: []
action:
  - service: persistent_notification.create
    data:
      message: |
        {% for list in trigger %}
          {{list}} : {{trigger[list]}}
        {% endfor %}
        ❤️❤️
        Nom: {{state_attr(trigger.entity_id, 'friendly_name') }}
      title: |
        Le Déclencheur de l'automatisation
      notification_id: '{{ (range(1, 9999)|random) }}'
mode: single

Il y a du y avoir un problème de copier coller, car maintenant ça fonctionne.

Ce que j’ai mis hier sur le forum n’est pas écrit ‹ friendly_name › mais ‹ friendly_name ›

Good. Merci !

J’ai 2 nouvelles questions.
Dans mon automatisation pour les niveaux de pile, j’ai ajouté un déclencheur pour chaque capteur qui a une pile, pour chaque entité *_battery_level

1 - Est-il possible de remplacer ça par une variable, équivalente à *_battery_level ? Pour simplifier l’automation, et surtout prendre en compte chaque futur module qui sera ajouté au système, sans risquer d’oublier de mettre à jour l’automation ?

2 - actuellement, la règle de mon automation se déclenche sous 30% (below) (de batterie). Quand je modifie à la main la valeur via OUTILS DE DEV > ETATS), je reçois la première notif (29% par exemple) mais plus rien quand je mets 28 ou 15% par exemple.
Est-ce normal ? Une fois passé sous le seuil, ça n’est plus pris en compte ?

Même chose pour mon automatisation qui m’alerte si un capteur passe sous 10°c, si ça continue de baisser, je ne reçois plus de nouvelle alerte.

La documentation indique :

It will only fire again, once it has left the defined range and enters it again.

Ce qui se traduit par :

le déclenchement interviendra seulement lorsque la valeur sortira puis reviendra dans la plage.

Donc oui, c’est normal…

Alerter sur Batterie Faible - #12 par papoo

Merci d’utiliser au maximum la recherche :mag_right:

J’ai créé une notification lorsque la consommation d’eau journalière dépasse une certaine valeur mais où devrait-elle apparaître ?

- alias: "Alerte conso eau"
  description: ''
  trigger:
   - platform: numeric_state
     entity_id: sensor.conso_eau_jour
     below: '5'
  condition: []
  action:
  - service: notify.notify
    data:
      message: 'Alerte conso eau - {{trigger.to_state}}'
  mode: single

Je n’utilise pas le service notify.notify mais je viens de tester et la notification est apparue sur mon téléphone (notify.telephone_clemalex).

Donc je dirais que la notification apparaît sur toutes les entités du domaine notify.

Dans le code j’ai remplacé notify.notify par notify.notify.mobile_app_iphone_de_yves mais je n’ai toujours pas de notification (autorisées sur mon téléphone) et la valeur de sensor.conso_eau_jour est à 112

Il y a un notify. de trop…

C’est dans le message que j’ai fait une erreur :angry: dans le le code c’est bien :

  • service: notify.mobile_app_iphone_de_yves

Pour tester le service notify voici le code de mon fichier scripts.yaml

test_notification:
  alias: Test notification
  sequence:
    - service: notify.mobile_app_iphone_de_yves
      data:
        title: "Test notification"
        data:
          push:
            badge: 25

Ensuite dans une carte entities

type: entities
entities:
  - entity: script.test_notification

Lorsque je clique sur Run il ne se passe rien ?

Tu utilises below

Tu souhaites être notifier quand c’est en dessous (below) ou au dessus (above) ?