I’ve just got Frigate mostly working as I want in HA, but it has taken a day going through many posts with not quite current info and often more config than needed just to get things working. Maybe this will help other Frigate newbies get going and maybe someone can help sort out the remaining niggles with the Reolink E1 Outdoor Pro.
My cameras are:
- 1 x Reolink E1 Outdoor Pro (4K), 8MP, 3840*2160 with PTZ
- 2 x Reolink CX410W (2K), 4MP, 2560*1440
- 2 x ESP32CAM ESPHome firmware set to 1280x1024
but to minimize the config shown here, I’ll include only one camera of each type. As far as I can tell there is no way to change the codec on my cameras; the Reolink E1 Outdoor Pro at 3840*2160 uses h265, the Reolink CX410W at 2560*1440 uses h264 and the ESP32CAM uses MJPEG. At some stage I’ll see if the Reolink E1 Outdoor Pro changes to h264 at lower resolutions as per: Frigate H264 on (some) 8MP Reolink Cameras Working · blakeblackshear/frigate · Discussion #3594 · GitHub
I started with the Reolink cameras working in HA using the Reolink integration.
Install and Configure Frigate
On HassOS HA:
Settings > Add-ons > ADD-ON STORE > Frigate (Full Access)
The Add-on runs Frigate in a container. I suggest saying yes to adding a tab for it in the left side-bar (it saves going Settings > Add-ons > Frigate each time to get to Frigate’s UI). You have to hand craft frigate.yaml
in your HA config dir before you start the add-on. You have to get your cameras working in Frigate before continuing with the Frigate - Home Assistant Integration below.
The docs suggest trying the non-Full Access one first and then only the Full Access one if you have problems, but I’d suggest that everyone always has problems! The difference is not well explained anywhere I can find, but it seems to be about access to hardware accelerators/GPUs, so perhaps it is about running under root privileges. The Full Access version provides a switch to turn on/off Full Access so that’s why I suggest using it. Try getting it working with Full Access on, then test to see if it still works with Full Access off.
Frigate uses MQTT and under HassOS, HA users are MQTT users. So I created a HA username: frigate with password, Local access only and not Administrator.
Here is my simplified frigate.yaml
(you can use ssh, Samba share or the File editor add-ons to create the file):
mqtt:
host: 192.168.1.101
port: 1883
topic_prefix: frigate
client_id: frigate
user: frigate
password: password
stats_interval: 60
birdseye:
enabled: true
mode: continuous
detectors:
ov:
type: cpu
ffmpeg:
hwaccel_args: preset-intel-qsv-h264
go2rtc:
streams:
cam1: rtsp://admin:[email protected]:554/Preview_01_main
cam1sub: rtsp://admin:[email protected]:554/Preview_01_sub
cam2: rtsp://admin:[email protected]:554/Preview_01_main
cam2sub: rtsp://admin:[email protected]:554/Preview_01_sub
cam4: ffmpeg:http://espcam1.local:8080#video=h264#width=1280#height=1024#hardware
cameras:
cam1:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/cam1
roles:
- record
- path: rtsp://127.0.0.1:8554/cam1sub
roles:
- detect
output_args:
record: preset-record-generic-audio-aac
onvif:
host: 192.168.1.223
port: 8000
user: admin
password: password
cam2:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/cam2
roles:
- record
- path: rtsp://127.0.0.1:8554/cam2sub
roles:
- detect
output_args:
record: preset-record-generic-audio-aac
cam4:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/cam4
roles:
- record
- detect
objects:
track:
- person
filters:
person:
threshold: 0.7
detect:
width: 800
height: 480
snapshots:
enabled: true
timestamp: true
bounding_box: true
retain:
default: 14
record:
enabled: true
retain:
days: 0
alerts:
retain:
days: 4
detections:
retain:
days: 4
version: 0.15-1
Notes on frigate config:
detectors
I’m using a NUC with Intel N150 CPU (Gen 14 3.60 GHz 4 Cores, 4 Threads, Intel UHD Graphics with 24 EUs), 6W base power. I was hoping I could use the iGPU for object detection with openvino, but it turns out that although openvino can use Intel UHD Graphics it can only do so on supported CPUs (of which the N150 is not one). Intel Core CPUs work, but they also draw a lot more power. See System Requirements — OpenVINO™ documentation . Looks like I will need aCoral USB TPU
, but for now I’m falling back totype: cpu
.hwaccel_args
ffmpeg can use the N150’s GPU.go2rtc
only one stream is opened to the camera for each resolution. go2rtc shares the stream to all clients.go2rtc > cam4
the ESP32CAM’s MJPEG stream is transcoded to h264 using the GPU. Adjust the width and height to suit your ESP32CAM’s firmware.cam1 > onvif
provides access to the PTZ.- This works with Full Access off.
- Frigate appears to display the full resolution of the Reolink E1 Outdoor Pro in Firefox (which I did not think had support for h265) allong with all the PTZ controls.
Frigate - Home Assistant integration
In HACS, download Frigate Home Assistant Integration
& Advanced Camera Card - Formerly known as: Frigate Card
.
Restart HA to load the integration then:
Settings > Devices & sevices > + ADD INTEGRATION > Select Brand , Search: frig > Frigate
The integration setup requires the URL to your frigate installation, which depends on the Add-on version installed, as explained here Home Assistant Integration | Frigate. For Frigate (Full Access) it is http://ccab4aaf-frigate-fa:5000
. Then you have a bunch of HA devices and entities corresponding to Frigate and it’s cameras.
Notes:
- If I use the Frigate entity for the Reolink E1 Outdoor Pro in the UI, it displays, but there are no PTZ or full screen display controls.
- If I use the Reolink Integration’s Fluent (low res) entity for the Reolink E1 Outdoor Pro in the UI, I get all the PTZ and full screen display controls (but it’s ugly low res).