mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 09:45:22 +03:00
Don't start mqtt until dispatcher is subscribed
This commit is contained in:
parent
cd067daf16
commit
02cb5b55ed
@ -18,46 +18,11 @@ class MqttClient(Communicator):
|
|||||||
self.config = config
|
self.config = config
|
||||||
self.mqtt_config = config.mqtt
|
self.mqtt_config = config.mqtt
|
||||||
self.connected: bool = False
|
self.connected: bool = False
|
||||||
self._start()
|
|
||||||
|
|
||||||
def subscribe(self, receiver) -> None:
|
def subscribe(self, receiver) -> None:
|
||||||
"""Wrapper for allowing dispatcher to subscribe."""
|
"""Wrapper for allowing dispatcher to subscribe."""
|
||||||
self._dispatcher = receiver
|
self._dispatcher = receiver
|
||||||
|
self._start()
|
||||||
# register callbacks
|
|
||||||
for name in self.config.cameras.keys():
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/recordings/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/snapshots/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/detect/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/motion/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/improve_contrast/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/motion_threshold/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/{name}/motion_contour_area/set",
|
|
||||||
self.on_mqtt_command,
|
|
||||||
)
|
|
||||||
|
|
||||||
self.client.message_callback_add(
|
|
||||||
f"{self.mqtt_config.topic_prefix}/restart", self.on_mqtt_command
|
|
||||||
)
|
|
||||||
|
|
||||||
def publish(self, topic: str, payload, retain: bool = False) -> None:
|
def publish(self, topic: str, payload, retain: bool = False) -> None:
|
||||||
"""Wrapper for publishing when client is in valid state."""
|
"""Wrapper for publishing when client is in valid state."""
|
||||||
@ -166,6 +131,41 @@ class MqttClient(Communicator):
|
|||||||
retain=True,
|
retain=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# register callbacks
|
||||||
|
for name in self.config.cameras.keys():
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/recordings/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/snapshots/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/detect/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/motion/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/improve_contrast/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/motion_threshold/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/{name}/motion_contour_area/set",
|
||||||
|
self.on_mqtt_command,
|
||||||
|
)
|
||||||
|
|
||||||
|
self.client.message_callback_add(
|
||||||
|
f"{self.mqtt_config.topic_prefix}/restart", self.on_mqtt_command
|
||||||
|
)
|
||||||
|
|
||||||
if not self.mqtt_config.tls_ca_certs is None:
|
if not self.mqtt_config.tls_ca_certs is None:
|
||||||
if (
|
if (
|
||||||
not self.mqtt_config.tls_client_cert is None
|
not self.mqtt_config.tls_client_cert is None
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user