Automatisation multi-déclencheurs

Bonjour,

Mon problème est très simple :
Je souhaite lancer un script lorsque le soleil se couche et que la surveillance est activée.
Cela fonctionne parfaitement avec mon automatisation suivante :

alias: Simu-Présence-Abat-jour-Bureau
description: ""
triggers:
  - trigger: state
    entity_id:
      - sun.sun
    from: above_horizon
    to: below_horizon
conditions:
  - condition: state
    entity_id: alarm_control_panel.surveillance_maison
    state: armed_away
actions:
  - action: script.simu_eclairage_bureau
    data: {}
mode: single


Mais je souhaite également que l’inverse soit possible : Lorsque j’active la surveillance et que le soleil est couché alors je lance mon script. Bien évidement je pourrais faire une deuxième automatisation mais je souhaite optimiser et donc l’intégrer dans une seule automatisation.
Comment dois-je procéder ?
Désolé mais je débute avec HA et de temps en temps je cale… :hugs:

Merci
Dominic

System Information

version core-2025.1.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.1
os_name Linux
os_version 6.6.66-haos
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 4999
Installed Version 2.0.2
Stage running
Available Repositories 1499
Downloaded Repositories 26
Home Assistant Cloud
logged_in true
subscription_expiration 5 décembre 2025 à 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled true
google_enabled true
cloud_ice_servers_enabled true
remote_server eu-central-1-15.ui.nabu.casa
certificate_status ready
instance_id 5a2d97ffc9d94833b6b59de08a28033a
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 14.1
update_channel stable
supervisor_version supervisor-2024.12.3
agent_version 1.6.0
docker_version 27.2.0
disk_total 28.0 GB
disk_used 7.1 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board green
supervisor_api ok
version_api ok
installed_addons Get HACS (1.3.1), Samba Backup (5.2.0), Advanced SSH & Web Terminal (20.0.0), Z-Wave JS (0.9.0), Z-Wave JS UI (3.18.0), File editor (5.8.0)
Dashboards
dashboards 6
resources 17
views 29
mode storage
Recorder
oldest_recorder_run 27 décembre 2024 à 20:01
current_recorder_run 10 janvier 2025 à 09:43
estimated_db_size 142.02 MiB
database_engine sqlite
database_version 3.47.1

Salut

Optimiser c’est pas forcement, le cas … Tu limites sans doute le nombre d’automatisations, mais d’un autre coté tu les rends plus complexes (sur 2 triggers différents, c’est pas forcément un gros impact mais on a vite fait d’avoir une automatisation bien plus poilue)

Tu peux ajouter un ID sur chaque trigger et utiliser cet ID dans les conditions (=> déclenché par)

1 « J'aime »

Bonjour
Tu as une explication assez détaillée ici :
Utilisez les triggers d'automatisation Home Assistant pour gagner du temps.

Merci pour vos réponses mais pas certain que les trigger ID soient la solution car je n’ai qu’une seule est même action (donc pas à Choisir), ce sont les déclencheurs qui peuvent-être dans un ordre différents.

Si
le soleil se couche
Et si
la surveillance est activée
Alors
lancer le script

ou

Si
J’active la surveillance
Et si
le soleil est couché
Alors
lancer le script (le même)

C’est cette deuxième partie que je ne sais pas intégrer (ou…) mais pas sûr qu’il faille utiliser les triggers ID dans ce cas.

Merci

Salut,

Je pense que l’option choisir est justement la bonne.
Tu peux combiner les conditions dans chaque choix
Tu gardes les déclencheurs indifférenciés

  • soleil qui se couche
  • activation de l’alarme
    Tu créer selon ta préférence
  • 1 choix avec 2 options (tes 2 blocs A, B de ton expresion A OU B ci-dessus) qui lance le même script
  • tu fais un il/elif qui lancent les scripts.
1 « J'aime »

Salut

Tu as 2 triggers (Quand):
Le soleil se couche
J’active la surveillance

2 conditions (Et si):
Le soleil est couché
La surveillance est activée

1 action:
Simulation éclairage

C’est aussi simple que ça. Je ne sais pas pourquoi mais en ce moment tout le monde veut mettre des triggers.id partout :grin:

Hello,

Parce que c’est plus simple d’avoir la logique en place si on complexifie l’automation, de mon côté je fais plus que ça même pour les trucs les plus basiques :wink:

Après on peut rester dans le simple en effet :slight_smile:
cdt

1 « J'aime »

Merci Tochy,

Effectivement pourquoi faire simple quand on peut faire compliqué :hugs:

