Hi, I am writing automation and have run into some issues
action:
- choose:
- conditions: "{{ trigger.entity_id == person_doubletake_entity }}"
sequence:
- parallel:
- service: shell_command.play_tts_on_vto #-------(A)-------
data: {}
- sequence:
- wait_for_trigger: #-------(B)-------
- platform: state #-------(E)-------
entity_id:
- switch.ring
to: "on"
- platform: state #-------(C1)-------
entity_id:
- binary_sensor.entrance_door_status
continue_on_timeout: false
timeout:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- conditions: "{{ trigger.entity_id == 'switch.ring' }}"
sequence:
- wait_for_trigger:
- platform: state #-------(D)-------
entity_id:
- !input person_doubletake_entity
- platform: state #-------(C2)-------
entity_id:
- binary_sensor.entrance_door_status
continue_on_timeout: false
timeout:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
default:
- stop: "Door stays closed"
- if: #-------(G)-------
- "{{ wait.trigger.entity_id == 'binary_sensor.entrance_door_status' }}"
then:
- stop: "Doors opened manually"
If automation was triggered by face recognition, play welcome message(A) and wait for door bell (E)
If automation was triggered by door bell, wait for face recognition (D)
If while in wait, doors will be open manually (C1, C2) - Stop whole automation
After that (G) there are more actions before unlocking the doors. It can be continue only after both triggers (ring and face recognition) was triggered
(A) takes few seconds …that’s why I run it parallel, but I’ve run into issue when (B) timeout - it should stop automation, but it continues to (G) from (A). Is there a way to
- stop parallel branch (A) without stop whole automation
- call service A in non blocking manier
(G) condition not working because wait variable is out of scope? How to fix this ?