2021-01-21 03:26:49 +03:00
---
id: mqtt
title: MQTT
---
These are the MQTT messages generated by Frigate. The default topic_prefix is `frigate` , but can be changed in the config file.
2026-04-14 17:03:34 +03:00
:::info
MQTT requires a network connection to your broker. This is typically local, but will require internet if using a cloud-hosted MQTT broker. See [Network Requirements ](/frigate/network_requirements#mqtt ) for details.
:::
2023-07-15 03:06:00 +03:00
## General Frigate Topics
2021-01-21 03:26:49 +03:00
### `frigate/available`
2021-05-19 07:08:41 +03:00
Designed to be used as an availability topic with Home Assistant. Possible message are:
2023-01-13 16:18:15 +03:00
"online": published when Frigate is running (on startup)
2026-03-19 23:46:37 +03:00
"stopped": published when Frigate is stopped normally
"offline": published automatically by the MQTT broker if Frigate disconnects unexpectedly (via MQTT Will Message)
2021-01-21 03:26:49 +03:00
2021-07-06 15:23:00 +03:00
### `frigate/restart`
2023-01-13 16:18:15 +03:00
Causes Frigate to exit. Docker should be configured to automatically restart the container on exit.
2021-07-06 15:23:00 +03:00
2021-01-21 03:26:49 +03:00
### `frigate/events`
2024-09-12 03:53:58 +03:00
Message published for each changed tracked object. The first message is published when the tracked object is no longer marked as a false_positive. When Frigate finds a better snapshot of the tracked object or when a zone change occurs, it will publish a message with the same id. When the tracked object ends, a final message is published with `end_time` set.
2021-01-21 03:26:49 +03:00
```json
{
2021-09-15 15:16:52 +03:00
"type": "update", // new, update, end
2021-01-21 03:26:49 +03:00
"before": {
"id": "1607123955.475377-mxklsc",
"camera": "front_door",
"frame_time": 1607123961.837752,
2025-02-25 20:02:34 +03:00
"snapshot": {
2025-09-16 20:03:36 +03:00
"frame_time": 1607123965.975463,
"box": [415, 489, 528, 700],
"area": 12728,
"region": [260, 446, 660, 846],
"score": 0.77546,
"attributes": []
2025-02-25 20:02:34 +03:00
},
2021-01-21 03:26:49 +03:00
"label": "person",
2022-10-01 17:00:56 +03:00
"sub_label": null,
2021-01-21 03:26:49 +03:00
"top_score": 0.958984375,
"false_positive": false,
"start_time": 1607123955.475377,
"end_time": null,
"score": 0.7890625,
"box": [424, 500, 536, 712],
"area": 23744,
2022-04-10 16:25:18 +03:00
"ratio": 2.113207,
2021-01-21 03:26:49 +03:00
"region": [264, 450, 667, 853],
"current_zones": ["driveway"],
"entered_zones": ["yard", "driveway"],
2021-09-15 15:16:52 +03:00
"thumbnail": null,
"has_snapshot": false,
2022-02-06 17:17:46 +03:00
"has_clip": false,
2024-09-02 16:24:15 +03:00
"active": true, // convenience attribute, this is strictly opposite of "stationary"
2022-02-12 15:59:10 +03:00
"stationary": false, // whether or not the object is considered stationary
2022-02-06 17:17:46 +03:00
"motionless_count": 0, // number of frames the object has been motionless
2023-06-17 17:56:22 +03:00
"position_changes": 2, // number of times the object has moved from a stationary position
2023-07-09 19:40:39 +03:00
"attributes": {
"face": 0.64
}, // attributes with top score that have been identified on the object at any point
2025-02-10 23:23:42 +03:00
"current_attributes": [], // detailed data about the current attributes in this frame
"current_estimated_speed": 0.71, // current estimated speed (mph or kph) for objects moving through zones with speed estimation enabled
2025-09-16 20:03:36 +03:00
"average_estimated_speed": 14.3, // average estimated speed (mph or kph) for objects moving through zones with speed estimation enabled
2025-03-12 23:38:28 +03:00
"velocity_angle": 180, // direction of travel relative to the frame for objects moving through zones with speed estimation enabled
2025-03-13 02:45:16 +03:00
"recognized_license_plate": "ABC12345", // a recognized license plate for car objects
"recognized_license_plate_score": 0.933451
2021-01-21 03:26:49 +03:00
},
"after": {
"id": "1607123955.475377-mxklsc",
"camera": "front_door",
"frame_time": 1607123962.082975,
2025-02-25 20:02:34 +03:00
"snapshot": {
2025-09-16 20:03:36 +03:00
"frame_time": 1607123965.975463,
"box": [415, 489, 528, 700],
"area": 12728,
"region": [260, 446, 660, 846],
"score": 0.77546,
"attributes": []
2025-02-25 20:02:34 +03:00
},
2021-01-21 03:26:49 +03:00
"label": "person",
2023-07-14 14:28:16 +03:00
"sub_label": ["John Smith", 0.79],
2021-01-21 03:26:49 +03:00
"top_score": 0.958984375,
"false_positive": false,
"start_time": 1607123955.475377,
"end_time": null,
"score": 0.87890625,
"box": [432, 496, 544, 854],
"area": 40096,
2022-04-10 16:25:18 +03:00
"ratio": 1.251397,
2021-01-21 03:26:49 +03:00
"region": [218, 440, 693, 915],
"current_zones": ["yard", "driveway"],
"entered_zones": ["yard", "driveway"],
2021-09-15 15:16:52 +03:00
"thumbnail": null,
"has_snapshot": false,
2022-02-06 17:17:46 +03:00
"has_clip": false,
2024-09-02 16:24:15 +03:00
"active": true, // convenience attribute, this is strictly opposite of "stationary"
2022-02-12 15:59:10 +03:00
"stationary": false, // whether or not the object is considered stationary
2022-02-06 17:17:46 +03:00
"motionless_count": 0, // number of frames the object has been motionless
2023-06-17 17:56:22 +03:00
"position_changes": 2, // number of times the object has changed position
2023-07-09 19:40:39 +03:00
"attributes": {
"face": 0.86
}, // attributes with top score that have been identified on the object at any point
2023-06-17 17:56:22 +03:00
"current_attributes": [
// detailed data about the current attributes in this frame
{
"label": "face",
"box": [442, 506, 534, 524],
2023-07-09 19:40:39 +03:00
"score": 0.86
2023-06-17 17:56:22 +03:00
}
2025-02-10 23:23:42 +03:00
],
"current_estimated_speed": 0.77, // current estimated speed (mph or kph) for objects moving through zones with speed estimation enabled
2025-09-16 20:03:36 +03:00
"average_estimated_speed": 14.31, // average estimated speed (mph or kph) for objects moving through zones with speed estimation enabled
2025-03-12 23:38:28 +03:00
"velocity_angle": 180, // direction of travel relative to the frame for objects moving through zones with speed estimation enabled
2025-03-13 02:45:16 +03:00
"recognized_license_plate": "ABC12345", // a recognized license plate for car objects
"recognized_license_plate_score": 0.933451
2021-01-21 03:26:49 +03:00
}
}
```
2024-11-18 21:26:44 +03:00
### `frigate/tracked_object_update`
2026-02-23 16:46:55 +03:00
Message published for updates to tracked object metadata. All messages include an `id` field which is the tracked object's event ID, and can be used to look up the event via the API or match it to items in the UI.
2025-04-29 01:43:03 +03:00
#### Generative AI Description Update
2024-11-18 21:26:44 +03:00
```json
{
"type": "description",
"id": "1607123955.475377-mxklsc",
"description": "The car is a red sedan moving away from the camera."
}
2025-04-29 01:43:03 +03:00
```
#### Face Recognition Update
2026-02-23 16:46:55 +03:00
Published after each recognition attempt, regardless of whether the score meets `recognition_threshold` . See the [Face Recognition ](/configuration/face_recognition ) documentation for details on how scoring works.
2025-04-29 01:43:03 +03:00
```json
{
"type": "face",
"id": "1607123955.475377-mxklsc",
2026-02-23 16:46:55 +03:00
"name": "John", // best matching person, or null if no match
"score": 0.95, // running weighted average across all recognition attempts
2025-04-29 01:43:03 +03:00
"camera": "front_door_cam",
2025-05-27 18:26:00 +03:00
"timestamp": 1607123958.748393
2025-04-29 01:43:03 +03:00
}
```
#### License Plate Recognition Update
2026-02-23 16:46:55 +03:00
Published when a license plate is recognized on a car object. See the [License Plate Recognition ](/configuration/license_plate_recognition ) documentation for details.
2025-04-29 01:43:03 +03:00
```json
{
"type": "lpr",
"id": "1607123955.475377-mxklsc",
2026-02-23 16:46:55 +03:00
"name": "John's Car", // known name for the plate, or null
2025-04-29 01:43:03 +03:00
"plate": "123ABC",
"score": 0.95,
"camera": "driveway_cam",
2026-03-09 01:22:38 +03:00
"timestamp": 1607123958.748393,
"plate_box": [917, 487, 1029, 529] // box coordinates of the detected license plate in the frame
2025-04-29 01:43:03 +03:00
}
2024-11-18 21:26:44 +03:00
```
2025-11-23 18:40:25 +03:00
#### Object Classification Update
Message published when [object classification ](/configuration/custom_classification/object_classification ) reaches consensus on a classification result.
**Sub label type:**
```json
{
"type": "classification",
"id": "1607123955.475377-mxklsc",
"camera": "front_door_cam",
"timestamp": 1607123958.748393,
"model": "person_classifier",
"sub_label": "delivery_person",
"score": 0.87
}
```
**Attribute type:**
```json
{
"type": "classification",
"id": "1607123955.475377-mxklsc",
"camera": "front_door_cam",
"timestamp": 1607123958.748393,
"model": "helmet_detector",
"attribute": "yes",
"score": 0.92
}
```
2024-06-21 19:43:52 +03:00
### `frigate/reviews`
2025-11-23 18:40:25 +03:00
Message published for each changed review item. The first message is published when the `detection` or `alert` is initiated.
2025-10-12 15:28:08 +03:00
An `update` with the same ID will be published when:
2025-11-23 18:40:25 +03:00
2025-10-12 15:28:08 +03:00
- The severity changes from `detection` to `alert`
- Additional objects are detected
- An object is recognized via face, lpr, etc.
When the review activity has ended a final `end` message is published.
2024-06-21 19:43:52 +03:00
```json
{
2024-09-12 03:53:58 +03:00
"type": "update", // new, update, end
2024-06-21 19:43:52 +03:00
"before": {
2024-09-12 03:53:58 +03:00
"id": "1718987129.308396-fqk5ka", // review_id
2024-06-21 19:43:52 +03:00
"camera": "front_cam",
"start_time": 1718987129.308396,
"end_time": null,
"severity": "detection",
"thumb_path": "/media/frigate/clips/review/thumb-front_cam-1718987129.308396-fqk5ka.webp",
"data": {
2024-09-12 03:53:58 +03:00
"detections": [
// list of event IDs
2024-06-21 19:43:52 +03:00
"1718987128.947436-g92ztx",
"1718987148.879516-d7oq7r",
"1718987126.934663-q5ywpt"
],
2024-09-12 03:53:58 +03:00
"objects": ["person", "car"],
2024-06-21 19:43:52 +03:00
"sub_labels": [],
"zones": [],
"audio": []
}
},
"after": {
"id": "1718987129.308396-fqk5ka",
"camera": "front_cam",
"start_time": 1718987129.308396,
"end_time": null,
"severity": "alert",
"thumb_path": "/media/frigate/clips/review/thumb-front_cam-1718987129.308396-fqk5ka.webp",
"data": {
"detections": [
"1718987128.947436-g92ztx",
"1718987148.879516-d7oq7r",
"1718987126.934663-q5ywpt"
],
2024-09-12 03:53:58 +03:00
"objects": ["person", "car"],
2024-07-25 16:14:22 +03:00
"sub_labels": ["Bob"],
2024-09-12 03:53:58 +03:00
"zones": ["front_yard"],
2024-06-21 19:43:52 +03:00
"audio": []
}
}
2024-07-25 16:14:22 +03:00
}
2024-06-21 19:43:52 +03:00
```
2025-07-07 17:03:57 +03:00
### `frigate/triggers`
Message published when a trigger defined in a camera's `semantic_search` configuration fires.
```json
{
"name": "car_trigger",
"camera": "driveway",
"event_id": "1751565549.853251-b69j73",
"type": "thumbnail",
"score": 0.85
}
```
2021-01-21 03:26:49 +03:00
### `frigate/stats`
Same data available at `/api/stats` published at a configurable interval.
2024-09-26 17:12:15 +03:00
### `frigate/camera_activity`
Returns data about each camera, its current features, and if it is detecting motion, objects, etc. Can be triggered by publising to `frigate/onConnect`
Camera profile support (#22482)
* add CameraProfileConfig model for named config overrides
* add profiles field to CameraConfig
* add active_profile field to FrigateConfig
Runtime-only field excluded from YAML serialization, tracks which
profile is currently active.
* add ProfileManager for profile activation and persistence
Handles snapshotting base configs, applying profile overrides via
deep_merge + apply_section_update, publishing ZMQ updates, and
persisting active profile to /config/.active_profile.
* add profile API endpoints (GET /profiles, GET/PUT /profile)
* add MQTT and dispatcher integration for profiles
- Subscribe to frigate/profile/set MQTT topic
- Publish profile/state and profiles/available on connect
- Add _on_profile_command handler to dispatcher
- Broadcast active profile state on WebSocket connect
* wire ProfileManager into app startup and FastAPI
- Create ProfileManager after dispatcher init
- Restore persisted profile on startup
- Pass dispatcher and profile_manager to FastAPI app
* add tests for invalid profile values and keys
Tests that Pydantic rejects: invalid field values (fps: "not_a_number"),
unknown section keys (ffmpeg in profile), invalid nested values, and
invalid profiles in full config parsing.
* formatting
* fix CameraLiveConfig JSON serialization error on profile activation
refactor _publish_updates to only publish ZMQ updates for
sections that actually changed, not all sections on affected cameras.
* consolidate
* add enabled field to camera profiles for enabling/disabling cameras
* add zones support to camera profiles
* add frontend profile types, color utility, and config save support
* add profile state management and save preview support
* add profileName prop to BaseSection for profile-aware config editing
* add profile section dropdown and wire into camera settings pages
* add per-profile camera enable/disable to Camera Management view
* add profiles summary page with card-based layout and fix backend zone comparison bug
* add active profile badge to settings toolbar
* i18n
* add red dot for any pending changes including profiles
* profile support for mask and zone editor
* fix hidden field validation errors caused by lodash wildcard and schema gaps
lodash unset does not support wildcard (*) segments, so hidden fields like
filters.*.mask were never stripped from form data, leaving null raw_coordinates
that fail RJSF anyOf validation. Add unsetWithWildcard helper and also strip
hidden fields from the JSON schema itself as defense-in-depth.
* add face_recognition and lpr to profile-eligible sections
* move profile dropdown from section panes to settings header
* add profiles enable toggle and improve empty state
* formatting
* tweaks
* tweak colors and switch
* fix profile save diff, masksAndZones delete, and config sync
* ui tweaks
* ensure profile manager gets updated config
* rename profile settings to ui settings
* refactor profilesview and add dots/border colors when overridden
* implement an update_config method for profile manager
* fix mask deletion
* more unique colors
* add top-level profiles config section with friendly names
* implement profile friendly names and improve profile UI
- Add ProfileDefinitionConfig type and profiles field to FrigateConfig
- Use ProfilesApiResponse type with friendly_name support throughout
- Replace Record<string, unknown> with proper JsonObject/JsonValue types
- Add profile creation form matching zone pattern (Zod + NameAndIdFields)
- Add pencil icon for renaming profile friendly names in ProfilesView
- Move Profiles menu item to first under Camera Configuration
- Add activity indicators on save/rename/delete buttons
- Display friendly names in CameraManagementView profile selector
- Fix duplicate colored dots in management profile dropdown
- Fix i18n namespace for overridden base config tooltips
- Move profile override deletion from dropdown trash icon to footer
button with confirmation dialog, matching Reset to Global pattern
- Remove Add Profile from section header dropdown to prevent saving
camera overrides before top-level profile definition exists
- Clean up newProfiles state after API profile deletion
- Refresh profiles SWR cache after saving profile definitions
* remove profile badge in settings and add profiles to main menu
* use icon only on mobile
* change color order
* docs
* show activity indicator on trash icon while deleting a profile
* tweak language
* immediately create profiles on backend instead of deferring to Save All
* hide restart-required fields when editing a profile section
fields that require a restart cannot take effect via profile switching,
so they are merged into hiddenFields when profileName is set
* show active profile indicator in desktop status bar
* fix profile config inheritance bug where Pydantic defaults override base values
The /config API was dumping profile overrides with model_dump() which included
all Pydantic defaults. When the frontend merged these over
the camera's base config, explicitly-set base values were
lost. Now profile overrides are re-dumped with exclude_unset=True so only
user-specified fields are returned.
Also fixes the Save All path generating spurious deletion markers for
restart-required fields that are hidden during profile
editing but not excluded from the raw data sanitization in
prepareSectionSavePayload.
* docs tweaks
* docs tweak
* formatting
* formatting
* fix typing
* fix test pollution
test_maintainer was injecting MagicMock() into sys.modules["frigate.config.camera.updater"] at module load time and never restoring it. When the profile tests later imported CameraConfigUpdateEnum and CameraConfigUpdateTopic from that module, they got mock objects instead of the real dataclass/enum, so equality comparisons always failed
* remove
* fix settings showing profile-merged values when editing base config
When a profile is active, the in-memory config contains effective
(profile-merged) values. The settings UI was displaying these merged
values even when the "Base Config" view was selected.
Backend: snapshot pre-profile base configs in ProfileManager and expose
them via a `base_config` key in the /api/config camera response when a
profile is active. The top-level sections continue to reflect the
effective running config.
Frontend: read from `base_config` when available in BaseSection,
useConfigOverride, useAllCameraOverrides, and prepareSectionSavePayload.
Include formData labels in Object/Audio switches widgets so that labels
added only by a profile override remain visible when editing that profile.
* use rasterized_mask as field
makes it easier to exclude from the schema with exclude=True
prevents leaking of the field when using model_dump for profiles
* fix zones
- Fix zone colors not matching across profiles by falling back to base zone color when profile zone data lacks a color field
- Use base_config for base-layer values in masks/zones view so profile-merged values don't pollute the base config editing view
- Handle zones separately in profile manager snapshot/restore since ZoneConfig requires special serialization (color as private attr, contour generation)
- Inherit base zone color and generate contours for profile zone overrides in profile manager
* formatting
* don't require restart for camera enabled change for profiles
* publish camera state when changing profiles
* formatting
* remove available profiles from mqtt
* improve typing
2026-03-19 17:47:57 +03:00
### `frigate/profile/set`
Topic to activate or deactivate a [profile ](/configuration/profiles ). Publish a profile name to activate it, or `none` to deactivate the current profile.
### `frigate/profile/state`
Topic with the currently active profile name. Published value is the profile name or `none` if no profile is active. This topic is retained.
2024-09-10 20:24:44 +03:00
### `frigate/notifications/set`
Topic to turn notifications on and off. Expected values are `ON` and `OFF` .
### `frigate/notifications/state`
Topic with current state of notifications. Published values are `ON` and `OFF` .
2023-07-15 03:06:00 +03:00
## Frigate Camera Topics
2025-12-29 23:54:07 +03:00
### `frigate/<camera_name>/status/<role>`
2025-08-22 15:42:36 +03:00
Publishes the current health status of each role that is enabled (`audio`, `detect` , `record` ). Possible values are:
- `online` : Stream is running and being processed
- `offline` : Stream is offline and is being restarted
2026-05-24 23:59:56 +03:00
- `disabled` : Camera is currently turned off (either at runtime via the `enabled/set` topic, or persistently via the configuration file). See [Camera state ](/configuration/live#camera-state ) for the distinction.
2025-08-22 15:42:36 +03:00
2023-07-15 03:06:00 +03:00
### `frigate/<camera_name>/<object_name>`
Publishes the count of objects for the camera for use as a sensor in Home Assistant.
`all` can be used as the object_name for the count of all objects for the camera.
2024-09-02 16:24:15 +03:00
### `frigate/<camera_name>/<object_name>/active`
Publishes the count of active objects for the camera for use as a sensor in Home
Assistant. `all` can be used as the object_name for the count of all active objects
for the camera.
2023-07-15 03:06:00 +03:00
### `frigate/<zone_name>/<object_name>`
Publishes the count of objects for the zone for use as a sensor in Home Assistant.
`all` can be used as the object_name for the count of all objects for the zone.
2024-09-02 16:24:15 +03:00
### `frigate/<zone_name>/<object_name>/active`
Publishes the count of active objects for the zone for use as a sensor in Home
Assistant. `all` can be used as the object_name for the count of all objects for the
zone.
2023-07-15 03:06:00 +03:00
### `frigate/<camera_name>/<object_name>/snapshot`
Publishes a jpeg encoded frame of the detected object type. When the object is no longer detected, the highest confidence image is published or the original image
is published again.
The height and crop of snapshots can be configured in the config.
### `frigate/<camera_name>/audio/<audio_type>`
Publishes "ON" when a type of audio is detected and "OFF" when it is not for the camera for use as a sensor in Home Assistant.
2025-08-26 17:50:50 +03:00
`all` can be used as the audio_type for the status of all audio types.
2023-07-15 03:06:00 +03:00
### `frigate/<camera_name>/audio/dBFS`
Publishes the dBFS value for audio detected on this camera.
**NOTE:** Requires audio detection to be enabled
### `frigate/<camera_name>/audio/rms`
Publishes the rms value for audio detected on this camera.
**NOTE:** Requires audio detection to be enabled
2025-05-27 18:26:00 +03:00
### `frigate/<camera_name>/audio/transcription`
Publishes transcribed text for audio detected on this camera.
**NOTE:** Requires audio detection and transcription to be enabled
2025-11-23 18:40:25 +03:00
### `frigate/<camera_name>/classification/<model_name>`
Publishes the current state detected by a state classification model for the camera. The topic name includes the model name as configured in your classification settings.
The published value is the detected state class name (e.g., `open` , `closed` , `on` , `off` ). The state is only published when it changes, helping to reduce unnecessary MQTT traffic.
2025-03-03 18:30:52 +03:00
### `frigate/<camera_name>/enabled/set`
2026-05-27 21:03:09 +03:00
Topic to turn Frigate's processing of a camera on or off at runtime. Expected values are `ON` and `OFF` . The change is persisted across Frigate restarts (see [Runtime toggle persistence ](/configuration/live#runtime-toggle-persistence )). To permanently change the configured value, use **Settings → Global configuration → Camera management** in the Frigate UI. See [Camera state ](/configuration/live#camera-state ) for the difference between turning a camera off and disabling it.
2025-03-03 18:30:52 +03:00
### `frigate/<camera_name>/enabled/state`
2026-05-24 23:59:56 +03:00
Topic with current runtime state of processing for a camera. Published values are `ON` and `OFF` .
2025-03-03 18:30:52 +03:00
2021-01-21 03:26:49 +03:00
### `frigate/<camera_name>/detect/set`
2026-05-27 21:03:09 +03:00
Topic to turn object detection for a camera on and off. Expected values are `ON` and `OFF` . The change is persisted across Frigate restarts (see [Runtime toggle persistence ](/configuration/live#runtime-toggle-persistence )).
2021-01-21 03:26:49 +03:00
### `frigate/<camera_name>/detect/state`
2023-07-01 19:19:14 +03:00
Topic with current state of object detection for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/audio/set`
2026-05-27 21:03:09 +03:00
Topic to turn audio detection for a camera on and off. Expected values are `ON` and `OFF` . The change is persisted across Frigate restarts (see [Runtime toggle persistence ](/configuration/live#runtime-toggle-persistence )).
2023-07-01 19:19:14 +03:00
### `frigate/<camera_name>/audio/state`
Topic with current state of audio detection for a camera. Published values are `ON` and `OFF` .
2021-01-21 03:26:49 +03:00
2021-07-11 22:49:10 +03:00
### `frigate/<camera_name>/recordings/set`
2021-01-21 03:26:49 +03:00
2026-05-27 21:03:09 +03:00
Topic to turn recordings for a camera on and off. Expected values are `ON` and `OFF` . The change is persisted across Frigate restarts (see [Runtime toggle persistence ](/configuration/live#runtime-toggle-persistence )).
2021-01-21 03:26:49 +03:00
2021-07-11 22:49:10 +03:00
### `frigate/<camera_name>/recordings/state`
2021-01-21 03:26:49 +03:00
2021-07-11 22:49:10 +03:00
Topic with current state of recordings for a camera. Published values are `ON` and `OFF` .
2021-01-21 03:26:49 +03:00
### `frigate/<camera_name>/snapshots/set`
2026-05-27 21:03:09 +03:00
Topic to turn snapshots for a camera on and off. Expected values are `ON` and `OFF` . The change is persisted across Frigate restarts (see [Runtime toggle persistence ](/configuration/live#runtime-toggle-persistence )).
2021-01-21 03:26:49 +03:00
### `frigate/<camera_name>/snapshots/state`
Topic with current state of snapshots for a camera. Published values are `ON` and `OFF` .
2022-04-16 16:52:02 +03:00
2022-04-26 15:29:28 +03:00
### `frigate/<camera_name>/motion/set`
Topic to turn motion detection for a camera on and off. Expected values are `ON` and `OFF` .
NOTE: Turning off motion detection will fail if detection is not disabled.
2022-05-15 15:03:33 +03:00
### `frigate/<camera_name>/motion`
Whether camera_name is currently detecting motion. Expected values are `ON` and `OFF` .
NOTE: After motion is initially detected, `ON` will be set until no motion has
been detected for `mqtt_off_delay` seconds (30 by default).
2022-04-26 15:29:28 +03:00
### `frigate/<camera_name>/motion/state`
Topic with current state of motion detection for a camera. Published values are `ON` and `OFF` .
2022-04-16 16:52:02 +03:00
### `frigate/<camera_name>/improve_contrast/set`
Topic to turn improve_contrast for a camera on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/improve_contrast/state`
Topic with current state of improve_contrast for a camera. Published values are `ON` and `OFF` .
2022-04-27 17:52:45 +03:00
### `frigate/<camera_name>/motion_threshold/set`
Topic to adjust motion threshold for a camera. Expected value is an integer.
### `frigate/<camera_name>/motion_threshold/state`
Topic with current motion threshold for a camera. Published value is an integer.
### `frigate/<camera_name>/motion_contour_area/set`
Topic to adjust motion contour area for a camera. Expected value is an integer.
### `frigate/<camera_name>/motion_contour_area/state`
2023-04-26 14:08:53 +03:00
Topic with current motion contour area for a camera. Published value is an integer.
2026-02-28 17:04:43 +03:00
### `frigate/<camera_name>/motion_mask/<mask_name>/set`
Topic to turn a specific motion mask for a camera on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/motion_mask/<mask_name>/state`
Topic with current state of a specific motion mask for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/object_mask/<mask_name>/set`
Topic to turn a specific object mask for a camera on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/object_mask/<mask_name>/state`
Topic with current state of a specific object mask for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/zone/<zone_name>/set`
Topic to turn a specific zone for a camera on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/zone/<zone_name>/state`
Topic with current state of a specific zone for a camera. Published values are `ON` and `OFF` .
2025-03-20 19:51:08 +03:00
### `frigate/<camera_name>/review_status`
Topic with current activity status of the camera. Possible values are `NONE` , `DETECTION` , or `ALERT` .
2023-04-26 14:08:53 +03:00
### `frigate/<camera_name>/ptz`
Topic to send PTZ commands to camera.
2023-06-17 17:56:22 +03:00
| Command | Description |
| ---------------------- | ----------------------------------------------------------------------------------------- |
2023-07-06 15:42:17 +03:00
| `preset_<preset_name>` | send command to move to preset with name `<preset_name>` |
2023-04-26 14:08:53 +03:00
| `MOVE_<dir>` | send command to continuously move in `<dir>` , possible values are [UP, DOWN, LEFT, RIGHT] |
| `ZOOM_<dir>` | send command to continuously zoom `<dir>` , possible values are [IN, OUT] |
2023-06-17 17:56:22 +03:00
| `STOP` | send command to stop moving |
2023-07-08 15:04:47 +03:00
### `frigate/<camera_name>/ptz_autotracker/set`
Topic to turn the PTZ autotracker for a camera on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/ptz_autotracker/state`
Topic with current state of the PTZ autotracker for a camera. Published values are `ON` and `OFF` .
2023-10-26 14:20:55 +03:00
2023-11-02 02:20:26 +03:00
### `frigate/<camera_name>/ptz_autotracker/active`
Topic to determine if PTZ autotracker is actively tracking an object. Published values are `ON` and `OFF` .
2025-02-11 17:46:25 +03:00
### `frigate/<camera_name>/review_alerts/set`
Topic to turn review alerts for a camera on or off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/review_alerts/state`
Topic with current state of review alerts for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/review_detections/set`
Topic to turn review detections for a camera on or off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/review_detections/state`
Topic with current state of review detections for a camera. Published values are `ON` and `OFF` .
2025-08-10 16:38:04 +03:00
### `frigate/<camera_name>/object_descriptions/set`
2025-07-14 15:58:43 +03:00
2025-08-10 16:38:04 +03:00
Topic to turn generative AI object descriptions for a camera on or off. Expected values are `ON` and `OFF` .
2025-07-14 15:58:43 +03:00
2025-08-10 16:38:04 +03:00
### `frigate/<camera_name>/object_descriptions/state`
2025-07-14 15:58:43 +03:00
2025-08-10 16:38:04 +03:00
Topic with current state of generative AI object descriptions for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/review_descriptions/set`
Topic to turn generative AI review descriptions for a camera on or off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/review_descriptions/state`
Topic with current state of generative AI review descriptions for a camera. Published values are `ON` and `OFF` .
2025-07-14 15:58:43 +03:00
2023-10-26 14:20:55 +03:00
### `frigate/<camera_name>/birdseye/set`
Topic to turn Birdseye for a camera on and off. Expected values are `ON` and `OFF` . Birdseye mode
must be enabled in the configuration.
### `frigate/<camera_name>/birdseye/state`
Topic with current state of Birdseye for a camera. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/birdseye_mode/set`
Topic to set Birdseye mode for a camera. Birdseye offers different modes to customize under which circumstances the camera is shown.
_Note: Changing the value from `CONTINUOUS` -> `MOTION | OBJECTS` will take up to 30 seconds for
the camera to be removed from the view._
| Command | Description |
| ------------ | ----------------------------------------------------------------- |
| `CONTINUOUS` | Always included |
| `MOTION` | Show when detected motion within the last 30 seconds are included |
| `OBJECTS` | Shown if an active object tracked within the last 30 seconds |
### `frigate/<camera_name>/birdseye_mode/state`
Topic with current state of the Birdseye mode for a camera. Published values are `CONTINUOUS` , `MOTION` , `OBJECTS` .
2025-02-11 05:47:15 +03:00
### `frigate/<camera_name>/notifications/set`
Topic to turn notifications on and off. Expected values are `ON` and `OFF` .
### `frigate/<camera_name>/notifications/state`
Topic with current state of notifications. Published values are `ON` and `OFF` .
### `frigate/<camera_name>/notifications/suspend`
Topic to suspend notifications for a certain number of minutes. Expected value is an integer.
### `frigate/<camera_name>/notifications/suspended`
Topic with timestamp that notifications are suspended until. Published value is a UNIX timestamp, or 0 if notifications are not suspended.