Status da Placa de Automação intercalando

Fala entusiastas.
Possuo uma placa de automação Redgtech 8 canais, integrei ela via command_line as switch.

Tenho dois problemas e gostaria de ouvir a opinião de vocês:
1* Após acionar um canal pelo HÁ, o status do mesmo fica alterando entre turned on e turned off (apenas no HÁ, o estado da placa em si permanece ON) isso começou depois que atualizei o HÁ e usei o node red, mas já removi todas as automações do node red e nao resolveu. Como posso estar resolvendo isso ?

2* Gostaria de realizar funções duplo click com esses canais, porém, quando baixo o scan_interval pra 1s o HÁ acaba fazendo muitas requisições pra placa, gerando muito estresse. Percebi que usando um relê interruptor, esse mesmo estresse não ocorre. Qual a diferença de monitoramento de um pra outro ? Como posso estar melhorando isso ?

1 curtida

Use a url do command_state no navegador e verifique se o estado esta alternando tbm.
Se tiver, é um problema no software da placa que por algum motivo esta gerando o status errado.

Baseado nas informações limitadas que tenho disponível eu diria que é problema do firmware da placa, quando eu comecei a ler até parecia alguma coisa relacionado aos modos otimistas que o ha tem pra templates mas se fosse isso ele mudaria de estado instantâneo e não depois de vários segundos.

A primeira questão é que existe 2 tipos de integração. Polling e push. Polling quer dizer que o home assistant fica perguntado pro device, “seu estado mudou?”, “seu estado mudou?”, “seu estado mudou?” … que é o que você está fazendo aí. A integração push o próprio device enfia uma mensagem pro ha quando estado mudar, sendo assino muito mais eficiente. Esse tipo de integração é feito com outros protocolos, não http (mqtt, coAP, websockets…). Por isso mencionei a ideia de fazer um outro firmware com mqtt no outro típico que conversamos.

A outra questão e que mesmo dispositivos que usam polling podem ser mais responsivos. Lembra que você não está fazendo uma requisição a cada 10 segundos, você está fazendo 8 requisições a cada 10 segundos, uma pra cada canal. Usando uma integração (custom_component) em vez de template provavelemente faria um único request e com ele atualizaria estado de todos canais.
E por fim temos a questão do mcu dessa placa ser muito fraco. Colocar polling rate de 1 segundo seria fazer 8 request por segundo, não acho que mcu vai conseguir lidar com isso.

Acredito que solução mais viável seja escrever um firmware mqtt.

Eu foquei na parte do polling e esqueci um detalhe importante. O ideal é implementar Detecção de duplo clique no firmware. O device reconhece duplo clique e en vez de fazer ação padrão (ligar/desligar) faz outra ou envia uma mensagem pro ha de duplo clique.

Fala Walber. O status dela realmente só muda no HA. Perceba como AC2 esta “1” e no HA esta OFF. Nessa caso quando pressiono no Rele 2 pelo HA ela me mostra o status atual e se eu der mais um clique, muda o status. Antes não estava assim, ele mostrava de maneira sólida o status do canal.

Um teste de um request no seu navegador não é suficiente pra descartar problema na placa. Porque o ha diferente desse teste, está fazendo muito vários request de uma vez que podem estar bugando o firmware.

1 curtida

Fala Ariel. Voltei naquele primeiro post pra lembrar o que você tinha me dito, desde já agradeço pelo toque, tenho evoluído bastante.
Em conversa com o fabricante, me relatou que não seria possível usar a placa pra “conversar” em mqtt com o ha pois a mesma não é um servidor, não entendi muito bem.
Com relação a troca de firmware: Tenho muita vontade de testar o Tasmota, mas ainda tenho receio, nunca fiz esse procedimento, tenho medo de ocorrer um defeito irreversível e perder a placa (Não creio que o fornecedor me manda o arquivo do firmware original), mas estive vendo um vídeo do LNPBR, onde ele demonstra o funcionamento de um Módulo Rele 4CH com ESP 8266, achei bem interessante a plataforma do Tasmota e a integração com ha, acredito que seria um primeiro passo antes de querer mexer na placa em si.

