Node-RED - Luzes que se apagam após terem sido acionadas

Estou usando o Home Assistant junto com Node-RED a poucos dias e estou testando algumas automações, pois sempre tive vontade de ter uma casa inteligente.
Minha dúvida começa no problema que venho enfrentando, montei dois scripts no node-red com a finalidade de todos os dias ligar algumas luzes e também desligá-las, dependendo do horário. Mas estou tendo o problema das luzes serem ligadas e cerca de 25 segundos depois serem desligadas, mas nem todas as luzes ocorrem este problema. Para o funcionamento desta automação instalei o sonoff mini em toda casa, sendo 11 pontos no total.

Abaixo segue a descrição que encontrei no log:

17:30:25 Luz externa turned off
17:30:25 Luz Cozinha turned off
17:30:25 Luz Hall turned off
17:30:00 Luz Cozinha turned on
17:30:00 Luz externa turned on
17:30:00 Luz Hall turned on
17:30:00 Arandela Varanda turned on

Somente a luz “arandela varanda” permaneceu acesa. Esta não é a primeira vez que isso acontece e não consegui descobrir o motivo. Se faço isso usando “Rotinas” pela Alexa funciona perfeitamente.

Por favor, se puderem me ajudar.

Estou Usando a versão 108.8 do Home Assistant e rodando em docker.
Nos botões de switch, na tela do Home, tudo funciona perfeitamente. O problema ocorre com o uso do node-red.
O que pude verificar é que nem as luzes acendem, somente o home assistant mostra na tela como acesa. Se uso um grupo de luzes somente uma funciona, as demais ficam apagadas.
Os sonoffs (mini) estão sem tasmota, original de fabrica.

O erro que encontrei no log de um outro teste que fiz:

2020-04-25 14:30:00 ERROR (Thread-2) [custom_components.sonoff] websocket error: Connection is already closed.

Oi tudo bem ? Sou novo por aqui também… vou tentar te ajudar…

pelo visto você está usando uma integração sonoff usando o cloud do ewelink, correto ?

Até uns dias atrás eu estava usando e não estava muito contente pois é muito instável, então eu pesquisei um pouco e encontrei esse artigo do link abaixo:

https://drzzs.com/sonofflan/

Ele explica como instalar uma nova integração que, mesmo sem alterar a firmware, o Home Assistant se integra com os “sonoffs” via lan, sem usar a cloud.

Espero ter ajudado.

Oi Michel, obrigado.

Adicionei de forma manual os arquivos do https://github.com/AlexxIT/SonoffLAN na pasta custom_components/sonoff. Não consegui fazer aquela parte de repositório, acho que a minha versão tá diferente. Também removi os arquivos antigos que tinha de sonoff da pasta custom (https://github.com/peterbuga/HASS-sonoff-ewelink.git). Em seguida alterei o arquivo configuration.yaml:

sonoff:
username: !secret ewelink_user
password: !secret ewelink_passwd
reload: always

Reiniciei o Home e fiz alguns testes via Node-red. O resultado não foi 100%, mas descobri uma maneira de ter sucesso em todos os scripts:

  1. Coloco um trigger para cada luz que vou acionar.
  2. Para triggers com o mesmo horario, coloca delay para que o acionamento de cada luz não ocorra no mesmo tempo. Defini um tempo e 5 segundos de intervalo.

A troca da library python sonoff parece estar funcionando, pelo menos não recebo mais erro de websocket no log.

Scripts Node-red:

Pasta custom_components/sonoff:

init.py binary_sensor.py light.py remote.py switch.py utils.py
pycache fan.py manifest.json services.yaml toggle.py

Oi Jorge… fico contente por ter ajudado.

Acho que usando o HACS, fica um pouco mais fácil … Mas se funcionou, é o que importa.

No meu caso, a diferença é que todos os arquivos estão no diretório custom_components/sonoff
No diretório pycache só tem uns arquivos *.pyc

Não sei se viu, mas quando adicionar ou retirar dispositivos sonoff, precisa apagar o json que a rotina recria.

Oi Michel,

Achei muito bom essa questão de não usar nuvem para acionar os dispositivos sonoff.
Tentei fazer a adição do repositório via opção “supervisor” add-ons e não funcionou também. Queria ver como ficou sua pasta “custom_components”, porque não sei a necessidade dos outros arquivos.

Sobre a questão do arquivo oculto .sonoff.json, vi sim. Ele é carregado com informações dos componentes. Com essas informações é que o HA não precisa ir mas na nuvem ewelink para acionar o dispositivo. Acho que é isso.

Jorge, ficou assim:

Capture

Capture1

espero ter ajudado.

Michel,

A sua pasta está igual a minha.

Mais uma vez obrigado.

Tudo bem Michel,

Ontem, dia 04/05/2020 a Claro-Net teve problema com o sinal da rede em vários locais do Brasil. Com isso também fiquei sem o acesso a web aqui em casa.
Você tinha indicado um site que falava dos sonoffs serem controlados pela lan (rede local). Mas o HA sempre tenta comunicação com a cloud ewelink. Com isso, o Home Assistant ficou perdido, não montava tela lovelace direito, luzes eram mostradas como acessa e não estavam e por final os scripts do Node-red tbm não funcionaram.
Gostaria de saber se já fez testes somente usando a sua rede local, sem acesso a internet? Porque podemos ter bugs devido a versão do HA. Estou usando docker com a versão 0.109.1.
Se mais alguém teve esse problema, peço que compartilhe.

Jorge, eu testei aqui na minha casa e os Sonoffs continuaram funcionando mesmo sem internet. Vale lembrar que não precisei subir o HA. Os Tuyas deram problema, pois os meus ainda usam a cloud deles.

Sobre esses problemas descritos, aqui no meu HA também acontecem, independente de ter internet ou não, aí eu preciso dar uma reiniciada geral (boot físico no server) pra resolver.