Retorna último estado das lâmpadas

Tenho algumas automações que muda o estado das lâmpadas, queria que quando a automação chegasse ao fim, as lâmpadas assumissem o ultimo estado (se desligado mantém desligado, se azul 50% volta nesse estado) alguém me pode dar uma ajuda? Estou a usar as automações nativas do HA.

O jeito mais facil seira usar cenas. Muitas pessoas usam cenas criadas pela interface para criar preset de iluminacao mas voce pode criar cenas programaticamente usando servico scene.create. A unica desvantagem de fazer isso é que a cena continua existindo depois da automação terminar, mas ficara apenas uma cena por automacao ja que ela sera sobrescrita toda vez.

Exemplo desse metodo:

Se criar cena não for uma solução que te atrai creio que o melhor seria utilizar node red ou appdaemon pois ficaria complexo com automacao nativa.

1 Like

É 1 automação específica ?

Você pode ter um sensor “lastState” calculado no início da automação pra gravar o estado atual das entidades envolvidas na automação.
Com o estado gravado no início, daí segue a automação normal.
No final da automação, você itera sobre o atributo dessa entidade “lastState” pra retornar ao status anterior.

1 Like

@w35l3y acho que na prática isso funcionaria igual cena, o sensor também existiria fora do escopo da automação continuamente.

A cena na prática seria só uma abstração que facilita implementação disso.

A cena retorna ao estado anterior ?
Se sim, então show.

Esse link que passou do script python parece bem completo.

Sim o objetivo da cena é justamente esse. Você passa uma lista de entidades e ela salva o estado de todas automaticamente. Depois você pode chamar essa cena e aí todos os estados voltam automaticamente pra o valor de quando ela foi criada.

É usado geralmente via interface pra criar preset de luzes e posição de cortina. Exemplo cena, pra ver filmes, cena para o dia (tudo apagado e cortina abertas) …

Mas da pra usar pra isso.

Esse é um caso de uso parecido com o restaurar após a falta de energia. Documentei aqui:

Interessante.

Neste caso, faz total sentido criar a cena dinamicamente antes da automação executar e depois chamá-la após a automação.

Nunca usei cena por não ter entendido o propósito, mas esse caso de uso parece muito útil.

Muito bom!

Testei com o scene.create e funciona na perfeição, faz exatamente o que queria. Obrigado.

1 Like