Hi, hab einen Sensor der sich per MQTT meldet. Das klappt auch alles wunderbar mit den einfachen Beispielen (a la ArduinoMQTTClient/WifiSimpleSender.
Aber: Geht mal das Wifi und/oder die Verbindung zum Broker verloren ist man aufgeschmissen. Meist sehe ich noch dass das Wifi wieder läuft (status=connected), aber beim MQTT Broker kommt trotzdem nichts mehr an.
Was ist die richtige Strategie die Verbindung zu überwachen? Beim Wifi gibts ja immerhin noch den Status aber bei MQTT? Und wie das wieder neu zu verbinden - was sind die Kriterien, also wo bekomme ich einen Fehler auf den ich reagieren könnte? Bei mqttClient.beginMessage/print/endMessage kann ich am Rückgabewert nicht wirklich schließen ob der Broker das empfangen hat.
Die Frage ist also, wenn Wifi.Status (wieder) auf connected geht - ist dann diesbezüglich alles auch wieder gut und wie bekomme ich wieder Zugang zum MQTT broker?
Wenn ich mir den Quellcode von der Library so anschaue, dann sehe ich, dass es eine Methode connected() gibt, die true zurückgibt, wenn der Broker verbunden ist, andernfalls false.
Also müsste der Verbindungszustand zum Broker abgefragt werden können.
Mit Sicherheit kann ich das aber nicht sagen, weil ich mit der Bibliothek noch nichts gemacht habe.
Danke Kai. Ich habe das probiert if (!mqttClient.connected()) { mqttClient.connect(broker, port); }
und es scheint zu wirken. Muss ich aber noch intensiver testen.
Wie hast du das gefunden? Ich sehe im Header nur:
virtual uint8_t connected();
aber nichts zu was der Rückgabewert ist.