Criar uma automação para ligar entidade assistente após acionamento de 2 switch

Tenho um Switch com 2 botões, um está ligado na energia normal, e o outro é virtual (físico que liga uma lâmpada inteligente, sem conexão direta com o cabo de energia, pois uma lâmpada é smart e a outra não). Consegui criar uma entidade assistente para apertar um botão e acender as duas. (botão “manual” para acionar a automação)

O que estou quebrando a cabeça é se eu ligar as duas lâmpadas (por exemplo fisicamente) o botão da entidade assistente fique acionado. E quando desligar as duas, desligue o botão.

Se eu coloco as duas entidades dos switchs no trigger, aciona imediatamente as duas lâmpadas, mas devem ser independentes até EU acionar a outra e dai sim acionar a entidade assistente (ativando o botão).

Tentei colocar no “E se” mas não aciona a a entidade assistente.

Até descobri um modo de fazer isso mas teria que criar 4 automações (duas para ligar e 2 para desligar).

Pergunto pois queria aprender a fazer isso " de modo único".

Cria um grupo com os 2 switch.
Quando 1 ou os 2 switch estiverem ligados o grupo vai estar ligado.
Ao ligar o grupo os 2 switch ligam e ao desligar os 2 switch desligam.

@Walber se eu entendi corretamente acho que isso ainda não soluciona.

O dele só tem um switch e uma lâmpada. Ele poderia até mudar tipo do switch para lâmpada, e criar o grupo. Mas se ele ligasse o grupo pelo app e depois apertasse o interruptor a luz não ia desligar.

@leufrasiojunior existem vários tópicos aqui no fórum sobre paralelo virtual. O seu caso é um pouco diferente mas algum exemplo deve te atender.

O que você está descrevendo é um desafio normal de paralelo virtual. Pois digamos queixemos o estado de um sempre que o estrado do outro mudar, entraríamos em um loop infinito.

A solução que eu usava e acho que funcionaria para você (hoje não tenho paralelo virtual) eram duas automações.
No seu caso é uma para lâmpada e uma para o switch.
A ideia é que a automação rode sempre que o estado desse device mudar. Ai ele vai verificar se o estado do outro é diferente do estado desse que acabou de mudar. Se for diferente ele da toggle no outro dispositivo. Essa verificação de o estado do outro ser diferente impede o loop infinito.

Daria até pra implementar isso numa automação só suando algumas funcionalidades mais avançadas. Tipo usar variável de trigger para ver qual dispositivo que acionou a automação. Mas aí entrando nesse nível de complexidade fica bem mais fácil fazer em nodered ou appdaemon.

@ariel_leventhal o que entendi é que ele tem um interruptor duplo.
Switch 1 liga uma lâmpada normal
Switch 2 liga uma lâmpada smart, mas por automação, não está ligada fisicamente no switch 2. Essa automação já funciona.
E ele quer um terceiro switch para controlar os 2 ao mesmo tempo.

Vê se isso te ajuda: Switch 3 botões onde 1 deles controla os outros dois - #3 por Adessotti

No meu caso são 3 botões no mesmo switch mas na prática parece ser o mesmo que tu quer fazer.

Quase isso. Já tem uma entidade ajudante que liga e desliga os dois switch, esse funciona ok.

Se eu fisicamente apertar para acender as 2 lâmpadas, gostaria de ativar essa mesma entidade ajudante.

Vc pode criar apenas uma automação.
Basta usar id nos gatilhos e dentro de ação vc cria opções e condições

Eu fiz isso. Mas se eu ativo um switch já ativa o outro junto (e seria somente o assistente)

Não sei como vc fez, mas alguma coisa na sua lógica deve estar errada.

Gatilho switch 1 para on > condição switch 2 on > helper on

Gatilho switch 2 para on > condição switch 1 on > helper on

Gatilho switch 1 ou 2 para off > helper off

alias: Teste helper
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.switch1
      - switch.switch2
    from:
      - "off"
      - "on"
    to:
      - "off"
      - "on"
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id:
          - switch.switch1
          - switch.switch2
        state: "off"
      - condition: state
        entity_id:
          - switch.switch1
          - switch.switch2
        state: "on"
action:
  - service: notify.wesley
    data:
      message: Ambos interruptores estão no modo "{{ trigger.to_state.state }}"
mode: single

Isso funciona porque o padrão de trigger quando há uma lista de entidades é OU e o padrão de condition é E
Ou seja, ela vai acionar a trigger se uma OU outra entidade for acionada, no caso, qualquer uma da lista de entidades.
Já a condição, precisa atender uma E outra entidade, no caso, todas da lista de entidades.

Como uso uma versão antiga do HA, não sei se tem um jeito mais simples
Tentei colocar uma única condição da forma abaixo, mas não funcionou:

  - condition: state
    entity_id:
      - switch.switch1
      - switch.switch2
    state: "{{ trigger.to_state.state }}"

Até teria como colocar uma só condição do tipo “template”, mas achei mais legível da forma como ficou lá em cima.