infinity loop to connect MQTT
I have not good wifi in house. And sometimes esp is looping I see in serial console: Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass ...
` int y=0; while (!client.connected()) { Serial.println(mqtt_user); Serial.println(mqtt_pass); Serial.print("Attempting MQTT connection..."); String clientId = "ESPClient-"; clientId += String(random(0xffff), HEX); //Random client ID if (client.connect(clientId.c_str(), mqtt_user, mqtt_pass)) { client.setBufferSize(1024); Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); //Wait 5 seconds before retrying delay(5000); y++; if (y==5) // after the 5th attempt we are disconnect and reconnect wifi { y=0; Serial.println("Try disconnect"); client.disconnect(); wm.disconnect(); delay(5000); wm.autoConnect(mqtt_topic); delay(5000); } } }
Successful logs:
`Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds user pass Attempting MQTT connection...failed, rc=-2 try again in 5 seconds Try disconnect *wm:AutoConnect *wm:Connecting to SAVED AP: mikrotik *wm:AutoConnect: SUCCESS *wm:STA IP Address: 192.168.1.54 user pass Attempting MQTT connection...connected Creating topics for HomeAssistant HomeAssistant topics created.`