Skip to content

nherment/homey-frigate-nvr

Repository files navigation

Homey Frigate

Frigate NVR integration for Homey

This integration brings your existing Frigate NVR object detection into Homey.

Pre-requisites

  • 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

Global trigger card

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:

Example of a flow using the global trigger card

Device trigger card

The device trigger card is essentially the same as the global one. The difference is that it only triggers for a specific camera.

Example of a flow using the device trigger card

Accessing camera images in Flows

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:

Example of a simple flow accessing a camera's live image

Camera

Views

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:

Camera image options

Snapshot of the last person detected:

Camera image: snapshot of the last person detected

Tokens

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

MQTT

By default Homey will use the same credentials as Frigate has them defined from the configuration. This can be changed later per camera.

Events

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.

Throttling

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.

Configuration

Application configuration

  • MQTT config
  • Logging
  • Ignore events with no snapshot
  • Ignore events with no thumbnail

Camera configuration

  • 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

Roadmap

Below is a list of what will be implemented next:

  1. Ability to export the RTSP feed from the birsdeye view to a video provider (e.g. Vimeo)
  2. Ability to export the event video clip to a video provider (e.g. Vimeo)
  3. Dynamically add camera tokens based on the objects detected by Frigate. e.g. Dog occupancy/Dog detected, Car occupancy/Car detected, etc.

About

FrigateNVR integration for Homey

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published