Fui dar uma olhada no log, olha o que tenho aqui.
Nesse caso ta em grego pra mim.
image

Ou o fabricante não sabe do que está falando ou ele quis dizer que não da com o firmware padrao dele (que realmente nao da, voce teria que programar o seu). De qualquer maneira explicação dele muito fraca.

Tasmota é so para esp voce tinha me dito que o mcu da placa era outro entao nao tem como. Quanto ao firmare é quase impossivel defeito irreversivel, so se voce fizer ligacao eltrica errada na hora de gravar mas não tem muito segredo. E o firmware original voce pode extrair da placa para o seu pc do mesmo jeito que voce gravaria um novo.

Essa placa usa um ATMega 328p. Ja trabalhou com esse controlador ? sabe me dizer que firmware com mqtt conversa com ele ?

Pronto não vai ter. Tem que programar. Da pra programar em arduino. Esse mcu é muito fraquinho não tem ram suficiente pra existir algo tipo tasmota com tanta feature inclusa que nem todos usuarios usam.

No caso, eu só iria adicionar a linguagem mqtt nesse firmware, certo ?
Porque não consigo nem imaginar o tamanho da programação do firmware completo.

MQTT é protocolo, A linguagem é Arduino (tem outras opcoes mas no caso pra esse mcu acredito ser a mais facil de longe).

Depende do que voce chama de completo, fazer algo tipo tasmota todo configuravel, com interface web etc realmente é um projeto gigante. Voce pode fazer algo muito mais simples que ja tem nome e senha do seu wifi, componentes etc pre definido no firmware sem nada configurável, mas tem que ser completo no sentido que tem que programar do zero (não é so a comunicacao tem que reprogramar o comportamento base dele de acionamento de rele, de leitura de interruptor etc).

Para alguém que sabe programar é um projeto bem simples, chutando umas 100-200 linhas de código.

Mas para alguem que não programa é um desafio bem grande. A solucao mais pratica seria trocar por outra placa.

Não sei se vc fez, mas a ideia é vc atualizar a pagina simulando um scan_interval e verificar se o valor tbm esta mudando pela url.

Acho que pelo HA não será possível, mas acho que da pra vc reduzir a quantidade de atualizações usando o node red.

Faz um request e com um resultado vc quebra para atualizar todos os relés.

Cara, não seria pq pra receber o status é GET e pra enviar o comando é POST ?

A impressão que dá é que o comando que está fazendo não está surtindo mudança de status.

Teria como eu fazer isso sem o protocolo MQTT?

Essa parte que voce citou era justamente sobre como fazer sem mqtt. Mas envolve mais programacao do que com mqtt. Teria que criar uma integração do home assistant. E seria polling entao ainda seria pior que mqtt.

E se eu colocar rele interruptor Sonoff no lugar dessa placa, que problemas eu poderia ter ? Usaria 30 unidades daí, pois tenho 30 retornos pra comandar.

O unico possivel problema seria a grande quantidade de clientes na rede ai depende do seu equipamento de rede.
No aliexpress tem placas semelhantes porem com esp ai da pra colocar esphome ou tasmota.
https://www.aliexpress.us/item/3256803149687914.html

Mas eu fortemente recomendo os dispositivos da linha shelly pro que é uma fabricante europeia. São so 3 ou quatro canais por dispositivo mas isso ja reduziria pra 10 devices em vez de 30. A qualidade da shelly é muito superior e eles tem todas certificações de segurança.
https://pt.aliexpress.com/item/1005005103917464.html
https://aliexpress.com/item/1005003568997399.html

1 curtida

Se seu problema é só o status, tenta integrar a placa com o node red.
Com um request vc atualiza todos interruptores.

Faz um teste deixando só um relé com o comando de status pra ver se resolve.

1 curtida