Ich habe die folgenden Python-Skript aus dem Thread "Python MQTT Connect nur für eine begrenzte Zeit".Python MQTT Reset-Timer nach Erhalt einer Nachricht
#!/usr/bin/python
import sys
import paho.mqtt.client as mqtt
import time
def on_message(client, userdata, msg):
if msg.topic == "foo/bar":
print ("test successful! Message = ", str(msg.payload.decode("utf-8")))
startTime = time.time()
def on_connect(client, userdata, flags, rc):
client.subscribe("foo/bar")
print("Client connected")
client = mqtt.Client("Python1", clean_session=True)
try:
client.connect("localhost")
except:
print ("ERROR: Could not connect to MQTT")
client.on_connect = on_connect
client.on_message = on_message
startTime = time.time()
waitTime = 10
while True:
client.loop()
elapsedTime = time.time() - startTime
print("Elapsed time: ", elapsedTime)
if elapsedTime > waitTime:
client.disconnect()
break
wird der Kunde für 10 Sekunden warten, wenn es keine Nachricht innerhalb von 10 Sekunden, dann wird der Kunde seinen disconnect empfangen hat.
Was ich jetzt versuche, ist immer, wenn der Client eine Nachricht erhalten hat, ich möchte die StartTime zurück auf die aktuelle Zeit zurücksetzen, so dass der Client verbunden bleiben wird und nicht nach 10 Sekunden beendet wird. Ich bin mir nicht sicher, wo sollte ich die Codierung ändern, um es zu erreichen.
Vielen Dank, es hat perfekt funktioniert! – Rexksvii