Frigate NVR integration for Homey
This integration brings your existing Frigate NVR object detection into Homey.
- A network accessible Frigate NVR instance (from your Homey Pro device)
- Access from Homey to the MQTT server that Frigate uses. This is optional but Homey triggers will not work without Homey connecting to MQTT.git
The global trigger card will trigger for any event generated by any camera.
This card provides a few tokens:
Token | Type | Description |
---|---|---|
Camera name | string | The FrigateNVR name of the camera that detected an object |
Object type | string | The type of object detected. This is the value provided by Frigate so it's lower case. e.g. 'person', 'dog', etc. |
Clip URL | string | The URL of the mp4 clip on Frigate's API. Note that this can be empty if the event has no clip. |
eventId | string | The id of the Frigate event |
snapshot | image | A snapshot image of the detection event. See [1] below. |
thumbnail | image | A thumbnail of the event. This is typically friendlier to mobile devices than a snapshot. See [1] below. |
current_zones | string | Comma separated zones that the object is currently in. e.g. 'driveway,yard,pathway'. |
entered_zones | string | Comma separated zones that the object has entered. e.g. 'driveway,yard,pathway'. |
[1] Snapshots and thumbnails are replaced by a placeholder image these are missing from the MQTT event. This typically happens if snapshots are disabled from your Frigate configuration or if you have zone restrictions enabled.
Below is an example of how the global trigger can be used:
The device trigger card is essentially the same as the global one. The difference is that it only triggers for a specific camera.
It is possible to access images from your cameras from any flow even without using a camera trigger. Example this simple flow sends a live snapshot of the Birdseye view to my email on demand:
Each camera provide a Live
image which is the latest image from Frigate's live feed. In addition, cameras will provide snapshots of the latest objects they detected.
In addition to the live view, all cameras but the birdview will provide snapshots of their latest detected objects:
Image options:
Snapshot of the last person detected:
Cameras provide some permanent tokens:
Occupancy
: The number of persons currently detected. I found occupancy to be quite unreliable but you can try to use it.Person detected
By default Homey will use the same credentials as Frigate has them defined from the configuration. This can be changed later per camera.
The Homey app for Frigate filters events and does not propagate all events it receives from the MQTT server.
The following events are ignored:
- The event is flagged as a
false_positive
by Frigate - The detected object is stationary (both in the before & after fields of the mqtt event)
- The event does not have a label. i.e. it is not possible to infer the type of object being tracked.
- Each unique event can only trigger once. This means that subsequent tracking events sent by Frigate are ignored. This behaviour can be problematic if you are relying on zones. This default behaviour can be disabled per camera by updating the
Unique events
option. - Another event triggered
This plugin will recognize all types of objects tracked by Frigate and passes on the detected objects onto any flow you create.
Note that the event handling built into Homey throttles the Frigate MQTT events. In other words, an events are skipped if an event recently triggered. This behaviour is unique to each camera (i.e. events from one camera does not affect other cameras) and can have unintended consequence.
The throttling can be disabled per camera.
- MQTT config
- Logging
- Ignore events with no snapshot
- Ignore events with no thumbnail
- Throttling
- Unique events - default checked. When checked, each unique Frigate events can only trigger a workflow once. You may want to uncheck this event if you are relying on zones: if this checkbox is selected, an event may be triggered for an object in zone A but will not re-trigger if the object moves to zone B.In
- MQTT config
Below is a list of what will be implemented next:
- Ability to export the RTSP feed from the birsdeye view to a video provider (e.g. Vimeo)
- Ability to export the event video clip to a video provider (e.g. Vimeo)
- Dynamically add camera tokens based on the objects detected by Frigate. e.g.
Dog occupancy
/Dog detected
,Car occupancy
/Car detected
, etc.