From 240a66155ffe23d644511b55abf2ef4c331145d6 Mon Sep 17 00:00:00 2001 From: Robert Resch Date: Tue, 8 Mar 2022 00:24:30 +0100 Subject: [PATCH] wait for broker to be started --- bumper/__init__.py | 16 +++++++--------- bumper/mqtt/helper_bot.py | 13 ++++++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/bumper/__init__.py b/bumper/__init__.py index 88758fa..b080bdd 100644 --- a/bumper/__init__.py +++ b/bumper/__init__.py @@ -110,20 +110,18 @@ async def start(): global xmpp_server xmpp_server = XMPPServer((bumper_listen, xmpp_listen_port)) - # Start MQTT Server - # await start otherwise we get an error connecting the helper bot - await asyncio.create_task(mqtt_server.start()) - - # Start MQTT Helperbot - asyncio.create_task(mqtt_helperbot.start()) - # Start XMPP Server asyncio.create_task(xmpp_server.start_async_server()) - # Wait for helperbot to connect first - while not mqtt_helperbot.is_connected: + # Start MQTT Server + # await start otherwise we get an error connecting the helper bot + await mqtt_server.start() + while not mqtt_server.state == "started": await asyncio.sleep(0.1) + # Start MQTT Helperbot + await mqtt_helperbot.start() + # Start web servers await web_server.start() diff --git a/bumper/mqtt/helper_bot.py b/bumper/mqtt/helper_bot.py index 7605c7d..c68455e 100644 --- a/bumper/mqtt/helper_bot.py +++ b/bumper/mqtt/helper_bot.py @@ -52,11 +52,14 @@ class HelperBot: async def _on_message( client: Client, topic: str, payload: bytes, qos: int, properties: dict ) -> None: - _LOGGER.debug("Got message: topic=%s; payload=%s;", topic, payload.decode()) - topic_split = topic.split("/") - data_decoded = str(payload.decode()) - if topic_split[10] in self._commands: - self._commands[topic_split[10]].add_response(data_decoded) + try: + _LOGGER.debug("Got message: topic=%s; payload=%s;", topic, payload.decode()) + topic_split = topic.split("/") + data_decoded = str(payload.decode()) + if topic_split[10] in self._commands: + self._commands[topic_split[10]].add_response(data_decoded) + except Exception: + _LOGGER.error("An exception occured during handling message.", exc_info=True) self._client.on_message = _on_message