Fix coroutine warning and replace MQTT client loop handling

- Properly awaited the `on_connect` method to resolve RuntimeWarning.
- Replaced `loop_forever()` with an async event loop using `asyncio.get_event_loop().create_future()`.
This commit is contained in:
2024-10-20 18:48:18 +11:00
parent 917aa913c1
commit 564c963af1
+3 -2
View File
@@ -33,7 +33,7 @@ initial_snapshot_processed = False
connected_once = False
class DaygloDetectorMQTTClient(MQTTClient):
async def on_connect(self, client, flags, rc, properties):
async async def on_connect(self, client, flags, rc, properties):
global connected_once
if rc == 0 and not connected_once:
print("Connected successfully to MQTT broker")
@@ -134,7 +134,8 @@ async def main():
client.set_auth_credentials(MQTT_USERNAME, MQTT_PASSWORD)
await client.connect(MQTT_BROKER, MQTT_PORT, keepalive=60)
client.loop_forever()
await client.connect(MQTT_BROKER, MQTT_PORT, keepalive=60)
await asyncio.get_event_loop().create_future()
if __name__ == "__main__":
asyncio.run(main())