Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.10.0 #1927

Merged
merged 115 commits into from
Feb 19, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
61c62d4
version tick
blakeblackshear Oct 6, 2021
b63c56d
only save recordings when an event is in progress
blakeblackshear Oct 23, 2021
8f101cc
improve box merging and keep tracking
blakeblackshear Oct 30, 2021
d17bd74
reduce detection rate for stationary objects
blakeblackshear Oct 30, 2021
24cc63d
drop high overlap detections
blakeblackshear Oct 31, 2021
5bec438
config option for stationary detection interval
blakeblackshear Oct 31, 2021
58117e2
check for overlapping motion boxes
blakeblackshear Nov 4, 2021
9dc6c42
improve contrast
blakeblackshear Nov 4, 2021
57dcb29
consolidate regions
blakeblackshear Nov 4, 2021
ff667b0
remove min frame height of 180 and increase contour area
blakeblackshear Nov 4, 2021
d554175
no longer make motion settings dynamic
blakeblackshear Nov 7, 2021
bd7755f
revamp process clip
blakeblackshear Nov 7, 2021
8f43a2d
use resolution of clip
blakeblackshear Nov 8, 2021
4422e86
clarify shm in docs
blakeblackshear Nov 8, 2021
1c1c28d
create ffmpeg commands on startup
blakeblackshear Nov 8, 2021
cdd3000
fix ffmpeg config for env vars
blakeblackshear Nov 9, 2021
c7faef8
don't modify ffmpeg_cmd object
blakeblackshear Nov 9, 2021
3541f96
error handling for the recording maintainer
blakeblackshear Nov 9, 2021
51fb532
set retain when setting switches from frontend
blakeblackshear Nov 9, 2021
14c74e4
more robust cache management
blakeblackshear Nov 11, 2021
b912851
fix default motion comment
blakeblackshear Nov 15, 2021
ae96804
revert switch to b/w frame prep
blakeblackshear Nov 17, 2021
1ebb8a5
avoid divide by zero
blakeblackshear Nov 17, 2021
19a6978
avoid proactive messages with retain_days 0 and handle first pass
blakeblackshear Nov 17, 2021
c7d4743
better cache handling
blakeblackshear Nov 17, 2021
585efe1
keep 5 segments in cache
blakeblackshear Nov 19, 2021
3d556cc
warn if no wait time
blakeblackshear Nov 19, 2021
a3301e0
avoid running ffprobe for each segment multiple times
blakeblackshear Nov 19, 2021
e6d2df5
add duration to cache
blakeblackshear Nov 19, 2021
63b7465
ensure stationary interval is greater than 0
blakeblackshear Nov 20, 2021
494e5ac
use snapshot url to support in progress events
blakeblackshear Nov 20, 2021
77c66d4
ensure duration > 0 for segments
blakeblackshear Nov 21, 2021
7a2a85d
log error messages on vod endpoints
blakeblackshear Nov 21, 2021
ae3c01f
handle missing file edge case
blakeblackshear Nov 21, 2021
77c1f1b
cleanup missing files from database once per hour
blakeblackshear Nov 21, 2021
c1155af
ensure cache copies when events have ended
blakeblackshear Nov 21, 2021
26241b0
no need to expire recordings every minute
blakeblackshear Dec 5, 2021
92e08b9
sync recordings with disk once on startup
blakeblackshear Dec 5, 2021
af00132
fix process_clip
blakeblackshear Dec 5, 2021
f3efc06
retain frame data for recording maintenance
blakeblackshear Dec 11, 2021
63f8034
pass processed tracked objects
blakeblackshear Dec 11, 2021
9f18629
switch to retain config instead of retain_days
blakeblackshear Dec 11, 2021
cbb2882
refactor segment stats logic
blakeblackshear Dec 11, 2021
df0246a
warn when retention mismatch
blakeblackshear Dec 11, 2021
18fd50d
store objects and motion counts in the db
blakeblackshear Dec 11, 2021
b19a028
expire overlapping segments based on mode
blakeblackshear Dec 11, 2021
589432b
update docs
blakeblackshear Dec 11, 2021
fcb4aae
limit vod response cache
blakeblackshear Dec 12, 2021
a5c13e7
Add temperature of coral tpu to telemetry mqtt message
mattthewclayton Nov 29, 2021
156e1a4
Allow for ".yaml" (#2244)
jcgoette Dec 12, 2021
251d29a
#2117 change entered_zones from set to list so that they are not auto…
ryanm101 Dec 12, 2021
95bdf9f
check for apex dir
blakeblackshear Dec 12, 2021
609b436
fix migrations
blakeblackshear Dec 13, 2021
db1255a
disable disk sync on startup
blakeblackshear Dec 13, 2021
1569ce7
Change JPEG mime type (#2543)
tjhorner Dec 30, 2021
9edf383
safe refactoring (#2552)
yury-sannikov Dec 31, 2021
bd8e238
Run python unit tests in a github actions (#2589)
yury-sannikov Jan 14, 2022
273f803
Event Datepicker (#2428)
Feb 2, 2022
040d8c9
require url safe camera names
blakeblackshear Feb 2, 2022
326b368
cleanup clean snapshots on event deletion too
blakeblackshear Feb 2, 2022
944b918
if recording not on disk, delete from db and return
blakeblackshear Feb 2, 2022
82c6009
improve method for determining position
blakeblackshear Feb 4, 2022
92f9195
randomize the region multiplier for variation
blakeblackshear Feb 4, 2022
077d900
require a position change to be an active object
blakeblackshear Feb 5, 2022
307068a
scan the frame on startup
blakeblackshear Feb 5, 2022
037f866
default periodic checks to never
blakeblackshear Feb 5, 2022
955c277
dont stop scanning when there are other regions
blakeblackshear Feb 5, 2022
f801930
use iou instead of centroid
blakeblackshear Feb 5, 2022
2b7d38f
avoid extra tracking work on stationary frames
blakeblackshear Feb 5, 2022
0916481
make expire interval configurable for users wanting to minimize i/o
blakeblackshear Feb 5, 2022
23c70ac
update stationary interval docs
blakeblackshear Feb 5, 2022
e6ec5cb
make motion the default retain mode
blakeblackshear Feb 5, 2022
b1e84ca
allow dash in camera name
blakeblackshear Feb 5, 2022
7b4cb95
package updates for docs
blakeblackshear Feb 6, 2022
794a9ff
upgrade npm in dev container
blakeblackshear Feb 6, 2022
21cc29b
add additional info for non-H264 cameras
blakeblackshear Feb 6, 2022
21f1a98
add new properties to the docs
blakeblackshear Feb 6, 2022
50b5d40
add stacktrace to config validation errors
blakeblackshear Feb 6, 2022
3600ebc
adjust error messages on ffmpeg crash
blakeblackshear Feb 6, 2022
499f75e
set has_clip to false when recordings fail
blakeblackshear Feb 6, 2022
2d5ec25
invert active_count logic
blakeblackshear Feb 6, 2022
5a2076f
improve warning for retain modes
blakeblackshear Feb 6, 2022
1a3f21e
note for future
blakeblackshear Feb 6, 2022
f57501d
avoid rare divide by zero
blakeblackshear Feb 6, 2022
47e0e1d
add example for ios camera live feed notification
blakeblackshear Feb 6, 2022
5e156f8
update addon urls
blakeblackshear Feb 6, 2022
02c91d4
clarify that zones are based on the bottom center
blakeblackshear Feb 6, 2022
acc1022
remove outdated output args tip
blakeblackshear Feb 6, 2022
4e23967
clarify addon versions
blakeblackshear Feb 6, 2022
24f9937
fix resolution on reolink example
blakeblackshear Feb 6, 2022
9a0d276
allow motion based retention when detect is disabled
blakeblackshear Feb 6, 2022
ad4929c
increment motionless_count
blakeblackshear Feb 6, 2022
3617a62
only update db entry when a stored property changes
blakeblackshear Feb 8, 2022
8670a3d
publish an update on position changes
blakeblackshear Feb 8, 2022
0b02f20
make stationary_threshold configurable
blakeblackshear Feb 8, 2022
64f80a4
signal an update when object becomes stationary
blakeblackshear Feb 8, 2022
a3fa3cb
update an object once per minute
blakeblackshear Feb 9, 2022
54b88fb
Add in progress events to recordings view
hunterjm Feb 9, 2022
45b56bd
Update package-lock.json
hunterjm Feb 9, 2022
9ecc792
Fix playback rate resetting to 1 on source change
hunterjm Feb 9, 2022
62c1a61
remove invalid warning
blakeblackshear Feb 9, 2022
54d1a22
Allow download of in progress clips
hunterjm Feb 9, 2022
1171770
Only send significant update once when motionless count reaches the d…
hunterjm Feb 9, 2022
4deb365
Fix duration for long events and playback rate for top of the hour
hunterjm Feb 9, 2022
adbc54b
selectively increment position changes
blakeblackshear Feb 10, 2022
7934f86
fix the bounding box calculation position at 10
blakeblackshear Feb 11, 2022
4e52461
set stationary_threshold default to 5x fps
blakeblackshear Feb 11, 2022
95ab22d
bump default stationary_threshold to 10s
blakeblackshear Feb 11, 2022
6b2bae0
stop forcing detection all the way to stationary_threshold
blakeblackshear Feb 11, 2022
334e28f
use second stream in docs example
blakeblackshear Feb 12, 2022
ee01396
update birdseye to handle stationary objects
blakeblackshear Feb 12, 2022
889835a
Always show recording link even if recordings are currently disabled …
NickM-27 Feb 12, 2022
304ffa8
refactor stationary config into section
blakeblackshear Feb 13, 2022
3be0b91
deregister based on max_frames setting
blakeblackshear Feb 13, 2022
e5714f5
add missing optional comment in docs
blakeblackshear Feb 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,27 @@ jobs:
- name: Test
run: npm run test
working-directory: ./web

docker_tests_on_aarch64:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and run tests
run: make run_tests PLATFORM="linux/arm64/v8" ARCH="aarch64"

docker_tests_on_amd64:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and run tests
run: make run_tests PLATFORM="linux/amd64" ARCH="amd64"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ models
*.mp4
*.ts
*.db
*.csv
frigate/version.py
web/build
web/node_modules
Expand Down
16 changes: 14 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ default_target: amd64_frigate
COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1)

version:
echo "VERSION='0.9.4-$(COMMIT_HASH)'" > frigate/version.py
echo "VERSION='0.10.0-$(COMMIT_HASH)'" > frigate/version.py

web:
docker build --tag frigate-web --file docker/Dockerfile.web web/
Expand Down Expand Up @@ -59,4 +59,16 @@ armv7_frigate: version web

armv7_all: armv7_wheels armv7_ffmpeg armv7_frigate

.PHONY: web
run_tests:
# PLATFORM: linux/arm64/v8 linux/amd64 or linux/arm/v7
# ARCH: aarch64 amd64 or armv7
@cat docker/Dockerfile.base docker/Dockerfile.$(ARCH) > docker/Dockerfile.test
@sed -i "s/FROM frigate-web as web/#/g" docker/Dockerfile.test
@sed -i "s/COPY --from=web \/opt\/frigate\/build web\//#/g" docker/Dockerfile.test
@sed -i "s/FROM frigate-base/#/g" docker/Dockerfile.test
@echo "" >> docker/Dockerfile.test
@echo "RUN python3 -m unittest" >> docker/Dockerfile.test
@docker buildx build --platform=$(PLATFORM) --tag frigate-base --build-arg NGINX_VERSION=1.0.2 --build-arg FFMPEG_VERSION=1.0.0 --build-arg ARCH=$(ARCH) --build-arg WHEELS_VERSION=1.0.3 --file docker/Dockerfile.test .
@rm docker/Dockerfile.test

.PHONY: web run_tests
2 changes: 2 additions & 0 deletions docker/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ RUN pip3 install pylint black
# Install Node 14
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get install -y nodejs

RUN npm install -g npm@latest
2 changes: 1 addition & 1 deletion docker/rootfs/usr/local/nginx/conf/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ http {

# vod caches
vod_metadata_cache metadata_cache 512m;
vod_mapping_cache mapping_cache 5m;
vod_mapping_cache mapping_cache 5m 10m;

# gzip manifests
gzip on;
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/configuration/camera_specific.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ cameras:
roles:
- detect
detect:
width: 640
height: 480
width: 896
height: 672
fps: 7
```

Expand Down
70 changes: 56 additions & 14 deletions docs/docs/configuration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,23 @@ detect:
enabled: True
# Optional: Number of frames without a detection before frigate considers an object to be gone. (default: 5x the frame rate)
max_disappeared: 25
# Optional: Configuration for stationary object tracking
stationary:
# Optional: Frequency for running detection on stationary objects (default: shown below)
# When set to 0, object detection will never be run on stationary objects. If set to 10, it will be run on every 10th frame.
interval: 0
# Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
threshold: 50
# Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
# This can help with false positives for objects that should only be stationary for a limited amount of time.
# It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
# car at the default.
max_frames:
# Optional: Default for all object types (default: not set, track forever)
default: 3000
# Optional: Object specific values
objects:
person: 1000

# Optional: Object configuration
# NOTE: Can be overridden at the camera level
Expand Down Expand Up @@ -192,10 +209,14 @@ motion:
# Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
# The value should be between 1 and 255.
threshold: 25
# Optional: Minimum size in pixels in the resized motion image that counts as motion (default: ~0.17% of the motion frame area)
# Increasing this value will prevent smaller areas of motion from being detected. Decreasing will make motion detection more sensitive to smaller
# moving objects.
contour_area: 100
# Optional: Minimum size in pixels in the resized motion image that counts as motion (default: 30)
# Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
# make motion detection more sensitive to smaller moving objects.
# As a rule of thumb:
# - 15 - high sensitivity
# - 30 - medium sensitivity
# - 50 - low sensitivity
contour_area: 30
# Optional: Alpha value passed to cv2.accumulateWeighted when averaging the motion delta across multiple frames (default: shown below)
# Higher values mean the current frame impacts the delta a lot, and a single raindrop may register as motion.
# Too low and a fast moving person wont be detected as motion.
Expand All @@ -205,10 +226,10 @@ motion:
# Low values will cause things like moving shadows to be detected as motion for longer.
# https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/
frame_alpha: 0.2
# Optional: Height of the resized motion frame (default: 1/6th of the original frame height, but no less than 180)
# This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense of higher CPU usage.
# Lower values result in less CPU, but small changes may not register as motion.
frame_height: 180
# Optional: Height of the resized motion frame (default: 50)
# This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense
# of higher CPU usage. Lower values result in less CPU, but small changes may not register as motion.
frame_height: 50
# Optional: motion mask
# NOTE: see docs for more detailed info on creating masks
mask: 0,900,1080,900,1080,1920,0,1920
Expand All @@ -218,15 +239,26 @@ motion:
record:
# Optional: Enable recording (default: shown below)
enabled: False
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
retain_days: 0
# Optional: Number of minutes to wait between cleanup runs (default: shown below)
# This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval: 60
# Optional: Retention settings for recording
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 0
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
mode: all
# Optional: Event recording settings
events:
# Optional: Maximum length of time to retain video during long events. (default: shown below)
# NOTE: If an object is being tracked for longer than this amount of time, the retained recordings
# will be the last x seconds of the event unless retain_days under record is > 0.
# will be the last x seconds of the event unless retain->days under record is > 0.
max_seconds: 300
# Optional: Number of seconds before the event to include (default: shown below)
pre_capture: 5
Expand All @@ -241,6 +273,16 @@ record:
retain:
# Required: Default retention days (default: shown below)
default: 10
# Optional: Mode for retention. (default: shown below)
# all - save all recording segments for events regardless of activity
# motion - save all recordings segments for events with any detected motion
# active_objects - save all recording segments for event with active/moving objects
#
# NOTE: If the retain mode for the camera is more restrictive than the mode configured
# here, the segments will already be gone by the time this mode is applied.
# For example, if the camera retain mode is "motion", the segments without motion are
# never stored, so setting the mode to "all" here won't bring them back.
mode: motion
# Optional: Per object retention days
objects:
person: 15
Expand Down Expand Up @@ -353,7 +395,7 @@ cameras:
# camera.
front_steps:
# Required: List of x,y coordinates to define the polygon of the zone.
# NOTE: Coordinates can be generated at https://www.image-map.net/
# NOTE: Presence in a zone is evaluated only based on the bottom center of the objects bounding box.
coordinates: 545,1077,747,939,788,805
# Optional: List of objects that can trigger this zone (default: all tracked objects)
objects:
Expand Down
12 changes: 0 additions & 12 deletions docs/docs/configuration/nvdec.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,3 @@ processes:
| 0 N/A N/A 12827 C ffmpeg 417MiB |
+-----------------------------------------------------------------------------+
```

To further improve performance, you can set ffmpeg to skip frames in the output,
using the fps filter:

```yaml
output_args:
- -filter:v
- fps=fps=5
```

This setting, for example, allows Frigate to consume my 10-15fps camera streams on
my relatively low powered Haswell machine with relatively low cpu usage.
5 changes: 2 additions & 3 deletions docs/docs/configuration/record.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@ If you only used clips in previous versions with recordings disabled, you can us
```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.
This configuration will retain recording segments that overlap with events and have active tracked objects 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.
When `retain_days` is set to `0`, segments will be deleted from the cache if no events are in progress.
4 changes: 3 additions & 1 deletion docs/docs/configuration/zones.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ id: zones
title: Zones
---

Zones allow you to define a specific area of the frame and apply additional filters for object types so you can determine whether or not an object is within a particular area. Zones cannot have the same name as a camera. If desired, a single zone can include multiple cameras if you have multiple cameras covering the same area by configuring zones with the same name for each camera.
Zones allow you to define a specific area of the frame and apply additional filters for object types so you can determine whether or not an object is within a particular area. Presence in a zone is evaluated based on the bottom center of the bounding box for the object. It does not matter how much of the bounding box overlaps with the zone.

Zones cannot have the same name as a camera. If desired, a single zone can include multiple cameras if you have multiple cameras covering the same area by configuring zones with the same name for each camera.

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.

Expand Down
12 changes: 10 additions & 2 deletions docs/docs/guides/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ cameras:
roles:
- detect
- rtmp
rtmp:
enabled: False # <-- RTMP should be disabled if your stream is not H264
detect:
width: 1280 # <---- update for your camera's resolution
height: 720 # <---- update for your camera's resolution
Expand All @@ -71,7 +73,9 @@ cameras:

At this point you should be able to start Frigate and see the the video feed in the UI.

If you get a green image from the camera, this means ffmpeg was not able to get the video feed from your camera. Check the logs for error messages from ffmpeg. The default ffmpeg arguments are designed to work with RTSP cameras that support TCP connections. FFmpeg arguments for other types of cameras can be found [here](/configuration/camera_specific).
If you get a green image from the camera, this means ffmpeg was not able to get the video feed from your camera. Check the logs for error messages from ffmpeg. The default ffmpeg arguments are designed to work with H264 RTSP cameras that support TCP connections. If you do not have H264 cameras, make sure you have disabled RTMP. It is possible to enable it, but you must tell ffmpeg to re-encode the video with customized output args.

FFmpeg arguments for other types of cameras can be found [here](/configuration/camera_specific).

### Step 5: Configure hardware acceleration (optional)

Expand Down Expand Up @@ -163,13 +167,17 @@ cameras:
roles:
- detect
- rtmp
- record # <----- Add role
- path: rtsp://10.0.10.10:554/high_res_stream # <----- Add high res stream
roles:
- record
detect: ...
record: # <----- Enable recording
enabled: True
motion: ...
```

If you don't have separate streams for detect and record, you would just add the record role to the list on the first input.

By default, Frigate will retain video of all events for 10 days. The full set of options for recording can be found [here](/configuration/index#full-configuration-reference).

### Step 8: Enable snapshots (optional)
Expand Down
24 changes: 24 additions & 0 deletions docs/docs/guides/ha_notifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,30 @@ automation:
when: '{{trigger.payload_json["after"]["start_time"]|int}}'
```

Note that iOS devices support live previews of cameras by adding a camera entity id to the message data.

```yaml
automation:
- alias: Security_Frigate_Notifications
description: ""
trigger:
- platform: mqtt
topic: frigate/events
payload: new
value_template: "{{ value_json.type }}"
action:
- service: notify.mobile_app_iphone
data:
message: 'A {{trigger.payload_json["after"]["label"]}} was detected.'
data:
image: >-
https://your.public.hass.address.com/api/frigate/notifications/{{trigger.payload_json["after"]["id"]}}/thumbnail.jpg
tag: '{{trigger.payload_json["after"]["id"]}}'
when: '{{trigger.payload_json["after"]["start_time"]|int}}'
entity_id: camera.{{trigger.payload_json["after"]["camera"]}}
mode: single
```

## Conditions

Conditions with the `before` and `after` values allow a high degree of customization for automations.
Expand Down
11 changes: 10 additions & 1 deletion docs/docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Frigate utilizes shared memory to store frames during processing. The default `s

The default shm-size of 64m is fine for setups with 2 or less 1080p cameras. If frigate is exiting with "Bus error" messages, it is likely because you have too many high resolution cameras and you need to specify a higher shm size.

You can calculate the necessary shm-size for each camera with the following formula:
You can calculate the necessary shm-size for each camera with the following formula using the resolution specified for detect:

```
(width * height * 1.5 * 9 + 270480)/1048576 = <shm size in mb>
Expand Down Expand Up @@ -177,6 +177,15 @@ HassOS users can install via the addon repository.
6. Start the addon container
7. (not for proxy addon) If you are using hardware acceleration for ffmpeg, you may need to disable "Protection mode"

There are several versions of the addon available:

| Addon Version | Description |
| ------------------------------ | ---------------------------------------------------------- |
| Frigate NVR | Current release with protection mode on |
| Frigate NVR (Full Access) | Current release with the option to disable protection mode |
| Frigate NVR Beta | Beta release with protection mode on |
| Frigate NVR Beta (Full Access) | Beta release with the option to disable protection mode |

## Home Assistant Supervised

:::tip
Expand Down
13 changes: 8 additions & 5 deletions docs/docs/integrations/home-assistant.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,14 @@ that card.

## Configuration

When configuring the integration, you will be asked for the following parameters:

| Variable | Description |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| URL | The `URL` of your frigate instance, the URL you use to access Frigate in the browser. This may look like `http://<host>:5000/`. If you are using HassOS with the addon, the URL should be `http://ccab4aaf-frigate:5000` (or `http://ccab4aaf-frigate-beta:5000` if your are using the beta version of the addon). Live streams required port 1935, see [RTMP streams](#streams) |
When configuring the integration, you will be asked for the `URL` of your frigate instance which is the URL you use to access Frigate in the browser. This may look like `http://<host>:5000/`. If you are using HassOS with the addon, the URL should be one of the following depending on which addon version you are using. Note that if you are using the Proxy Addon, you do NOT point the integration at the proxy URL. Just enter the URL used to access frigate directly from your network.

| Addon Version | URL |
| ------------------------------ | -------------------------------------- |
| Frigate NVR | `http://ccab4aaf-frigate:5000` |
| Frigate NVR (Full Access) | `http://ccab4aaf-frigate-fa:5000` |
| Frigate NVR Beta | `http://ccab4aaf-frigate-beta:5000` |
| Frigate NVR Beta (Full Access) | `http://ccab4aaf-frigate-fa-beta:5000` |

<a name="options"></a>

Expand Down
Loading