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:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user