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
|
connected_once = False
|
||||||
|
|
||||||
class DaygloDetectorMQTTClient(MQTTClient):
|
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
|
global connected_once
|
||||||
if rc == 0 and not connected_once:
|
if rc == 0 and not connected_once:
|
||||||
print("Connected successfully to MQTT broker")
|
print("Connected successfully to MQTT broker")
|
||||||
@@ -134,7 +134,8 @@ async def main():
|
|||||||
client.set_auth_credentials(MQTT_USERNAME, MQTT_PASSWORD)
|
client.set_auth_credentials(MQTT_USERNAME, MQTT_PASSWORD)
|
||||||
|
|
||||||
await client.connect(MQTT_BROKER, MQTT_PORT, keepalive=60)
|
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__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
|||||||
Reference in New Issue
Block a user