This nugget was very useful, thank you! With this I can now differentiate the 3 ways a device’s state was changed.
Here is a sample implementation using the choose action:
trigger:
- platform: state
entity_id:
- switch.office
condition: []
action:
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.context.id != none }}'
- condition: template
value_template: '{{ trigger.to_state.context.parent_id == none }}'
- condition: template
value_template: '{{ trigger.to_state.context.user_id == none }}'
sequence:
- service: system_log.write
data:
level: debug
message: Physical device
default: []
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.context.id != none }}'
- condition: template
value_template: '{{ trigger.to_state.context.parent_id == none }}'
- condition: template
value_template: '{{ trigger.to_state.context.user_id != none }}'
sequence:
- service: system_log.write
data:
level: debug
message: HA user interface
default: []
- choose:
- conditions:
- condition: template
value_template: '{{ trigger.to_state.context.id != none }}'
- condition: template
value_template: '{{ trigger.to_state.context.parent_id != none }}'
- condition: template
value_template: '{{ trigger.to_state.context.user_id == none }}'
sequence:
- service: system_log.write
data:
level: debug
message: HA automation
default: []
mode: restart