From eca504cb07a939213cc3b1945b217861f189b88d Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 25 Oct 2024 08:45:11 -0600 Subject: [PATCH] More bug fixes (#14593) * Adjust mqtt logging behavior * Set disconnect * Only consider intel gpu stats error if None is returned --- frigate/comms/mqtt.py | 6 ++---- frigate/stats/util.py | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/frigate/comms/mqtt.py b/frigate/comms/mqtt.py index ca9d03da7..198ec2176 100644 --- a/frigate/comms/mqtt.py +++ b/frigate/comms/mqtt.py @@ -18,7 +18,6 @@ class MqttClient(Communicator): # type: ignore[misc] self.config = config self.mqtt_config = config.mqtt self.connected = False - self.started = False def subscribe(self, receiver: Callable) -> None: """Wrapper for allowing dispatcher to subscribe.""" @@ -28,8 +27,7 @@ class MqttClient(Communicator): # type: ignore[misc] def publish(self, topic: str, payload: Any, retain: bool = False) -> None: """Wrapper for publishing when client is in valid state.""" if not self.connected: - if self.started: - logger.error(f"Unable to publish to {topic}: client is not connected") + logger.debug(f"Unable to publish to {topic}: client is not connected") return self.client.publish( @@ -175,6 +173,7 @@ class MqttClient(Communicator): # type: ignore[misc] client_id=self.mqtt_config.client_id, ) self.client.on_connect = self._on_connect + self.client.on_disconnect = self._on_disconnect self.client.will_set( self.mqtt_config.topic_prefix + "/available", payload="offline", @@ -247,7 +246,6 @@ class MqttClient(Communicator): # type: ignore[misc] # with connect_async, retries are handled automatically self.client.connect_async(self.mqtt_config.host, self.mqtt_config.port, 60) self.client.loop_start() - self.started = True except Exception as e: logger.error(f"Unable to connect to MQTT server: {e}") return diff --git a/frigate/stats/util.py b/frigate/stats/util.py index 2a0f251fc..c2d6586ad 100644 --- a/frigate/stats/util.py +++ b/frigate/stats/util.py @@ -197,8 +197,8 @@ async def set_gpu_stats( # intel QSV GPU intel_usage = get_intel_gpu_stats() - if intel_usage: - stats["intel-qsv"] = intel_usage + if intel_usage is not None: + stats["intel-qsv"] = intel_usage or {"gpu": "", "mem": ""} else: stats["intel-qsv"] = {"gpu": "", "mem": ""} hwaccel_errors.append(args) @@ -222,8 +222,8 @@ async def set_gpu_stats( # intel VAAPI GPU intel_usage = get_intel_gpu_stats() - if intel_usage: - stats["intel-vaapi"] = intel_usage + if intel_usage is not None: + stats["intel-vaapi"] = intel_usage or {"gpu": "", "mem": ""} else: stats["intel-vaapi"] = {"gpu": "", "mem": ""} hwaccel_errors.append(args)