From 86a5b46c68404e59c542c9af3b188015b875cc9e Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Tue, 14 Sep 2021 08:07:36 -0500 Subject: [PATCH] more docs updates --- docs/docs/configuration/record.md | 21 ++++++++++++-- docs/docs/configuration/zones.md | 24 ++++++++++++++++ docs/docs/guides/ha_notifications.md | 2 +- docs/docs/guides/stationary_objects.md | 37 +++++++++++++++++++++++++ docs/sidebars.js | 1 + docs/static/img/driveway_zones.png | Bin 0 -> 1659862 bytes 6 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 docs/docs/guides/stationary_objects.md create mode 100644 docs/static/img/driveway_zones.png diff --git a/docs/docs/configuration/record.md b/docs/docs/configuration/record.md index 2660241a2..23189d1af 100644 --- a/docs/docs/configuration/record.md +++ b/docs/docs/configuration/record.md @@ -3,8 +3,23 @@ id: record title: Recording --- -Recordings can be enabled and are stored at `/media/frigate/recordings`. The folder structure for the recordings is `YYYY-MM/DD/HH//MM.SS.mp4`. These recordings are written directly from your camera stream without re-encoding. Each camera supports a configurable retention policy in the config. - -Exported clips are also created off of these recordings. Frigate chooses the largest matching retention value between the recording retention and the event retention when determining if a recording should be removed. +Recordings can be enabled and are stored at `/media/frigate/recordings`. The folder structure for the recordings is `YYYY-MM/DD/HH//MM.SS.mp4`. These recordings are written directly from your camera stream without re-encoding. Each camera supports a configurable retention policy in the config. Frigate chooses the largest matching retention value between the recording retention and the event retention when determining if a recording should be removed. H265 recordings can be viewed in Edge and Safari only. All other browsers require recordings to be encoded with H264. + +## What if I don't want 24/7 recordings? + +If you only used clips in previous versions with recordings disabled, you can use the following config to get the same behavior. This is also the default behavior when recordings are enabled. + +```yaml +record: + enabled: True + retain_days: 0 + events: + retain: + default: 10 +``` + +This configuration will retain recording segments that overlap with events for 10 days. Because multiple events can reference the same recording segments, this avoids storing duplicate footage for overlapping events and reduces overall storage needs. + +When `retain_days` is set to `0`, events will have up to `max_seconds` (defaults to 5 minutes) of recordings retained. Increasing `retain_days` to `1` will allow events to exceed the `max_seconds` limitation of up to 1 day. diff --git a/docs/docs/configuration/zones.md b/docs/docs/configuration/zones.md index b0a528aeb..a60236fa9 100644 --- a/docs/docs/configuration/zones.md +++ b/docs/docs/configuration/zones.md @@ -8,3 +8,27 @@ Zones allow you to define a specific area of the frame and apply additional filt During testing, enable the Zones option for the debug feed so you can adjust as needed. The zone line will increase in thickness when any object enters the zone. To create a zone, follow [the steps for a "Motion mask"](/configuration/masks), but use the section of the web UI for creating a zone instead. + +### Restricting zones to specific objects + +Sometimes you want to limit a zone to specific object types to have more granular control of when events/snapshots are saved. The following example will limit one zone to person objects and the other to cars. + +```yaml +camera: + record: + events: + required_zones: + - entire_yard + - front_yard_street + zones: + entire_yard: + coordinates: ... (everywhere you want a person) + objects: + - person + front_yard_street: + coordinates: ... (just the street) + objects: + - car +``` + +Only car objects can trigger the `front_yard_street` zone and only person can trigger the `entire_yard`. You will get clips for person objects that enter anywhere in the yard, and clips for cars only if they enter the street. diff --git a/docs/docs/guides/ha_notifications.md b/docs/docs/guides/ha_notifications.md index 9013cad40..b8070a90c 100644 --- a/docs/docs/guides/ha_notifications.md +++ b/docs/docs/guides/ha_notifications.md @@ -1,6 +1,6 @@ --- id: ha_notifications -title: Home Assistant Notifications +title: Home Assistant notifications --- The best way to get started with notifications for Frigate is to use the [Blueprint](https://community.home-assistant.io/t/frigate-mobile-app-notifications/311091). You can use the yaml generated from the Blueprint as a starting point and customize from there. diff --git a/docs/docs/guides/stationary_objects.md b/docs/docs/guides/stationary_objects.md new file mode 100644 index 000000000..1917ad7ab --- /dev/null +++ b/docs/docs/guides/stationary_objects.md @@ -0,0 +1,37 @@ +--- +id: stationary_objects +title: Avoiding stationary objects +--- + +Many people use Frigate to detect cars entering their driveway, and they often run into an issue with repeated events of a parked car being repeatedly detected. This is because object tracking stops when motion ends and the event ends. Motion detection works by determining if a sufficient number of pixels have changed between frames. Shadows or other lighting changes will be detected as motion. This will often cause a new event for a parked car. + +You can use zones to restrict events and notifications to objects that have entered specific areas. + +:::caution + +It is not recommended to use masks to try and eliminate parked cars in your driveway. Masks are designed to prevent motion from triggering object detection and/or to indicate areas that are guaranteed false positives. + +Frigate is designed to track objects as they move and over-masking can prevent it from knowing that an object in the current frame is the same as the previous frame. You want Frigate to detect objects everywhere and configure your events and alerts to be based on the location of the object with zones. + +::: + +For example, you could create multiple zones that cover your driveway. For cars, you would only notify if entered_zones has more than 1 zone. For person, you would notify regardless of the number of entered_zones. + +See [this example](/configuration/zones#restricting-zones-to-specific-objects) from the Zones documentation. + +You can also create a zone for the entrance of your driveway and only save an event if that zone is in the list of entered_zones when the object is a car. + +![Driveway Zones](/img/driveway_zones.png) + +```yaml +camera: + record: + events: + required_zones: + - zone_2 + zones: + zone_1: + coordinates: ... (parking area) + zone_2: + coordinates: ... (entrance to driveway) +``` diff --git a/docs/sidebars.js b/docs/sidebars.js index 267f4ed0b..2b3669bdf 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -10,6 +10,7 @@ module.exports = { 'guides/getting_started', 'guides/false_positives', 'guides/ha_notifications', + 'guides/stationary_objects', ], Configuration: [ 'configuration/index', diff --git a/docs/static/img/driveway_zones.png b/docs/static/img/driveway_zones.png new file mode 100644 index 0000000000000000000000000000000000000000..67ed8f41c60b300e980ed3a8cabfdff83d98d1bc GIT binary patch literal 1659862 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