Ich brauche in einem Modul einen MQTT-Client (Verwendung, Datenstrom etc soweit bekannt).
Frage: der MQTT-Server, an dem ich mich connecte, möchte alle 30s (oder etwas kürzer) ein Keepaliave haben.
Soweit ich verstanden habe, muss man dem ein Paket mit dem Sub-Topic /PINGREQ schicken und bekommt dann PINGRESP zurück.
In dem Symcon-MQTT-Client habe ich keinen Hinweise oder Einstellung zum Thema Keepalive gefunden.
Sehe ich das richtig, das ich dann im Modul selber zyklische die Verschickung eines Paketes mit dem o.g. Topic und ohne Payload (über den MQTT-Client nätürlich) auslösen muss?
Würde mich freuen, wenn da jemand eine Info zu hätte
Ist es ein Topic auf das du senden musst? Dann müsstest du dies selber bauen mit einem Timer. Der MQTT Client hat ein eigenes Ping/Pong welches aber auf MQTT Protokoll Ebene läuft und nicht als Topic realisiert wird. Deswegen die Rückfrage.
Unser KeepAlive/PingPong senden wir alle 60 Sekunden.
ich bin noch etwas unsicher, da die Doku der API sich dazu ausschweigt und die Aussagen aus dem Netz stammen und da geht Keepalive und PINGREQ durcheinander.
Was recht sicher ist ( durch Versuche), das das wohl spätestens alle 30s erfolgen muss. Wenn nicht, funktioniert die Subscription wohl nicht mehr .
Eine Möglichkeit, das Keepalive-Intervall einzustellen gibt es vermutlich nicht?
Noch nicht, aber das wäre jetzt tatsächlich eine Kleinigkeit das einzubauen. Reicht dir ein Test-Build für Docker, damit du das mal validieren kannst, ob es die Lösung wäre?