id: home-assistant
The best way to integrate with Home Assistant is to use the official integration.
The Frigate integration requires the mqtt
integration to be installed and
manually configured first.
See the MQTT integration documentation for more details.
Available via HACS as a default repository. To install:
Use HACS to install the integration:
Home Assistant > HACS > Integrations > "Explore & Add Integrations" > Frigate
Restart Home Assistant.
Then add/configure the integration:
Home Assistant > Configuration > Integrations > Add Integration > Frigate
Note: You will also need media_source enabled in your Home Assistant configuration for the Media Browser to appear.
To install the optional companion Lovelace card, please see the separate installation instructions for that card.
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 |
Home Assistant > Configuration > Integrations > Frigate > Options
Option | Description |
---|---|
RTMP URL Template | A jinja2 template that is used to override the standard RTMP stream URL (e.g. for use with reverse proxies). This option is only shown to users who have advanced mode enabled. See RTMP streams below. |
Platform | Description |
---|---|
camera |
Live camera stream (requires RTMP), camera for image of the last detected object. |
sensor |
States to monitor Frigate performance, object counts for all zones and cameras. |
switch |
Switch entities to toggle detection, recordings and snapshots. |
binary_sensor |
A "motion" binary sensor entity per camera/zone/object. |
The integration provides:
This is accessible via "Media Browser" on the left menu panel in Home Assistant.
Many people do not want to expose Frigate to the web, so the integration creates some public API endpoints that can be used for notifications.
To load a thumbnail for an event:
https://HA_URL/api/frigate/notifications/<event-id>/thumbnail.jpg
To load a snapshot for an event:
https://HA_URL/api/frigate/notifications/<event-id>/snapshot.jpg
To load a video clip of an event:
https://HA_URL/api/frigate/notifications/<event-id>/clip.mp4
In order for the live streams to function they need to be accessible on the RTMP
port (default: 1935
) at <frigatehost>:1935
. Home Assistant will directly
connect to that streaming port when the live camera is viewed.
For advanced usecases, this behavior can be changed with the RTMP URL
template option. When set, this string will override the default stream
address that is derived from the default behavior described above. This option supports
jinja2 templates and has the camera
dict
variables from Frigate API
available for the template. Note that no Home Assistant state is available to the
template, only the camera dict from Frigate.
This is potentially useful when Frigate is behind a reverse proxy, and/or when the default stream port is otherwise not accessible to Home Assistant (e.g. firewall rules).
Use a different port number:
rtmp://<frigate_host>:2000/live/front_door
Use the camera name in the stream URL:
rtmp://<frigate_host>:2000/live/{{ name }}
Use the camera name in the stream URL, converting it to lowercase first:
rtmp://<frigate_host>:2000/live/{{ name|lower }}
The Frigate integration seamlessly supports the use of multiple Frigate servers.
In order for multiple Frigate instances to function correctly, the
topic_prefix
and client_id
parameters must be set differently per server.
See MQTT
configuration
for how to set these.
When multiple Frigate instances are configured, API URLs should include an
identifier to tell Home Assistant which Frigate instance to refer to. The
identifier used is the MQTT client_id
paremeter included in the configuration,
and is used like so:
https://HA_URL/api/frigate/<client-id>/notifications/<event-id>/thumbnail.jpg
https://HA_URL/api/frigate/<client-id>/clips/front_door-1624599978.427826-976jaa.mp4
When a single Frigate instance is configured, the client-id
parameter need not
be specified in URLs/identifiers -- that single instance is assumed. When
multiple Frigate instances are configured, the user must explicitly specify
which server they are referring to.
binary_sensor
to the camera in HomeKit?The HomeKit integration randomly links one of the binary sensors (motion sensor entities) grouped with the camera device in Home Assistant. You can specify a linked_motion_sensor
in the Home Assistant HomeKit configuration for each camera.