Premier Scénario AUTOMATION

Bonjour,

je suis nouveau sous homeassistant je viens de l’installer il y a presque une semaine. Avant j’étais sous jeedom.
Bref, je voudrais créer un Automation basé sur un device RTE Tempo.
Dans ce device, j’ai une entity (couleur, dont les attributs peuvent être Bleu, Blanc ou Rouge)

Je voudrais créer une scénario qui allume la lampe du salon de 6h30 à 6h45 (avec la couleur indiquée par le jour en cours)

Dans trigger, je mets l’heure : 06:30:00
Dans le And if :
entity : RTE Tempo Couleur actuelle
Attribute : Attribution
State : Blanc

Then do : je sélectionne ma lampe et sa couleur

Si je teste la condition (le and if) en faisant un clic droit « Test », HA m’indique : Condition did not pass
Pourtant à l’heure du clic, on est bien en jour Blanc !!!

Qu’est-ce que je fais mal ?

Merci pour votre aide.

Ensuite comment indiquer que l’on doit éteindre la lampe 15 min après l’avoir allumée ?

Merci.

Bonjour.

difficile à dire sans plus de détail…

Je dirais qu’il y a plusieurs pistes:

  • faire une recherche sur le sujet, car tu n’es pas le seul à faire des tests sur la couleur du jour…

  • préciser comment tu récupères cette couleur du jour car il n’est pas exclu non plus que l’un d’entre nous utilise exactement la même solution (par exemple moi j’ai un zlinky de lixee… voir ma description…)

  • coller ton automatisme qu’on puisse voir ta syntaxe et éventuellement la corriger (au passage, utilise le texte formatté pour la lisibilité

1 « J'aime »

Voilà mon scenario :

Sachant que le RTE visuel a ces propriétés là :

Capture d'écran 2024-03-13 143044

Pour tester le scénario, je programme l’allumage à 14:50

Deux trucs:

  • enlève « attribution » et ne met rien dans ce champ car c’est l’état que tu veux tester.
    image

si ça ne marche pas

  • essaie 'Blanc' à la place de Blanc pour voir si ta condition passe cette fois.

Et pour envoyer ton code tu cliques sur les 3 petits points en haut / modifier en YAML

Tu copies le code obtenu et tu le colles avec le mode texte formaté comme indiqué au dessus… ce sera plus simple de le copier chez nous pour le tester le cas échéant…

exemple:

alias: TEMPO - notification demain jour rouge
description: Les Alexas (Salon SdB Cuisine) annoncent que demain sera rouge vers 20h
trigger:
  - platform: state
    entity_id:
      - input_text.couleur_demain
    to: ROUGE
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - condition: time
    after: "19:30:00"
    before: "20:30:00"
action:
  - service: notify.alexa_media
    data:
      message: Attention ! Demain sera un jour rouge.
      target:
        - media_player.echo_dot_jeanne
        - media_player.echo_jeanne
        - media_player.jeanne_echo_dot
      data:
        type: tts
      title: Annonce jour rouge
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: notify.alexa_media
    data:
      message: Attention ! Demain sera un jour rouge.
      target:
        - media_player.echo_dot_jeanne
        - media_player.echo_jeanne
        - media_player.jeanne_echo_dot
      data:
        type: tts
      title: Annonce jour rouge
mode: single

Et manip inverse pour récuperer du code sur le forum: tu copies le YMAL puis tu colles le YAML dans l’editeur puis tu cliques sur ‹ modifier dans l’editeur visuel › pour l’importer chez toi…

Merci, en enlevant le champ attribution cela fonctionne. En fait ce n’est pas clair, car quand on passe par le visuel, il nous demande de choisir entre attribution et device class; on a l’impression qu’il faut forcement choisir un des deux.

Pour lui dire d’éteindre au bout de 15 min, on peut faire qqchose dans le trigger ou pas ?

De multiples solutions s’offrent à toi:
1/ La plus simple dans la même automatisation, dans les actions (surtout pas dans le trigger) tu met la sequence:

  • Lampe ON
  • attente 15 min (delay, cherche dans les actions tu vas trouver).
  • lampe OFF

2/ Remplacer le delay par un timer (c’est plus complexe mais plus robuste… un peu de recherche dans le forum…), mais à ce stade ce n’est pas indispensable.

3/ Créer une deuxième automatisation avec un autre trigger:
trigger: si lumière ON depuis 15min
actions: Lumière OFF

Je ne comprends pas comment on peut faire deux actions dans le même automation !!!

Après le trigger, j’ai le choix entre un bloc and et un bloc Then do.

Mais comment on ajoute un bloc and APRES le bloque Then ???

C’est pas très intuitif comme programmation.

Pour moi l’algo est simple :

Si 6:45
Alors
Si RTE=BLANC alors allume lampe en BLanc
Si RTE=Bleu alors allume lampe en Bleu
Si RTE=Rougealors allume lampe en Rouge

Comment on reproduit cela avec automation ?
Ca me parait tou bête, mais je n’ai aucune idée de quoi faire dans l’interface de home assistant.

quelques recherches là:

et concernant les automatisation, le concept est assez simple une fois qu’on sait de quoi on parle.

  • le trigger déclenche (when)
  • les conditions permettent d’arrêter l’automatisation dans les cas où le trigger déclenche « trop » (and if)
  • les actions c’est la liste des actions (ou script) que tu voudrais faire faire à ton automatisation (then do) c’est dans ce champ qu’il faut mettre tout le contenu que tu veux faire… (y compris des syntaxes if then else, etc…)

En effet ça paraît simple et l’UI pour faire des automation dans HA est vraiment intuitif.
Mais comme l’a dit @BBE, c’est plus facile pour nous de t’aider si tu nous transmet le yaml de ton automation :slight_smile:
A première vu sur cette image


j’imagine que le soucis était que le « and if » ne devrait pas se trouver dans « and if » effectivement mais dans « then do »
Puisque « when » et « and if » vont définir respectivement ce qui va DECLENCHER ton automation et si ELLE DOIT effectuer une action
Alors que toi tu veux que ton automation SOIT déclencher et que si X condion alors Y paramètre.
Tu dois donc définir « when » pour qu’elle se déclanche. Rien dans « and if » parceque tu veux qu’elle effectue une action quelque soit la situation puis dans l’action a réaliser, là, tu lui indique si blanc alors X, si bleu alors Y, si rouge alors Z.

Voila j’espère que ca t’aide un peut a comprendre comment fonctionnent les automation. En tout cas bienvenue sur HA :wink:

1 « J'aime »

Et bien @BBE on a répondu en même temps ^^

1 « J'aime »

L’algo est simple.

  • Ton déclencheur c’est l’heure.
    donc ton trigger c’est bien celui que tu as fait.

  • Tu n’as pas de conditions (tu veux que systématiquement ton automatisation se lance à 6h45)
    Donc tu laisse le champ des conditions « And if » (optional) vide mais tu pourrais mettre ici « si lundi, mardi, mercredi, jeudi, vendredi » dans les conditions pour ne pas allumer à 6h45 le week end…

  • Ton action à réaliser (champ « Then do ») est la suivante:
    Si RTE=BLANC alors allume lampe en BLanc
    Sinon si RTE=Bleu alors allume lampe en Bleu
    Sinon si RTE=Rouge alors allume lampe en Rouge
    il faut que tu regardes dans l’interface les blocs de constructions:


    en particulier le choose pour ton cas.
    tu vas enchainer des choose et des lumière ON.

Ok, je vais regarder MAIS
Je n’avais pas compris que le premier bloc and if marchait avec le trigger !!!
Ensuite que voulez-vous que j’envoie comme Yaml, sachant que je n’arrivais pas à faire mon automation avec l’UI ???
Enfin, les tutos je les ai lus, mais AUCUN d’entre aux n’abordent l’automation avec l’UI, ou alors j’'ai raté des pages …

J’essaye avec le choose.

Le problème des tutos et de l’UI c’est que l’UI évolue très souvent, donc faire des tutos avec l’UI est vite obsolette…

Et tu peux coller du code YAML non fini…

voici une automatisation vide:

description: ""
mode: single
trigger: []
condition: []
action: []

et c’est écrit noir sur blanc et il y a les petits « ? » pour acceder à la doc:

1 « J'aime »

voilà ce que cela donne maintenant en yaml.

alias: Test Lampe RTE
description: ""
trigger:
  - platform: time_pattern
    hours: "6"
    minutes: "30"
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Bleu
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 0
                - 0
                - 255
            target:
              area_id: living_room
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Blanc
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 255
                - 255
            target:
              area_id: living_room
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Rouge
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 0
                - 0
            target:
              area_id: living_room
mode: single

oui, merci j’ai cliqué sur le ?, mais où vois-tu que cela marche de concert avec le trigger ?
Pour moi ce if, avait la meme valeur que ceux du choose !!!

Pas facile d’intégrer le concept, je vais y arriver, mais c’est vraiment loin d’être aussi intuitif que les blocs de jeedom. En tout cas c’est aps du tout la même façon d’appréhender les choses.

Attention tu n’as pas le bon trigger:
tu as

  - platform: time_pattern
    hours: "6"
    minutes: "30"

donc ton automatisation se lance toutes les 6h30

alors qu’il te faut :

  - platform: time
    at: "06:30:00"

pour que ton automatisations se lance à 6h30…

ok, je m’en vais modifier …

Maintenant reste à trouver pour allumes juste 15 min … Encore 1 ou 2 heures de recherches et ça devrait être bon :wink:

Merci pour votre patience en tout cas.

Ils ont changé l’interface il y a quelques mois…

Avant ça s’appellait trigger / conditions / actions
Maintenant dans un souci de simplicité When / And IF / Then Do

Mais c’est moins clair en fait je suis tout a fait d’accord.

Mais on ne se fait coincer qu’une fois et ensuite c’est bon…

alias: Test Lampe RTE
description: ""
trigger:
  - platform: time_pattern
    hours: "6"
    minutes: "30"
  - platform: time
    at: "06:30:00"
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Bleu
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 0
                - 0
                - 255
            target:
              area_id: living_room
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Blanc
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 255
                - 255
            target:
              area_id: living_room
      - conditions:
          - condition: state
            entity_id: sensor.rte_tempo_couleur_actuelle
            state: Rouge
        sequence:
          - service: light.turn_on
            metadata: {}
            data:
              rgb_color:
                - 255
                - 0
                - 0
            target:
              area_id: living_room
  - delay:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
  - service: light.turn_off
    metadata: {}
    target:
      area_id: living_room
    data: {}
mode: single