Sensor que informa se a luz foi acionado por automação, Interruptor ou algum usuario (dashboard).
Usando:
<<: &triggered_by
e
<<: *triggered_by
Não é necessario repetir o state para cada sensor.
template.yaml
- trigger:
- platform: state
entity_id: light.quarto
to: ["on", "off"]
sensor:
- name: "Quarto acionado por"
<<: &acionado_por
state: >
{% set c_id = trigger.to_state.context.id %}
{% set c_parent = trigger.to_state.context.parent_id %}
{% set c_user = trigger.to_state.context.user_id %}
{% set light_state = trigger.to_state.state %}
{% set p = states.person | selectattr('attributes.user_id', 'eq', trigger.to_state.context.user_id) | list %}
{% if c_id != none and c_parent == none and c_user == none %}
Interruptor {{light_state}}
{% elif c_id != none and c_parent == none and c_user != none %}
{{ p[0].attributes.friendly_name|title if p | count == 1 else 'unknown' }} {{light_state}}
{% elif c_id != none and c_parent != none and c_user == none %}
Automação {{light_state}}
{% else %}
Desconhecido {{light_state}}
{% endif %}
- trigger:
- platform: state
entity_id: light.sanca_sala
to: ["on", "off"]
sensor:
- name: "Sanca Sala acionado por"
<<: *acionado_por
- trigger:
- platform: state
entity_id: light.cozinha
to: ["on", "off"]
sensor:
- name: "Cozinha acionado por"
<<: *acionado_por