Open
Description
Hi,
I'm using this library on a mkr 1010 to send some data every 5 seconds. I based my sketch on the WiFi Simple Sender example. After 1-2 hours the library stops sending mqtt messages to my broker.
For now i did the following observations:
- the loop() code is still running
- i'm still able to ping my arduino
- my broker is still running, other devices on the network can still publish on it
The code is hosted on arduino create
Activity
Testato commentedon Sep 19, 2019
Same problem.
mkr1010 to a mosquitto on Rpi
attilagyurman commentedon Oct 27, 2019
Same problem. Broker is mosquitto, it says after about 23 hour:
If i restart arduino, i can see the ping requests in mosquitto log, but if i restart mosquitto while arduino is connected, arduino doesn't reconnect.
valerionew commentedon Oct 27, 2019
@attilagyurman in the meantime see this example, you should be able to operate for longer.
https://github.com/fablab-bergamo/ArduinoMqttClient/blob/master/examples/WiFiSimpleSenderReconnect/WiFiSimpleSenderReconnect.ino
valerionew commentedon Nov 10, 2019
@attilagyurman have you tried the code? Does it patch the problem?
attilagyurman commentedon Nov 11, 2019
@5N44P Yes, it's working perfectly.
sandeepmistry commentedon Nov 11, 2019
@5N44P just to clarify this topic, was it related to the WiFi or the socket disconnecting?
valerionew commentedon Nov 11, 2019
I set up this code to try and see if it is a wifi disconnection or just the connection with the MQTT broker.
The result is that it is both, but:
sandeepmistry commentedon Nov 14, 2019
Ok, so if it's a socket or WiFi level issue I think this can be closed or moved to the
WiFiNINA
repo if applicable.You have a pull request #15 open to track adding reconnection to the examples, which is good.
tiszavolgyi commentedon Dec 9, 2019
I have the same problem on an MKR1000. Usually, it only works for like 20-30 minutes, sometimes a few hours. The wifi is connected, i'm still able to ping my arduino, the loop() code is still running, my MQTT broker is running as well.
However, my device does not send data to the MQTT topic...
Trying the reconnecting solution from @5N44P I will report back if it is working. Thank you!
gregor2004ua commentedon Dec 19, 2020
Having the same issue. Initially it was happening every hour, after making poll() calls less frequent it now happens every 8-10 hours. Does anyone have a permanent solution for this?
Webbeh commentedon Jan 5, 2021
...instead of using poll(), which seems to be VERY blocking on my end, I tend to send a random message on a random "keepalive" topic every 30s or so, seems to work by me.
I have quite critical applications where the arduino is really not easily reachable (avalanche level displays on ski slopes) and this is the only thing that seemed to work okay.
valerionew commentedon Jan 5, 2021
I have had my reconnecting example going for more than a year and it's working fine too
pesor commentedon Jun 21, 2021
As far as I can see, the algoritm disconnect the MQTT connection after 60 minutes, this is hardcoded in the library file.
I have solved the issue, by adding this statement at the end of the loop():
if (!mqttClient.connected()) { mqttClient.connect(broker, port); }