diff --git a/src/main.py b/src/main.py index 292323e..a5e7b38 100644 --- a/src/main.py +++ b/src/main.py @@ -17,6 +17,8 @@ def process_gateway_messages(gateway, client, stop_event): while not stop_event.is_set(): try: packet = gateway._queue.get() + if packet is None: + continue _LOGGER.debug("data from queuee: " + format(packet)) sid = packet.get("sid", None) @@ -67,6 +69,8 @@ def process_mqtt_messages(gateway, client, stop_event): while not stop_event.is_set(): try: data = client._queue.get() + if data is None: + continue _LOGGER.debug("data from mqtt: " + format(data)) sid = data.get("sid", None) @@ -81,8 +85,11 @@ def process_mqtt_messages(gateway, client, stop_event): def exit_handler(signal, frame): print('Exiting') stop_event.set() - gateway.stop() + t3.join() client.disconnect() + t2.join() + gateway.stop() + t1.join() if __name__ == "__main__": _LOGGER.info("Loading config file...") diff --git a/src/mqtt.py b/src/mqtt.py index 9a0b774..0985c41 100644 --- a/src/mqtt.py +++ b/src/mqtt.py @@ -57,6 +57,7 @@ class Mqtt: def disconnect(self): self._client.disconnect() + self._queue.put(None) def subscribe(self, model="+", name="+", prop="+", command=None): topic = self.prefix + "/" + model + "/" + name + "/" + prop