From 8c610bea492c4d4e7bbad79e99557f272252b427 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sun, 28 Apr 2024 08:35:50 -0600 Subject: [PATCH] Remove dev env var requirement and update docs for latest config (#10483) * Update docs for alerts and event review * Add docs for camera groups * Update reference config with new config values * Remove env variable requirement * Add to sidebar * Update snapshot docs * add zones example to detection docs too * Generalize the zone docs --- docs/docs/configuration/cameras.md | 20 ++++++++++++ docs/docs/configuration/reference.md | 15 +++++++++ docs/docs/configuration/review.md | 47 ++++++++++++++++++++++++++++ docs/docs/configuration/snapshots.md | 4 ++- docs/docs/configuration/zones.md | 38 +++++++++++++++++++--- docs/sidebars.js | 1 + frigate/app.py | 18 ----------- 7 files changed, 120 insertions(+), 23 deletions(-) create mode 100644 docs/docs/configuration/review.md diff --git a/docs/docs/configuration/cameras.md b/docs/docs/configuration/cameras.md index 47cc61cde..394cf935a 100644 --- a/docs/docs/configuration/cameras.md +++ b/docs/docs/configuration/cameras.md @@ -94,3 +94,23 @@ This list of working and non-working PTZ cameras is based on user feedback. | Tapo C210 | ❌ | ❌ | Incomplete ONVIF support | | Uniview IPC672LR-AX4DUPK | ✅ | ❌ | Firmware says FOV relative movement is supported, but camera doesn't actually move when sending ONVIF commands | | Vikylin PTZ-2804X-I2 | ❌ | ❌ | Incomplete ONVIF support | + +## Setting up camera groups + +:::tip + +It is recommended to set up camera groups using the UI. + +::: + +Cameras can be grouped together and assigned a name and icon, this allows them to be reviewed and filtered together. There will always be the default group for all cameras. + +```yaml +camera_groups: + front: + cameras: + - driveway_cam + - garage_cam + icon: car + order: 0 +``` \ No newline at end of file diff --git a/docs/docs/configuration/reference.md b/docs/docs/configuration/reference.md index 5f89eddb7..829bae690 100644 --- a/docs/docs/configuration/reference.md +++ b/docs/docs/configuration/reference.md @@ -653,4 +653,19 @@ telemetry: # Optional: Enable the latest version outbound check (default: shown below) # NOTE: If you use the HomeAssistant integration, disabling this will prevent it from reporting new versions version_check: True + +# Optional: Camera groups (default: no groups are setup) +# NOTE: It is recommended to use the UI to setup camera groups +camera_groups: + # Required: Name of camera group + front: + # Required: list of cameras in the group + cameras: + - front_cam + - side_cam + - front_doorbell_cam + # Required: icon used for group + icon: car + # Required: index of this group + order: 0 ``` diff --git a/docs/docs/configuration/review.md b/docs/docs/configuration/review.md new file mode 100644 index 000000000..667401d0c --- /dev/null +++ b/docs/docs/configuration/review.md @@ -0,0 +1,47 @@ +--- +id: review +title: Review +--- + +Review items are saved as periods of time where frigate detected events. After watching the preview of a review item it is marked as reviewed. + +## Restricting alerts to specific labels + +By default a review item will only be marked as an alert if a person or car is detected. This can be configured to include any object or audio label using the following config: + +```yaml +# can be overridden at the camera level +review: + alerts: + labels: + - car + - cat + - dog + - person + - speech +``` + +## Restricting detections to specific labels + +By default all detections that do not qualify as an alert qualify as a detection. However, detections can further be filtered to only include certain labels or certain zones. + +By default a review item will only be marked as an alert if a person or car is detected. This can be configured to include any object or audio label using the following config: + +```yaml +# can be overridden at the camera level +review: + detections: + labels: + - bark + - dog +``` + +## Restricting review items to specific zones + +By default a review item will be created if any `review -> alerts -> labels` and `review -> detections -> labels` are detected anywhere in the camera frame. You will likely want to configure review items to only be created when the object enters an area of interest, [see the zone docs for more information](./zones.md#restricting-alerts-and-detections-to-specific-zones) + +:::info + +Because zones don't apply to audio, audio labels will always be marked as an alert. + +::: diff --git a/docs/docs/configuration/snapshots.md b/docs/docs/configuration/snapshots.md index 6145812db..dce689a67 100644 --- a/docs/docs/configuration/snapshots.md +++ b/docs/docs/configuration/snapshots.md @@ -3,6 +3,8 @@ id: snapshots title: Snapshots --- -Frigate can save a snapshot image to `/media/frigate/clips` for each event named as `-.jpg`. +Frigate can save a snapshot image to `/media/frigate/clips` for each object that is detected named as `-.jpg`. They are also accessible [via the api](../integrations/api.md#get-apieventsidsnapshotjpg) + +To only save snapshots for objects that enter a specific zone, [see the zone docs](./zones.md#restricting-snapshots-to-specific-zones) Snapshots sent via MQTT are configured in the [config file](https://docs.frigate.video/configuration/) under `cameras -> your_camera -> mqtt` diff --git a/docs/docs/configuration/zones.md b/docs/docs/configuration/zones.md index 177c47075..23fcea986 100644 --- a/docs/docs/configuration/zones.md +++ b/docs/docs/configuration/zones.md @@ -14,17 +14,47 @@ During testing, enable the Zones option for the debug feed so you can adjust as To create a zone, follow [the steps for a "Motion mask"](masks.md), but use the section of the web UI for creating a zone instead. -### Restricting events to specific zones +### Restricting alerts and detections to specific zones -Often you will only want events to be created when an object enters areas of interest. This is done using zones along with setting required_zones. Let's say you only want to be notified when an object enters your entire_yard zone, the config would be: +Often you will only want alerts to be created when an object enters areas of interest. This is done using zones along with setting required_zones. Let's say you only want to have an alert created when an object enters your entire_yard zone, the config would be: ```yaml cameras: name_of_your_camera: - record: - events: + review: + alerts: required_zones: - entire_yard + zones: + entire_yard: + coordinates: ... +``` + +You may also want to filter detections to only be created when an object enters a secondary area of interest. This is done using zones along with setting required_zones. Let's say you want alerts when an object enters the inner area of the yard but detections when an object enters the edge of the yard, the config would be + +```yaml +cameras: + name_of_your_camera: + review: + alerts: + required_zones: + - inner_yard + detections: + required_zones: + - edge_yard + zones: + edge_yard: + coordinates: ... + inner_yard: + coordinates: ... + +``` + +### Restricting snapshots to specific zones + +```yaml +cameras: + name_of_your_camera: snapshots: required_zones: - entire_yard diff --git a/docs/sidebars.js b/docs/sidebars.js index d4a3d9daf..eff51212c 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -32,6 +32,7 @@ module.exports = { ], Cameras: [ "configuration/cameras", + "configuration/review", "configuration/record", "configuration/snapshots", "configuration/motion_detection", diff --git a/frigate/app.py b/frigate/app.py index 94ec8c6c6..1306ee97d 100644 --- a/frigate/app.py +++ b/frigate/app.py @@ -597,24 +597,6 @@ class FrigateApp: self.init_logger() logger.info(f"Starting Frigate ({VERSION})") - if not os.environ.get("I_PROMISE_I_WONT_MAKE_AN_ISSUE_ON_GITHUB"): - print( - "**********************************************************************************" - ) - print( - "**********************************************************************************" - ) - print("Frigate 0.14 UNSTABLE") - print("This build is not for public use. Please use Frigate stable.") - print("Unstable/experimental builds are not enabled, Frigate is exiting.") - print( - "**********************************************************************************" - ) - print( - "**********************************************************************************" - ) - sys.exit(1) - try: self.ensure_dirs() try: