Automation qui ne se déclenche pas

bonjour

je pense avoir un probleme de compréhension sur la logique d’exécution de cette automation,
en humain je voudrais:

SI capteur poubelle passe a able
A partir de 12H

réaliser les action.

voici l’automation.

alias: poubelle bleue
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.poubelle_bleue
    from: unable
    to: able
conditions:
  - condition: time
    after: "12:00:00"
actions:
  - type: turn_on
    device_id: 44293f2433d71f91ea252a746b0edd79
    entity_id: 47492ab957741284ba3ec2ec5e3b6031
    domain: light
  - action: notify.mobile_app_2312dra50g
    metadata: {}
    data:
      message: Sortir la Poubelle Bleue
  - action: notify.mobile_app_m2003j15sc
    metadata: {}
    data:
      message: Sortir la Poubelle Bleue
mode: single

j’ai fait cette automation via l’interface graphique.

mais en l’état actuelle, rien ne se passe.

Une idée?

Merci d’avance

Bonjour,
c’est toi qui as fais, c’est état unable/able ?

Et la logique n’est pas bonne. Tu dois vérifier si le sensor est able ( :thinking:), a midi. Ce qui t’intéresse c’est midi donc ça doit être ton trigger.

1 « J'aime »

Non je ne crois si c’est après midi ça peut être a 12h30 ou 17h

Par contre c’est quoi cet etet ‹ ‹ able › › :rofl:

Je m’attendrais a voir plutôt un true/false

Il retourne quoi ton se sor dans les outils développeur états ?

1 « J'aime »

le sensor est un template:

{% set t = now() %}
{% set midnight = today_at() %}
{% set event = state_attr('calendar.poubelle_bleue', 'start_time') | as_datetime | as_local %}
{% set delta = event - midnight %}

{% if is_state('input_boolean.poubelle_bleue_sortie', 'on') %}
  Sortie
{% elif delta.days == 0 %}
 Aujourd'hui
{% elif delta.days == 1 %}
  Demain
{% else %}
  Dans {{ delta.days }} jours
{% endif %}

c’est l’UI graphique qui m’a proposé ces état, et comme en lancant manuellement l’automation cela a fonctioné, je ne me suis pas posé plus de question…

Où l ui graphique ta donner ces etats ?

Je ne reviens pas sur ton trigger « able », ce sont deux problèmes différents, mais attention à ce que tu veux dire par « à partir de 12h »

Il faut bien comprendre comment sont faites les automatisation sous HA pour ne pas avoir de mauvaises surprise.

J’essaie de faire court:

  • triggers : ce sont les déclencheurs. N’importe laquelle de ces condition va déclencher ton automatisation. C’est ça qui va « réveiller » ta machine…

  • Conditions: ce sont des filtres. Il faut que TOUTES les conditions soient vraies au moment du trigger pour que l’automatisation s’execute, si au moins une des condition n’est pas vraie l’automatisation s’arrête définitivement, (enfin jusqu’au prochain trigger…).

  • Actions: c’est la suite d’événement à réaliser.

La manière dont tu as codé c’est donc:
Lorsque le sensor passe à « able »

  • si c’est après 12h => actions.
  • si c’est avant 12h, l’automatisation s’arrête (jusqu’au prochain passage à « able »).

Est-ce bien ce que tu voulais? En général quand les automatisations ne s’exécutent pas c’est une confusion entre trigger et conditions… Avec ton code si le passage à ‹ able › a lieu le matin, il est normal que l’automatisation ne se déclenche jamais. (Ou plutôt elle se déclenche et s’arrête aussitôt sans exécuter les actions…)

Si tu voulais « attendre midi » pour faire tes actions, deux solutions:

  • solution1
    • trigger : passage à « able »
    • condition : pas de condition
    • action: attendre 12h puis faire les autres actions

inconvénient, il peut y avoir une longue attente entre ton trigger et la réalisation des actions, problématique en cas de reset HA

  • solution2
    • trigger: 12h
    • condition: état = able
    • actions: faire tes actions

inconvénient, il faut que l’état reste à « able » jusqu’à midi sinon ça ne marche pas.

Si tu voulais faire tes actions uniquement l’après midi (et pas juste à 12h):
3eme possibilité (mix des deux), faire deux automatisations:

  • une première sur la detection de « able » qui gère un booléen (celle ci n’a de sens que si ce passage à « able » est transitoire, si l’état reste stable tu peux simplement uniquement la 2 eme automatisation et remplacer « booléen » et « 1 » par « état » et « able »):

    • trigger : passage à « able »
    • condition : pas de condition
    • action: mettre un booléen à 1
  • une 2eme à 12h ou au passage du booléen à 1:

    • 2 triggers (n’importe lequel déclenche):
      • 12h (pour le cas ou le passage à able a eu lieu le matin)
      • passage du booléen à 1 (pour le cas ou le passage à « able » a lieu après 12h)
    • 2 conditions (qui doivent être vraies toutes les deux):
      • booléen = 1
      • heure > 12h
    • actions: faire tes actions puis mettre booléen à 0

C’est une gymnastique, mais quand on a pigé le sens de trigger et condition, on ne se fait plus pieger…

1 « J'aime »

honnetement je ne suis meme plus certain de ca, je me demande si je n’ai pas recopié un truc trouvé qqpart, mais il y a surement mieux a faire.

Citation

Merci pour cette explication, globalement le sensor passe a « aujourd’hui » se declanche a minuit et reste stable pour 24H
je souhaite simplement que les action a realiser se produise a midi

si je comprend la logique en l’état actuel, comme il n’est pas midi au moment du trigger, rien ne se passe. et quand midi arrive, l’automation n’est pas dans un état d’attente pour se dire « top depart il est midi » mais plutot dans l’état « fini il ne s’est rien passé ce matin au trigger »

donc d’apres la logique le trigger est ; A MIDI

chaque jour l’automation declanche a midi et SI la condition est létat du sensor « aujourd’hui » alors les actions se realisent.

J’ai bon? j’éssaie ca demain en rentrant de congé.
Merci

1 « J'aime »

Salut

Oui le principe c’est ça. Il faut par contre que tu récupères les bonne valeur du sensor à mettre en condition sinon ça ne fonctionnera pas.

2 « J'aime »