change MQTT to toggle recordings instead of clips

This commit is contained in:
Jason Hunter
2021-07-11 15:49:10 -04:00
committed by Blake Blackshear
parent 181a504a14
commit c527b1ca5d
6 changed files with 37 additions and 37 deletions

View File

@@ -21,22 +21,22 @@ logger = logging.getLogger(__name__)
def create_mqtt_client(config: FrigateConfig, camera_metrics):
mqtt_config = config.mqtt
def on_clips_command(client, userdata, message):
def on_recordings_command(client, userdata, message):
payload = message.payload.decode()
logger.debug(f"on_clips_toggle: {message.topic} {payload}")
logger.debug(f"on_recordings_toggle: {message.topic} {payload}")
camera_name = message.topic.split("/")[-3]
clips_settings = config.cameras[camera_name].clips
record_settings = config.cameras[camera_name].record
if payload == "ON":
if not clips_settings.enabled:
logger.info(f"Turning on clips for {camera_name} via mqtt")
clips_settings.enabled = True
if not record_settings.enabled:
logger.info(f"Turning on recordings for {camera_name} via mqtt")
record_settings.enabled = True
elif payload == "OFF":
if clips_settings.enabled:
logger.info(f"Turning off clips for {camera_name} via mqtt")
clips_settings.enabled = False
if record_settings.enabled:
logger.info(f"Turning off recordings for {camera_name} via mqtt")
record_settings.enabled = False
else:
logger.warning(f"Received unsupported value at {message.topic}: {payload}")
@@ -120,7 +120,7 @@ def create_mqtt_client(config: FrigateConfig, camera_metrics):
# register callbacks
for name in config.cameras.keys():
client.message_callback_add(
f"{mqtt_config.topic_prefix}/{name}/clips/set", on_clips_command
f"{mqtt_config.topic_prefix}/{name}/recordings/set", on_recordings_command
)
client.message_callback_add(
f"{mqtt_config.topic_prefix}/{name}/snapshots/set", on_snapshots_command
@@ -159,8 +159,8 @@ def create_mqtt_client(config: FrigateConfig, camera_metrics):
for name in config.cameras.keys():
client.publish(
f"{mqtt_config.topic_prefix}/{name}/clips/state",
"ON" if config.cameras[name].clips.enabled else "OFF",
f"{mqtt_config.topic_prefix}/{name}/recordings/state",
"ON" if config.cameras[name].record.enabled else "OFF",
retain=True,
)
client.publish(