[NodeMCU + Node-RED] Como bloquear os comandos no Node-RED ao perder o sinal Wi-Fi do NodeMCU?

Boa tarde,

Estou com dificuldades em bloquear os comandos que ficam na saida do Node-RED ao perder o sinal wifi do NodeMCU.

Exemplo: Dou um sinal para ligar o Relé1 (pelo dashboard) com o Wi-FI ligado, a mensagem vai para a WEB (também para o debug do Node-RED) e o NodeMCU responde  dando o sinal para o Relé1 e acionando ele.


Quando dou o sinal para desligar o Relé1 (pelo dashboard) com o Wi-Fi desligado, a mensagem vai para a WEB (também para o debug do Node-RED) e o NodeMCU não responde e não dá o sinal para o Relé 1 desligar.

Dando outro sinal para ligar o Relé1 (condição igual a anterior) mais uma vez vai para o debug e fica esperando o comando anterior de desligar. Assim, dando comandos e comandos, todos ficam nesse debug esperando a conexão com a internet para fazer os comandos.

Quando o Wi-Fi retorna, todos os comandos são feitos em sua ordem na fila e isso acaba estressando demais o circuito de força das contatoras e dos relés.

Gostaria de saber como limpar esses comandos que ficam no sebug, uma vez que o NodeMCU se desconectar com a rede Wi-Fi para evitar esse acionamento simultaneo de todos os comandos acumulados.

Alguém poderia me ajudar?  Desde já agradeço!

Exibições: 717

Responder esta

Respostas a este tópico

Boa noite,

Sinceramente gostaria de ajudar mas não entendi bem sua explicação e seu problema, por favor veja no meu canal no youtube, tenho projetos/tutoriais com o node-red e ESP8266, o ultimo você pode visualizar AQUI NESTA PLAYLIST

Na descrição do vídeo tem o link para meu Github para baixar o projeto completo documentado.

Desculpe não entender bem sua explicação.

Boa sorte.

Abs.

CK

Olá Carlos, bom dia.

Assisti seu tutorial e vou tentar exemplificar de acordo com a sua lógica programada.

Digamos que para acionar o ventilador vc precise da leitura da temperatura do seu quarto (Quando maior ou igual a 30°C o NodeMCU recebe a info  para ligar a tomada e assim o ventilador também ligar). Porém, na variação de temperatura do seu quarto, o Wi-Fi falha e a tomada não é ligada/desligada, por conta da informação que não chegou para o Node (por conta do Wi-FI ter oscilado e saído).

Essa info de Relé ON (p/ temp maior ou igual a 30°C) ou Relé OFF (p/ Temp menor que 30ºC) fica armazenada na fila do Node-RED e quando o Wi-Fi volta ela manda tudo de uma vez.

Queria algum comando para dispensar essas ações quando o NodeMCU identificasse que perdeu a conexão com o Wi-Fi para evitar fazer os comandos que estão na fila quando a conexão voltar.

Desde já agradeço pelo suporte. Segue exemplo das atividades que ficam na fila e só executam após o Wi-Fi restabelecer a conexão (no caso de perda)

Anexos

Olá Marcos,

Acredito que uma maneira de evitar isso poderia ser criando por exemplo uma função, ou uma condição do tipo:

void xxx_xxx(void) {
while (!client.connected())

{
Faça isso);


}
else

faça aquilo outro
{

Se quiser compartilhe seu code aqui anexando, ou colando no pastebin e deixando o link aqui e trataremos de ajudar.

Lembre-se, não cole códigos na área de texto, siga as regras conforme este link http://labdegaragem.com/forum/topics/sugest-o-de-como-postar 

Abs.

CK

Bom dia Carlos,

Acredito que não irá resolver o problema, pois quando a conexao voltar ele irá executar o que estiver na fila do Node-RED.

Segue o código para avaliar.

Desde já agradeço pelo suporte    

qnNA1X27.txt

Bom dia Marcos,

Estou em Brasilia até dia 28, por tanto restrito a minha bancada de trabalho, em todo caso veja se o link do Jucelei ajuda, mas esclareça uma coisa por favor, o seu problema é que se o esp perde a conexão entre o wi fi e consequentemente com o broker, quando você reinicia para conectar novamente todos os reles nas saidas do ESP batem? (São acionados) Esse é o problema?

Abs.

CK

Bom dia, primeiramente obrigado pelo link e pela ajuda, mas acho que não entendi como usar a explicação do link sem um exemplo.

Carlos, exatamente. Estou utilizando o nodeMCU em um local onde o sinal do WiFi oscila bastante, então quando dou os comando pelo broker (este está conectado diretamente na rede cabeada e nunca perde o sinal), as vezes o sinal está fora do WiFi na aplicação e este não responde acionando o relé, porém essa mensagem vai para a fila (no debug, por exemplo).

Enquanto eu mandar comando e o sinal ainda n tiver voltado essa fila se acumula e quando o sinal é reiterado o acionamento é simultâneo.


RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço