blueprint:
  name: Sincroniza luz e interruptor (dois sentidos)
  description: >-
    Espelha uma luz e um interruptor nos dois sentidos: ligar um liga o outro, desligar um
    desliga o outro. Cada lado só age se o outro estiver diferente, e é isso que impede o
    loop. Serve quando a luz é um light.* e o interruptor físico é um switch.*.
  domain: automation
  input:
    luz:
      name: Luz
      selector:
        entity:
          domain: light
    interruptor:
      name: Interruptor
      selector:
        entity:
          domain: switch
mode: queued
max: 5
variables:
  luz: !input luz
  interruptor: !input interruptor
triggers:
  - trigger: state
    entity_id: !input luz
    to:
      - 'on'
      - 'off'
    id: pela_luz
  - trigger: state
    entity_id: !input interruptor
    to:
      - 'on'
      - 'off'
    id: pelo_interruptor
actions:
  - choose:
      - conditions:
          - condition: trigger
            id: pela_luz
          - condition: template
            value_template: "{{ states(interruptor) != states(luz) }}"
        sequence:
          - action: "switch.turn_{{ trigger.to_state.state }}"
            target:
              entity_id: !input interruptor
      - conditions:
          - condition: trigger
            id: pelo_interruptor
          - condition: template
            value_template: "{{ states(luz) != states(interruptor) }}"
        sequence:
          - action: "light.turn_{{ trigger.to_state.state }}"
            target:
              entity_id: !input luz
