use a queue for logging

This commit is contained in:
Blake Blackshear
2020-11-03 21:26:39 -06:00
parent af303cbf2a
commit 4c3fea25a5
10 changed files with 93 additions and 66 deletions

View File

@@ -1,21 +1,24 @@
import logging
import paho.mqtt.client as mqtt
from frigate.config import MqttConfig
logger = logging.getLogger(__name__)
def create_mqtt_client(config: MqttConfig):
client = mqtt.Client(client_id=config.client_id)
def on_connect(client, userdata, flags, rc):
# TODO: use logging library
print("On connect called")
logger.info("On connect called")
if rc != 0:
if rc == 3:
print ("MQTT Server unavailable")
logger.error("MQTT Server unavailable")
elif rc == 4:
print ("MQTT Bad username or password")
logger.error("MQTT Bad username or password")
elif rc == 5:
print ("MQTT Not authorized")
logger.error("MQTT Not authorized")
else:
print ("Unable to connect to MQTT: Connection refused. Error code: " + str(rc))
logger.error("Unable to connect to MQTT: Connection refused. Error code: " + str(rc))
client.publish(config.topic_prefix+'/available', 'online', retain=True)
client.on_connect = on_connect
client.will_set(config.topic_prefix+'/available', payload='offline', qos=1, retain=True)