Automation condition "not"

Bonjour,

J’ai fait cette automation qui me notifie sur telegram lors des changements de régime du tempo.

alias: Tempo - Changement couleur demain
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.rte_tempo_prochaine_couleur
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: sensor.rte_tempo_prochaine_couleur
        state: unavailable
action:
  - action: telegram_bot.send_message
    metadata: {}
    data:
      title: Changement Tempo demain
      message: Demain passage en {{states('sensor.rte_tempo_prochaine_couleur') }}
mode: single

Jusque là…rien d’extraordinaire :slight_smile: j’ai essayé d’utiliser la condition « not ». car de 6h à 6h35 la couleur est en unavailable pour ne pas être notifié.

Cependant, l’automation est déclenchée :confused:

Merci pour votre aide.

Tu peux éventuellement le tenter comme suit :

alias: Tempo - Changement couleur demain
description: ""
trigger:
  - platform: state
    entity_id: sensor.rte_tempo_prochaine_couleur
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: sensor.rte_tempo_prochaine_couleur
        state: '!=',
        state_value: '{{ states.sensor.rte_tempo_prochaine_couleur.last_changed }}'
      - condition: state
        entity_id: sensor.rte_tempo_prochaine_couleur
        state: '!=',
        state_value: 'unavailable'
action:
  # ...

De cette façon, si le double critère « value changed » ET value différente de « unavailable » alors tu seras notifié, sinon non.

Je pense que c’est moins complexe qu’une double négation.

A voir si ça répond à ton besoin

oui ça répondrai bien mais y’a un truc qui cloche car je peux pas sauvegarder dans l’éditeur YAML d’automation.
je doute un peu de la syntaxe : Conditions - Home Assistant

Merci mais

Message malformed: extra keys not allowed @ data['condition'][0]['conditions'][0]['state_value']

Effectivement je n’ai pas testé la syntaxe, juste donné un exemple « type ».
Ce qui ne va pas, c’est l’utilisation de state + state_value (qui n’existe pas).

Il faut utiliser l’un ou l’autre et dans le second cas, c’est alors un « Numeric_state » (avec un « value_template ») si on cherche une valeur numérique.

Peut-être qu’ainsi cela fonctionnera mieux ?

alias: Tempo - Changement couleur demain
description: ""
trigger:
  - platform: state
    entity_id: sensor.rte_tempo_prochaine_couleur
condition:
  - condition: and
    conditions:
      - condition: template
        value_template: "{{ states('sensor.rte_tempo_prochaine_couleur') != states.sensor.rte_tempo_prochaine_couleur.last_changed }}"
      - condition: state
        entity_id: sensor.rte_tempo_prochaine_couleur
        state: 'unavailable'
action:
  # ...

PS: cela reste une réponse de « principe » et pas nécessairement une solution à copier/coller .
Il faut toujours vérifier/adapter selon le contexte et son propre environnement.

oui, je teste mais je n’ai pas encore toutes les clefs :confused:
je pense que c’est la condition inverse qu’il faut

      - condition: state
        entity_id: sensor.rte_tempo_prochaine_couleur
        state: unavailable

sinon la il se déclenchera que sur un changement vers un unavailable (inverse du comportement souhaité)

donc :

      - condition: template
        value_template: >-
          {{ states('sensor.rte_tempo_prochaine_couleur') != 'unavailable' }}