J’avais pensais faire comme tu le préconises mais venant de Eedomus et sa logique sur les déclencheurs, j’avais un doute sur le bon déroulement de l’automatisme.

Je vais faire cela et tester avec d’autres déclencheurs (car attendre la nuit…).

Merci
Dominic

Voilà ce que j’obtiens :

alias: Simu-Présence-Abat-jour-Bureau
description: ""
triggers:
  - trigger: state
    entity_id:
      - sun.sun
    from: above_horizon
    to: below_horizon
  - trigger: state
    entity_id:
      - alarm_control_panel.surveillance_maison
    from: disarmed
    to: armed_away
conditions:
  - condition: state
    entity_id: alarm_control_panel.surveillance_maison
    state: armed_away
  - condition: state
    entity_id: sun.sun
    state: below_horizon
actions:
  - action: script.simu_eclairage_bureau
    data: {}
mode: single

Je vais tester

C’est ok. Cela fonctionne comme voulu.
C’est aussi simple que cela.

Merci

Dominic

Oui effectivement ça marche, mais on répète la condition identique au trigger, perso j’aime pas et si on revient sur l’automatisation pour ajouter des trigger ou des actions c’est plus facile Question de préférence, chacun fait comme il veut, perso je prèfère les ID, mais le principal c’est que ça fonctionne :

alias: Simu-Présence-Abat-jour-Bureau
description: ""
triggers:
  - trigger: state
    entity_id:
      - sun.sun
    from: above_horizon
    to: below_horizon
    id: "SUN OFF #"
  - trigger: state
    entity_id:
      - alarm_control_panel.surveillance_maison
    from: disarmed
    to: armed_away
    id: "ALARM ON #"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - "SUN OFF #"
              - "ALARM ON #"
        sequence:
          - action: script.simu_eclairage_bureau
            data: {}
mode: single

1 « J'aime »

Effectivement c’est à priori une autre solution. Je la garde sous le coude.
Je vais même la tester dès que j’ai un moment.

Merci

Pour moi la condition n’est pas bonne dans ton cas.

- condition: trigger
            id:
              - "SUN OFF #"
              - "ALARM ON #"

Cela teste si ça a été déclenché par les 2 triggers (qui plus est en même temps) et non pas l’état du soleil ou de l’alarme

Edit: c’est bien une condition OU et pas ET dans ce cas donc ne pas tenir compte du en même temps.

1 « J'aime »

Exacte, un seul trigger à la fois.

Merci

Bonjour
Que veux tu dire ? que ce que j’ai écrit signifie qu’il faudra obligatoirement les deux trigger pour que l’automatisation se déclenche ?

Je veux dire que ta condition teste juste si ça a été déclenché par soleil ou par alarm (et non pas les deux en même temps comme je l’ai dit précédemment).

Mais ça ne vérifie pas en cas de déclenchement par soleil si l’alarme est active ou pas et de même si déclenchement par l’alarme ça ne vérifie pas si le soleil est couché.

Ta condition vérifie juste si un trigger ou l’autre a déclenché l’automatisation

oui je ne comprenais pas mais Ok j’admets avoir lu un peu vite l’énoncé de la demande qui était logique, toute mes excuses
et dans ce cas ajouter une condition supplémentaire avec les id présente peu d’interet
mais comme je veux aller au bout

alias: Simu-Présence-Abat-jour-Bureau
description: ""
triggers:
  - trigger: state
    entity_id:
      - sun.sun
    from: above_horizon
    to: below_horizon
    id: "SUN OFF #"
  - trigger: state
    entity_id:
      - alarm_control_panel.surveillance_maison
    from: disarmed
    to: armed_away
    id: "ALARM ON #"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - "SUN OFF #"
              - condition: trigger
                id:
                  - "ALARM ON #"
        sequence:
          - action: script.simu_eclairage_bureau
            data: {}
mode: single

Pas besoin de t’excuser, on lit toujours tous trop vite moi le premier puisque j’ai corrigé la première réponse que je t’avais fait.

D’ailleurs je pensais que ça :

choose:
  - conditions:
      - condition: trigger
        id:
          - chambre
          - bureau

Et ça :

choose:
  - conditions:
      - condition: trigger
        id:
          - chambre
      - condition: trigger
        id:
          - bureau

Etait la même chose puisque pas de condition OU de spécifiée mais non.
La première est bien une condition OU l’autre a true
Et la seconde est les deux conditions a true

C’est pour ça que j’utilise les ID dans pratiquement toutes mes automatisations

Quand j’ai compris l’énoncé :wink: et que je sais ce que je veux faire, quand j’ouvre l’UI ça me paraît plus lisible
Et je peux facilement ajouter un Inter Debug pour faire des tests