Hello,
J’ai besoin d’aide pour une automatisation svp.
Je souhaite désactiver une prise lorsque moi ET ma compagne sortons de chez nous et réactiver la prise lorsque moi OU ma compagne rentrons.
J’ai fait ça:
alias: Gestion Prises Suite
description: ''
trigger:
- platform: zone
entity_id: device_tracker.iphone_antho_2
zone: zone.home
event: enter
id: Antho_Home
- platform: zone
entity_id: device_tracker.iphone_mlyne
zone: zone.home
event: enter
id: Mlyne_Home
- platform: zone
entity_id: device_tracker.iphone_mlyne
zone: zone.home
event: leave
id: Mlyne_live
- platform: zone
entity_id: device_tracker.iphone_antho_2
zone: zone.home
event: leave
id: Antho_live
condition: []
action:
- choose:
- conditions:
- condition: or
conditions:
- condition: trigger
id: Antho_Home
- condition: trigger
id: Mlyne_Home
sequence:
- type: turn_on
device_id: 07c025446dd855a9e2053db9b2ced4df
entity_id: switch.shellyplus1pm_441793d49fb4_switch_0
domain: switch
- conditions:
- condition: and
conditions:
- condition: trigger
id: Mlyne_live
- condition: trigger
id: Antho_live
sequence:
- type: turn_off
device_id: 07c025446dd855a9e2053db9b2ced4df
entity_id: switch.shellyplus1pm_441793d49fb4_switch_0
domain: switch
default: []
mode: single
Mais cela ne semble pas fonctionner… Une idée pour quelque chose de fonctionnel et « propre » ?
Merci d’avance
doc
Janvier 11, 2022, 2:53
3
Salut,
Dans la doc Script Syntax - Home Assistant
la syntaxe pour l’action à exécuter dans un bloc choose
est la suivante
- choose:
# IF motion detected
- alias: "Motion detected"
conditions: "{{ trigger.to_state.state == 'on' }}"
sequence:
- service: script.turn_on
target:
entity_id:
- script.slowly_turn_on_front_lights
- script.announce_someone_at_door
Pour toi ça ferait un truc du genre :
alias: Gestion Prises Suite
description: ''
trigger:
- platform: zone
entity_id: device_tracker.iphone_antho_2
zone: zone.home
event: enter
id: Antho_Home
- platform: zone
entity_id: device_tracker.iphone_mlyne
zone: zone.home
event: enter
id: Mlyne_Home
- platform: zone
entity_id: device_tracker.iphone_mlyne
zone: zone.home
event: leave
id: Mlyne_live
- platform: zone
entity_id: device_tracker.iphone_antho_2
zone: zone.home
event: leave
id: Antho_live
condition: []
action:
- choose:
- conditions:
- condition: or
conditions:
- condition: trigger
id: Antho_Home
- condition: trigger
id: Mlyne_Home
sequence:
- service: switch.turn_on
- target:
entity_id:
- switch.shellyplus1pm_441793d49fb4_switch_0
- conditions:
- condition: and
conditions:
- condition: trigger
id: Mlyne_live
- condition: trigger
id: Antho_live
sequence:
- service: switch.turn_on
- target:
entity_id:
- switch.shellyplus1pm_441793d49fb4_switch_0
default: []
mode: single
J’ai pas testé, mais ca correspond à la doc.
Concernant le service à appeler, j’utilise ici switch.turn_on
car ton entité à allumer est un switch. D’une manière générale, toutes les entités de base ont des services que tu peux appeler. Pour en savoir plus, voir les developer tools Developer Tools - Home Assistant ou la doc Documentation - Home Assistant
Herbs
Janvier 11, 2022, 3:21
4
Tu dois aussi pouvoir mettre tes 2 trackers dans un groupe, et te servir de l’état du groupe comme trigger.
people:
name: People
icon: mdi:account-group
entities:
- device_tracker.iphone_mlyne
- device_tracker.iphone_antho_2
Après pour l’automatisation tu dois pouvoir faire un truc comme ça :
alias: Gestion Prises Suite
description: ''
trigger:
- platform: state
entity_id: group.people
action:
- choose:
- conditions: "{{ is_state('group.people', 'home') }}"
sequence:
- service: switch.turn_on
target:
entity_id: switch.shellyplus1pm_441793d49fb4_switch_0
- choose:
- conditions: "{{ is_state('group.people', 'not_home') }}"
sequence:
- service: switch.turn_off
target:
entity_id: switch.shellyplus1pm_441793d49fb4_switch_0
mode: single
Pas mal l’idée du groupe mais ça marche que pour une des deux action car j’ai un OU pour l’autre.
Genre si les deux not_home alors off et si un des deux home alors on.
Je sais pas si je suis clair ^^
Herbs
Janvier 11, 2022, 3:30
6
SI si très clair même,
Mais le groupe passera à « home » si au moins une des 2 entités l’est également.
Et il sera « not_home » uniquement si les 2 entités le sont :
Donc plus la peine de gérer le « or » ou le « and » dans l’automation
Ok top, j’ai mis en place, je testerais ça. En tous cas le not_home fonctionne, je verrais en rentrant le home.
Par contre je vois pas ou est la différence entre la gestion home et not_home…
Herbs
Janvier 11, 2022, 4:09
8
Tous les changements d’état du groupe vont « trigger » l’automation si tu ne lui dis pas « d’écouter » un état en particulier.
Ce qu’on fait avec ça
trigger:
- platform: state
entity_id: group.people
Les « choose » se chargeront d’appeler le service adéquat en fonction de l’état du groupe.
Après il existe tellement de façon différentes de mettre en place ton automation, que tu risques d’avoir encore 1 ou 2 propositions d’ici ce soir
Mais l’idée du groupe te permet au moins de la simplifier un minimum.
Tu peux aussi appeler le service via une template avec un code du style :
alias: Gestion Prises Suite
description: ''
trigger:
- platform: state
entity_id: group.people
action:
- service: switch.turn_{{ 'on' if is_state('group.people', 'home') else 'off'}}
target:
entity_id: switch.shellyplus1pm_441793d49fb4_switch_0
mode: single