ESP32 MQTT HA reinicia e ESP32 não consegue reconectar

Pessoal, montei um sistema para controle de acesso e outro para monitorar o nível da caixa de água e também chuva (sensor de umidade do solo simulada), tudo funciona perfeito, porem quando o HA é reiniciado os dois ESP32 nao conseguem se reconnectar, estou usando a biblioteca pubsubclient do Arduino.

O Código foi feito de tal forma que se o ESP ficar desconectado por mais de 10 minutos ele se auto reinicia com a nuncio ESP.restart(); porém mesmo assim ele não se reconecta, ele somente consegue se reconectar quando eu tira a alimentação e coloco novamente. Tudo funciona perfeitamente somente estou tendo esse problema.

Pq vc não usa o esphome?
Fácil de programar e sem usar nenhum código extra ele já faz a reconexão.

Já deixou a placa conectada no PC para ver se ela está reiniciando?

@Walber obrigado ai, estou relutante pois são anos de experiência com Arduino PIC e AVR, me sinto em casa usando eles com linguagem C, também me sinto livre pra fazer o que quiser…

Acho que encontrei o erro, eu estava viajando, cheguei aqui e comecei a debugar vi que ao reiniciar o HA colocava as variáveis como restauradas e de fato o ESP estava se conectado ao MQTT e tambem enviando mensagens… Em pesquisa encontrei este tópico:

MQTT entities shown as ‘unavailable’ after restart of HA #37662

Um cara cita que as mensagens de configuração estavam como retained e mesmo assim ficavam unavailable. Resolvi mandar a configuração com o retained flag e resolveu aparentemente, vou fazer mais alguns testes e deixar o tempo me dizer se resolveu ou não.

De:

ConexaoMQTT.publish("homeassistant/sensor/Sotao/CaixadeAguaPercentual/config",sensor1.c_str(),false);

para:

ConexaoMQTT.publish("homeassistant/sensor/Sotao/CaixadeAguaPercentual/config",sensor1.c_str(),true);

Depois da mudança o HA não mais coloca as variáveis como restauradas e atualiza os valores normalmente.

Valeu!

[edit] ate então testes Ok, provavelmente era isso mesmo.

[edit] vários dias e esta super confiável problema resolvido.