feat: Add support for Frigate reviews / detections [initial PR] (#2315)
- Add support for Frigate reviews / detections. - Add support for GenAI metadata. - Significant internal refactor to more flexible "UnifiedQuery" to allow mixing cameras with simple metadata and review metadata (e.g. a timeline view of a Frigate camera with reviews, and a Reolink camera with simple metadata). - Add support for folder media as camera media. There are a few more PRs to commit prior to this going live, but commiting this for now due to the scale of the change. BREAKING CHANGE: `media_type` and `events_type` are retired under `live`, `viewer` and `timeline` configuration sections, instead media type is associated (once) with the camera under `media`.
This commit is contained in:
@@ -175,6 +175,15 @@ action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: image
|
||||
```
|
||||
|
||||
## `info`
|
||||
|
||||
Show media metadata (e.g. event time, camera, descriptions).
|
||||
|
||||
```yaml
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: info
|
||||
```
|
||||
|
||||
## `live`
|
||||
|
||||
Change to the `live` view.
|
||||
@@ -385,14 +394,14 @@ advanced_camera_card_action: ptz_digital
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Parameter | Default | Description |
|
||||
| ----------------------------- | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `action` | | Must be `custom:advanced-camera-card-action`. |
|
||||
| `advanced_camera_card_action` | | Must be `ptz_digital`. |
|
||||
| `target_id` | The currently selected camera or media | The target (camera or media) to execute a digital PTZ action on. Can be a camera ID, or another media ID (e.g. for Frigate, can specify a media/event ID). |
|
||||
| `ptz_action` | Optional action that is one of `left`, `right`, `up`, `down`, `zoom_in` or `zoom_out`. |
|
||||
| `ptz_phase` | Optional parameter that is one of `start` or `stop` to start or stop the movement separately. |
|
||||
| `absolute` | Optional parameter to specify exact absolute pan and zoom settings. See below. |
|
||||
| Parameter | Default | Description |
|
||||
| ----------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `action` | | Must be `custom:advanced-camera-card-action`. |
|
||||
| `advanced_camera_card_action` | | Must be `ptz_digital`. |
|
||||
| `target_id` | The currently selected camera or media | The target (camera or media) to execute a digital PTZ action on. Can be a camera ID, or another media ID (e.g. for Frigate, can specify a media/event ID). |
|
||||
| `ptz_action` | | Optional action that is one of `left`, `right`, `up`, `down`, `zoom_in` or `zoom_out`. |
|
||||
| `ptz_phase` | | Optional parameter that is one of `start` or `stop` to start or stop the movement separately. |
|
||||
| `absolute` | | Optional parameter to specify exact absolute pan and zoom settings. See below. |
|
||||
|
||||
> [!NOTE]
|
||||
> If no `ptz_action` is specified and no `absolute` value is specified, the camera returns to its "home" position. See [Camera layout configuration](../../cameras/README.md?id=layout-configuration) to configure the default "home" position for digital PTZ.
|
||||
@@ -472,6 +481,22 @@ action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: screenshot
|
||||
```
|
||||
|
||||
## `set_review`
|
||||
|
||||
Mark a review as reviewed or unreviewed.
|
||||
|
||||
```yaml
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: set_review
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Parameter | Default | Description |
|
||||
| ----------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `action` | | Must be `custom:advanced-camera-card-action`. |
|
||||
| `advanced_camera_card_action` | | Must be `set_review`. |
|
||||
| `reviewed` | | If `true` marks as reviewed, if `false` marks as unreviewed. If not specified (the default), toggles the reviewed status. |
|
||||
|
||||
## `sleep`
|
||||
|
||||
Take no action for a given duration. Useful to pause between multiple other actions.
|
||||
@@ -627,6 +652,12 @@ elements:
|
||||
tap_action:
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: live
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-i-circle-outline
|
||||
title: Info
|
||||
tap_action:
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: info
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-n-circle
|
||||
title: Turn off substream
|
||||
@@ -794,18 +825,25 @@ elements:
|
||||
advanced_camera_card_action: snapshots
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-h-circle-outline
|
||||
title: Set reviewed
|
||||
tap_action:
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: set_review
|
||||
reviewed: true
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-i-circle-outline
|
||||
title: Show timeline
|
||||
tap_action:
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: timeline
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-i-circle-outline
|
||||
icon: mdi:alpha-j-circle-outline
|
||||
title: Unmute
|
||||
tap_action:
|
||||
action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: unmute
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-j-circle-outline
|
||||
icon: mdi:alpha-k-circle-outline
|
||||
title: Add status bar contents
|
||||
tap_action:
|
||||
- action: custom:advanced-camera-card-action
|
||||
@@ -834,7 +872,7 @@ elements:
|
||||
priority: 50
|
||||
sufficient: false
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-k-circle-outline
|
||||
icon: mdi:alpha-l-circle-outline
|
||||
title: Remove status bar contents
|
||||
tap_action:
|
||||
- action: custom:advanced-camera-card-action
|
||||
@@ -863,21 +901,21 @@ elements:
|
||||
priority: 50
|
||||
sufficient: false
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-l-circle-outline
|
||||
icon: mdi:alpha-m-circle-outline
|
||||
title: Reset status bar contents
|
||||
tap_action:
|
||||
- action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: status_bar
|
||||
status_bar_action: reset
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-m-circle-outline
|
||||
icon: mdi:alpha-n-circle-outline
|
||||
title: View Folder Media
|
||||
tap_action:
|
||||
- action: custom:advanced-camera-card-action
|
||||
advanced_camera_card_action: folder
|
||||
folder: my-folder
|
||||
- type: custom:advanced-camera-card-menu-icon
|
||||
icon: mdi:alpha-n-circle-outline
|
||||
icon: mdi:alpha-o-circle-outline
|
||||
title: View Folders Gallery
|
||||
tap_action:
|
||||
- action: custom:advanced-camera-card-action
|
||||
|
||||
@@ -29,6 +29,7 @@ cameras_global:
|
||||
| `icon` | Autodetected from `camera_entity` if that is specified. | The icon to use for this camera in the camera menu and in the next & previous controls when using the `icon` style. |
|
||||
| `id` | `camera_entity`, `webrtc_card.entity` or `frigate.camera_name` if set (in that preference order). | An optional identifier to use throughout the card configuration to refer unambiguously to this camera. This `id` may be used in [conditions](../conditions.md), dependencies or custom [actions](../actions/README.md) to refer to a given camera unambiguously. |
|
||||
| `live_provider` | `auto` | The choice of live stream provider. See [Live Provider](live-provider.md). |
|
||||
| `media` | | Controls the default media configuration (e.g. thumbnails) for this camera. See below. |
|
||||
| `proxy` | | Controls whether/how content is proxied via [hass-web-proxy-integration](https://github.com/dermotduffy/hass-web-proxy-integration) (must be installed separately). See below. |
|
||||
| `title` | Autodetected from `camera_entity` if that is specified. | A friendly name for this camera to use in the card. |
|
||||
| `triggers` | | Define what should cause this camera to update/trigger. See below. |
|
||||
@@ -165,6 +166,36 @@ cameras:
|
||||
| -------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `width_factor` | `1` | Width multiplier for this camera in grid mode (minimum: `0.1`). When selected, width becomes `width_factor * grid_selected_width_factor`, capped at 100%. |
|
||||
|
||||
## `media`
|
||||
|
||||
The `media` block configures the default media options for this camera which
|
||||
defines which media is shown as thumbnails and on the timeline.
|
||||
|
||||
```yaml
|
||||
cameras:
|
||||
- camera_entity: camera.office
|
||||
media:
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Option | Default | Description |
|
||||
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `type` | `auto` | The default media type to show for this camera. One of `auto`, `events`, `recordings`, `reviews` or `folder`. See below for description of each. |
|
||||
| `events_type` | `all` | If `type` is `events`, what subtype of events to show. One of `clips`, `snapshots` or `all` (default). |
|
||||
| `folders` | | An optional list of folder IDs to use when `type` is `folder`. If not specified, and `type` is `folder`, will default to showing the default (first) configured folder. See [Folder Configuration](../folders.md). |
|
||||
|
||||
### Media Types
|
||||
|
||||
Not all camera engines support all media types. See [Camera Engines](engine.md) for details.
|
||||
|
||||
| Type | Description |
|
||||
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `events` | Typically represents an interesting event recorded from the camera, in either a video clip or image snapshot (see `events_type` parameter). |
|
||||
| `recordings` | Typically represents continuous video recordings from the camera. |
|
||||
| `reviews` | Typically represents an alert / detection of some kind that the user can review. |
|
||||
| `folder` | Arbitrary media from a [folder](../folders.md), e.g. a Home Assistant media folder. |
|
||||
| `auto` | Automatically prioritize available media based on camera capabilities. Order of precedence: `reviews` > `clips` > `snapshots` > `recordings`. |
|
||||
|
||||
### Layout Configuration
|
||||
|
||||
The `layout` block configures the fit and position of the media _within_ the camera dimensions (in order to control the dimensions for the whole card see [the card dimensions configuration](../dimensions.md) ).
|
||||
@@ -182,7 +213,7 @@ cameras:
|
||||
| `fit` | `contain` | If `contain`, the media is contained within the camera container/card and letterboxed if necessary. If `cover`, the media is expanded proportionally (i.e. maintaining the media aspect ratio) until the camera/card dimensions are fully covered. If `fill`, the media is stretched to fill the camera/card dimensions (i.e. ignoring the media aspect ratio). See [CSS object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) for technical details and a visualization. Note that if `aspect_ratio` is also set, this is controlling the behavior "within" that aspect-ratio, otherwise it's within the container for the camera (which is effectively the whole card for single card configurations). |
|
||||
| `pan` | | A dictionary that may contain an `x` and `y` percentage (`0` - `100`) to control the position of the media when "digitally zoomed in" (see `zoom` parameter). This can be effectively used to "pan"/cut the media shown. A value of `0` means maximally to the left or top of the media, a value of `100` means maximally to the right or bottom of the media. See visualizations below. |
|
||||
| `position` | | A dictionary that may contain an `x` and `y` percentage (`0` - `100`) to control the position of the media when the fit is `cover` (for other values of `fit` this option has no effect). This can be effectively used to "pan"/cut the media shown. At any given time, only one of `x` and `y` will have an effect, depending on whether media width is larger than the camera/card dimensions (in which case `x` controls the position) or the media height is larger than the camera/card dimensions (in which case `y` controls the position). A value of `0` means maximally to the left or top of the media, a value of `100` means maximally to the right or bottom of the media. See [CSS object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) for technicals. See visualizations below. |
|
||||
| `view_box` | | A dictionary that may contain a `top`, `bottom`, `left` and `right` percentage (`0` - `100`) to precisely crop what part of the media to show by specifying a % inset value from each side. Browsers apply this cropping after `position` and `fit` have been applied. Unlike `zoom`, the user cannot dynamically zoom back out -- however the builtin media controls will work as normal. See visualizations below. Limited [browser support](https://caniuse.com/mdn-css_properties_object-view-box):    |
|
||||
| `view_box` | | A dictionary that may contain a `top`, `bottom`, `left` and `right` percentage (`0` - `100`) to precisely crop what part of the media to show by specifying a % inset value from each side. Browsers apply this cropping after `position` and `fit` have been applied. Unlike `zoom`, the user cannot dynamically zoom back out -- however the builtin media controls will work as normal. See visualizations below. Limited [browser support](https://caniuse.com/mdn-css_properties_object-view-box):    |
|
||||
| `zoom` | `1.0` | A value between `1.0` and `10.0` inclusive that defines how much additional "digital zoom" to apply to this camera by default. Unlike with `view_box` the user can easily "zoom back out". Often used in conjuction with `pan`. When zoomed in the [builtin browser media controls](../live.md?id=controls) will automatically be disabled (as otherwise they would be enlarged also). |
|
||||
|
||||
> [!NOTE]
|
||||
@@ -358,6 +389,26 @@ cameras:
|
||||
| `events` | `[events, clips, snapshots]` | Whether to trigger the camera when `events` occur (whether or not media is available) or whenever updated `clips` or `snapshots` are detected. Detection support varies by camera [engine](engine.md). |
|
||||
| `motion` | `false` | Whether to not to trigger the camera by automatically detecting and using the motion `binary_sensor` for this camera. This autodetection only works for Frigate cameras, and only when the motion `binary_sensor` entity has been enabled in Home Assistant. |
|
||||
| `occupancy` | `false` | Whether to not to trigger the camera by automatically detecting and using the occupancy `binary_sensor` for this camera and its configured zones and labels. This autodetection only works for Frigate cameras, and only when the occupancy `binary_sensor` entity has been enabled in Home Assistant. If this camera has configured zones, only occupancy sensors for those zones are used -- if the overall _camera_ occupancy sensor is also required, it can be manually added to `entities`. If this camera has configured labels, only occupancy sensors for those labels are used. |
|
||||
| `reviews` | | Configuration for triggering on Frigate review items. See below. Frigate-specific. |
|
||||
|
||||
### `reviews`
|
||||
|
||||
The `reviews` block configures triggering based on review items (e.g., alerts and detections from Frigate).
|
||||
|
||||
```yaml
|
||||
cameras:
|
||||
- camera_entity: camera.office
|
||||
triggers:
|
||||
reviews:
|
||||
severities:
|
||||
- high
|
||||
description: true
|
||||
```
|
||||
|
||||
| Option | Default | Description |
|
||||
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `severities` | `[high]` | An array of severity levels to trigger on. Possible values: `high` (equivalent to Frigate alerts), `medium` (equivalent to Frigate detections), `low`. At least one severity must be configured for review triggers to be active. |
|
||||
| `description` | `true` | Whether to trigger on review description updates (e.g. Frigate GenAI descriptions). Severity must also match. |
|
||||
|
||||
## Fully expanded reference
|
||||
|
||||
@@ -378,6 +429,14 @@ cameras:
|
||||
occupancy: true
|
||||
entities:
|
||||
- binary_sensor.front_door_sensor
|
||||
events:
|
||||
- events
|
||||
- clips
|
||||
- snapshots
|
||||
reviews:
|
||||
severities:
|
||||
- high
|
||||
description: true
|
||||
cast:
|
||||
method: standard
|
||||
dimensions:
|
||||
|
||||
@@ -88,11 +88,11 @@ cameras:
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Option | Default | Description |
|
||||
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `entity` | | The RTSP camera entity to pass to the WebRTC Card for this camera. |
|
||||
| `url` | Depends on the camera engine (e.g. Frigate cameras will automatically use the camera name since this is the [recommended setup](https://deploy-preview-4055--frigate-docs.netlify.app/guides/configuring_go2rtc/)). | The RTSP url to pass to the WebRTC Card, e.g. `rtsp://USERNAME:PASSWORD@CAMERA:554/RTSP_PATH` |
|
||||
| `*` | | Any options specified in the `webrtc_card:` YAML dictionary are silently passed through to the AlexxIT's WebRTC Card. See [WebRTC Configuration](https://github.com/AlexxIT/WebRTC#configuration) for full details this external card provides, e.g. `ui: true` will enable the WebRTC Card UI. |
|
||||
| Option | Default | Description |
|
||||
| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `entity` | | The RTSP camera entity to pass to the WebRTC Card for this camera. |
|
||||
| `url` | Depends on the camera engine (e.g. Frigate cameras will automatically use the camera name since this is the [recommended setup](https://docs.frigate.video/guides/configuring_go2rtc/)). | The RTSP url to pass to the WebRTC Card, e.g. `rtsp://USERNAME:PASSWORD@CAMERA:554/RTSP_PATH` |
|
||||
| `*` | | Any options specified in the `webrtc_card:` YAML dictionary are silently passed through to the AlexxIT's WebRTC Card. See [WebRTC Configuration](https://github.com/AlexxIT/WebRTC#configuration) for full details this external card provides, e.g. `ui: true` will enable the WebRTC Card UI. |
|
||||
|
||||
## Fully expanded reference
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@ folders:
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Option | Default | Description |
|
||||
| ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | | An optional folder `id` which can be used by the [`folder` action](./actions/custom/README.md?id=folder) to show a particular folder contents. |
|
||||
| `ha` | | Options for `ha` folder types. See below. |
|
||||
| `icon` | | An optional folder icon. |
|
||||
| `title` | | An optional folder title. |
|
||||
| `type` | `ha` | The type of folder, `ha` for Home Assistant media folders (currently the only supported type of folder). |
|
||||
| Option | Default | Description |
|
||||
| ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | | An optional folder `id` which can be used by [camera `media` configuration](./cameras/README.md#media) or [`folder` actions](./actions/custom/README.md?id=folder) to show a particular folder's contents. |
|
||||
| `ha` | | Options for `ha` folder types. See below. |
|
||||
| `icon` | | An optional folder icon. |
|
||||
| `title` | | An optional folder title. |
|
||||
| `type` | `ha` | The type of folder, `ha` for Home Assistant media folders (currently the only supported type of folder). |
|
||||
|
||||
## `ha`
|
||||
|
||||
|
||||
+12
-16
@@ -93,16 +93,15 @@ live:
|
||||
# [...]
|
||||
```
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `events_media_type` | `all` | Whether to show `clips`, `snapshots` or `all` in the thumbnail carousel in the `live` view. This setting is only relevant when the `media_type` parameter is set to `events`. |
|
||||
| `media_type` | `events` | Whether to load `events` or `recordings` media. |
|
||||
| `mode` | `none` | Whether to show the thumbnail carousel `below` the media, `above` the media, in a drawer to the `left` or `right` of the media or to hide it entirely (`none`). |
|
||||
| `show_details` | `false` | Whether to show event details (e.g. duration, start time, object detected, etc) alongside the thumbnail. |
|
||||
| `show_download_control` | `true` | Whether to show the download control on each thumbnail. |
|
||||
| `show_favorite_control` | `true` | Whether to show the favorite ('star') control on each thumbnail. |
|
||||
| `show_timeline_control` | `true` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `size` | `100` | The size of the thumbnails in the thumbnail carousel in pixels. Must be >= `75` and <= `300`. |
|
||||
| Option | Default | Description |
|
||||
| ----------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `mode` | `none` | Whether to show the thumbnail carousel `below` the media, `above` the media, in a drawer to the `left` or `right` of the media or to hide it entirely (`none`). |
|
||||
| `show_details` | `false` | Whether to show event details (e.g. duration, start time, object detected, etc) alongside the thumbnail. |
|
||||
| `show_download_control` | `false` | Whether to show the download control on each thumbnail. |
|
||||
| `show_favorite_control` | `true` | Whether to show the favorite ('star') control on each thumbnail. |
|
||||
| `show_review_control` | `true` | Whether to show the review ('check') control on each thumbnail. |
|
||||
| `show_timeline_control` | `false` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `size` | `100` | The size of the thumbnails in the thumbnail carousel in pixels. Must be >= `75` and <= `300`. |
|
||||
|
||||
### `timeline`
|
||||
|
||||
@@ -118,7 +117,6 @@ live:
|
||||
| Option | Default | Description |
|
||||
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `clustering_threshold` | `3` | The minimum number of overlapping events to allow prior to clustering/grouping them. Higher numbers cause clustering to happen less frequently. Depending on the timescale/zoom of the timeline, the underlying timeline library may still allow overlaps for low values of this parameter -- for a fully "flat" timeline use the `ribbon` style. `0` disables clustering entirely. Only used in the `stack` style of timeline. |
|
||||
| `events_media_type` | `all` | Whether to show only events with `clips`, events with `snapshots` or `all` events. When `all` is used, `clips` are favored for events that have both a clip and a snapshot. |
|
||||
| `format` | | Configuration for the timeline time & date format. See below. |
|
||||
| `mode` | `none` | Whether to show the thumbnail carousel `below` the media, `above` the media, in a drawer to the `left` or `right` of the media or to hide it entirely (`none`). |
|
||||
| `pan_mode` | `pan` | See [timeline pan mode](timeline-pan-mode.md). |
|
||||
@@ -219,20 +217,18 @@ live:
|
||||
# Optionally override the default style.
|
||||
right: 5%
|
||||
thumbnails:
|
||||
media_type: events
|
||||
events_media_type: all
|
||||
size: 100
|
||||
show_details: false
|
||||
show_download_control: true
|
||||
show_download_control: false
|
||||
show_favorite_control: true
|
||||
show_timeline_control: true
|
||||
show_review_control: true
|
||||
show_timeline_control: false
|
||||
mode: none
|
||||
timeline:
|
||||
style: ribbon
|
||||
mode: none
|
||||
pan_mode: pan
|
||||
clustering_threshold: 3
|
||||
events_media_type: all
|
||||
show_recordings: true
|
||||
window_seconds: 3600
|
||||
format:
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# `media_gallery`
|
||||
|
||||
The `media_gallery` is used for providing an overview of all `clips`,
|
||||
`snapshots`, `recordings` and `folder` contents in a thumbnail gallery.
|
||||
`snapshots`, `recordings`, `reviews` and `folder` contents in a thumbnail
|
||||
gallery.
|
||||
|
||||
```yaml
|
||||
media_gallery:
|
||||
@@ -44,9 +45,10 @@ media_gallery:
|
||||
| Option | Default | Description |
|
||||
| ----------------------- | ------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `show_details` | `false` | Whether to show media details (e.g. duration, start time, object detected, etc) alongside the thumbnail. |
|
||||
| `show_download_control` | `true` | Whether to show the download control on each thumbnail. |
|
||||
| `show_download_control` | `false` | Whether to show the download control on each thumbnail. |
|
||||
| `show_favorite_control` | `true` | Whether to show the favorite ('star') control on each thumbnail. |
|
||||
| `show_timeline_control` | `true` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `show_review_control` | `true` | Whether to show the review ('check') control on each thumbnail. |
|
||||
| `show_timeline_control` | `false` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `size` | `100` | The size of the thumbnails in the gallery. Must be >= `75` and <= `300`. |
|
||||
|
||||
## Fully expanded reference
|
||||
@@ -61,9 +63,10 @@ media_gallery:
|
||||
thumbnails:
|
||||
size: 100
|
||||
show_details: false
|
||||
show_download_control: true
|
||||
show_download_control: false
|
||||
show_favorite_control: true
|
||||
show_timeline_control: true
|
||||
show_review_control: true
|
||||
show_timeline_control: false
|
||||
actions:
|
||||
entity: light.office_main_lights
|
||||
tap_action:
|
||||
|
||||
@@ -93,9 +93,11 @@ media_viewer:
|
||||
| ----------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `mode` | `none` | Whether to show the thumbnail carousel `below` the media, `above` the media, in a drawer to the `left` or `right` of the media or to hide it entirely (`none`). |
|
||||
| `show_details` | `false` | Whether to show event details (e.g. duration, start time, object detected, etc) alongside the thumbnail. |
|
||||
| `show_download_control` | `true` | Whether to show the download control on each thumbnail. |
|
||||
| `show_download_control` | `false` | Whether to show the download control on each thumbnail. |
|
||||
| `show_favorite_control` | `true` | Whether to show the favorite ('star') control on each thumbnail. |
|
||||
| `show_timeline_control` | `true` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `show_info_control` | `true` | Whether to show the info ('i') control on each thumbnail. |
|
||||
| `show_review_control` | `true` | Whether to show the review ('check') control on each thumbnail. |
|
||||
| `show_timeline_control` | `false` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `size` | `100` | The size of the thumbnails in the thumbnail carousel pixels. Must be >= `75` and <= `300`. |
|
||||
|
||||
### `timeline`
|
||||
@@ -112,7 +114,6 @@ media_viewer:
|
||||
| Option | Default | Description |
|
||||
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `clustering_threshold` | `3` | The minimum number of overlapping events to allow prior to clustering/grouping them. Higher numbers cause clustering to happen less frequently. Depending on the timescale/zoom of the timeline, the underlying timeline library may still allow overlaps for low values of this parameter -- for a fully "flat" timeline use the `ribbon` style. `0` disables clustering entirely. Only used in the `stack` style of timeline. |
|
||||
| `events_media_type` | `all` | Whether to show only events with `clips`, events with `snapshots` or `all` events. When `all` is used, `clips` are favored for events that have both a clip and a snapshot. |
|
||||
| `format` | | Configuration for the timeline time & date format. See below. |
|
||||
| `mode` | `none` | Whether to show the thumbnail carousel `below` the media, `above` the media, in a drawer to the `left` or `right` of the media or to hide it entirely (`none`). |
|
||||
| `pan_mode` | `pan` | See [timeline pan mode](timeline-pan-mode.md). |
|
||||
@@ -199,15 +200,16 @@ media_viewer:
|
||||
size: 100
|
||||
mode: none
|
||||
show_details: false
|
||||
show_download_control: true
|
||||
show_download_control: false
|
||||
show_favorite_control: true
|
||||
show_timeline_control: true
|
||||
show_info_control: true
|
||||
show_review_control: true
|
||||
show_timeline_control: false
|
||||
timeline:
|
||||
style: ribbon
|
||||
mode: none
|
||||
pan_mode: pan
|
||||
clustering_threshold: 3
|
||||
events_media_type: all
|
||||
show_recordings: true
|
||||
window_seconds: 3600
|
||||
format:
|
||||
|
||||
@@ -37,6 +37,7 @@ menu:
|
||||
| `folders` | The `folders` menu button: brings the user to a [gallery](./media-gallery.md) of folders on tap and to the media viewer with media from the folder on hold. Will only appear if [`folders`](./folders.md) are configured. |
|
||||
| `fullscreen` | The `fullscreen` menu button: expand the card to consume the fullscreen. Please note that fullscreen behavior on iPhone is limited, see [troubleshooting](../troubleshooting.md?id=fullscreen-doesn39t-work-on-iphone). |
|
||||
| `image` | The `image` view menu button: brings the user to the static `image` view. |
|
||||
| `info` | The `info` menu button: show media metadata (e.g. event time, camera, description). |
|
||||
| `iris` | The main Advanced Camera Card `iris` menu button: brings the user to the default configured view (`view.default`), or collapses/expands the menu if the `menu.style` is `hidden` . |
|
||||
| `live` | The `live` view menu button: brings the user to the `live` view. |
|
||||
| `media_player` | The `media_player` menu button: sends the visible media to a remote media player. Supports Frigate clips, snapshots and live camera (only for cameras that specify a `camera_entity` and only using the default HA stream (equivalent to the `ha` live provider)). `jsmpeg` or `webrtc-card` are not supported, although live can still be played as long as `camera_entity` is specified. In the player list, a `tap` will send the media to the player, a `hold` will stop the media on the player. |
|
||||
@@ -50,13 +51,13 @@ menu:
|
||||
|
||||
### Options for each button
|
||||
|
||||
| Option | Default | Description |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `alignment` | `matching` | Whether this menu item should have an alignment that is `matching` the menu alignment or `opposing` the menu alignment. Can be used to create two separate groups of buttons on the menu. The `priority` option orders buttons within a given `alignment`. |
|
||||
| `enabled` | `true` for `iris`, `cameras`, `substreams`, `live`, `clips`, `snapshots`, `timeline`, `download`, `camera_ui`, `fullscreen`, `media_player`, `display_mode` and `ptz_home`. `false` for `image`, `expand`, `microphone`, `mute`, `play`, `recordings`, `screenshot`, `ptz_controls` | Whether or not to show the button. |
|
||||
| `icon` | | An icon to overriding the default for that button, e.g. `mdi:camera-front`. See also [custom icons](../usage/custom-icons.md). |
|
||||
| `permanent` | `false` | If `false` the menu item is hidden when the menu has the `hidden` style and the menu is closed, otherwise it is shown (and sorted to the front). |
|
||||
| `priority` | `50` | The menu item priority. Higher priority items are ordered closer to the start of the menu alignment (i.e. a button with priority `70` will order further to the left than a button with priority `60`). Priority applies separately to `matching` and `opposing` groups (see `alignment` above). Minimum `0`, maximum `100`. |
|
||||
| Option | Default | Description |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `alignment` | `matching` | Whether this menu item should have an alignment that is `matching` the menu alignment or `opposing` the menu alignment. Can be used to create two separate groups of buttons on the menu. The `priority` option orders buttons within a given `alignment`. |
|
||||
| `enabled` | `true` for `iris`, `cameras`, `substreams`, `live`, `clips`, `snapshots`, `timeline`, `download`, `camera_ui`, `fullscreen`, `media_player`, `display_mode`, `ptz_home` and `info`. `false` for `image`, `expand`, `microphone`, `mute`, `play`, `recordings`, `screenshot`, `ptz_controls` | Whether or not to show the button. |
|
||||
| `icon` | | An icon to overriding the default for that button, e.g. `mdi:camera-front`. See also [custom icons](../usage/custom-icons.md). |
|
||||
| `permanent` | `false` | If `false` the menu item is hidden when the menu has the `hidden` style and the menu is closed, otherwise it is shown (and sorted to the front). |
|
||||
| `priority` | `50` | The menu item priority. Higher priority items are ordered closer to the start of the menu alignment (i.e. a button with priority `70` will order further to the left than a button with priority `60`). Priority applies separately to `matching` and `opposing` groups (see `alignment` above). Minimum `0`, maximum `100`. |
|
||||
|
||||
### Additional options: `microphone`
|
||||
|
||||
@@ -132,6 +133,11 @@ menu:
|
||||
enabled: false
|
||||
alignment: matching
|
||||
icon: mdi:image
|
||||
info:
|
||||
priority: 50
|
||||
enabled: true
|
||||
alignment: matching
|
||||
icon: mdi:information-outline
|
||||
iris:
|
||||
priority: 50
|
||||
enabled: true
|
||||
|
||||
@@ -28,12 +28,13 @@ status_bar:
|
||||
|
||||
### Available Items
|
||||
|
||||
| Button name | Description |
|
||||
| ------------ | ------------------------------------------------------ |
|
||||
| `engine` | The icon of the camera engine for the relevant camera. |
|
||||
| `resolution` | The detected media resolution (if any). |
|
||||
| `technology` | The detected media technology (if any). |
|
||||
| `title` | The media title. |
|
||||
| Button name | Description |
|
||||
| ------------ | ------------------------------------------------------------------------------------------- |
|
||||
| `engine` | The icon of the camera engine for the relevant camera. |
|
||||
| `resolution` | The detected media resolution (if any). |
|
||||
| `severity` | The media severity indicator (if any) for review severity (e.g. Frigate alerts/detections). |
|
||||
| `technology` | The detected media technology (if any). |
|
||||
| `title` | The media title. |
|
||||
|
||||
### Options for each item
|
||||
|
||||
@@ -75,6 +76,9 @@ status_bar:
|
||||
resolution:
|
||||
enabled: true
|
||||
priority: 50
|
||||
severity:
|
||||
enabled: true
|
||||
priority: 50
|
||||
technology:
|
||||
enabled: true
|
||||
priority: 50
|
||||
|
||||
@@ -10,7 +10,7 @@ timeline:
|
||||
|
||||
You can interact with the timeline in a number of ways:
|
||||
|
||||
- Clicking on an event will take you to the media viewer for that event.
|
||||
- Clicking on an event/review will take you to the media viewer for that event/review.
|
||||
- Clicking on the "background", or a camera title, will take you to the recordings for that camera (seeking to the clicked time).
|
||||
- Clicking on the time axis will take you to recordings for all cameras (seeking to the clicked time).
|
||||
|
||||
@@ -18,7 +18,6 @@ You can interact with the timeline in a number of ways:
|
||||
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `clustering_threshold` | `3` | The minimum number of overlapping events to allow prior to clustering/grouping them. Higher numbers cause clustering to happen less frequently. Depending on the timescale/zoom of the timeline, the underlying timeline library may still allow overlaps for low values of this parameter -- for a fully "flat" timeline use the `ribbon` style. `0` disables clustering entirely. Only used in the `stack` style of timeline. |
|
||||
| `controls` | | Configuration for the timeline controls. See below. |
|
||||
| `events_media_type` | `all` | Whether to show only events with `clips`, events with `snapshots` or `all` events. When `all` is used, `clips` are favored for events that have both a clip and a snapshot. |
|
||||
| `format` | | Configuration for the timeline time & date format. See below. |
|
||||
| `show_recordings` | `true` | Whether to show recordings on the timeline (specifically: which hours have any recorded content). |
|
||||
| `style` | `stack` | Whether the timeline should show events as a single flat `ribbon` or a `stack` of events that are clustered using the `clustering_threshold`. |
|
||||
@@ -69,6 +68,7 @@ timeline:
|
||||
| `show_details` | `false` | Whether to show event details (e.g. duration, start time, object detected, etc) alongside the thumbnail. |
|
||||
| `show_download_control` | `true` | Whether to show the download control on each thumbnail. |
|
||||
| `show_favorite_control` | `true` | Whether to show the favorite ('star') control on each thumbnail. |
|
||||
| `show_review_control` | `true` | Whether to show the review ('check') control on each thumbnail. |
|
||||
| `show_timeline_control` | `true` | Whether to show the timeline ('target') control on each thumbnail. |
|
||||
| `size` | `100` | The size of the thumbnails in the thumbnail carousel in pixels. Must be >= `75` and <= `300`. |
|
||||
|
||||
@@ -80,7 +80,6 @@ timeline:
|
||||
timeline:
|
||||
style: stack
|
||||
clustering_threshold: 3
|
||||
events_media_type: all
|
||||
show_recordings: true
|
||||
window_seconds: 3600
|
||||
format:
|
||||
@@ -92,5 +91,6 @@ timeline:
|
||||
show_details: true
|
||||
show_download_control: true
|
||||
show_favorite_control: true
|
||||
show_review_control: true
|
||||
show_timeline_control: true
|
||||
```
|
||||
|
||||
@@ -147,6 +147,8 @@ This card supports several different views.
|
||||
| `live` | Shows the live camera view with the configured [live provider](./cameras/live-provider.md). |
|
||||
| `recording` | Shows a viewer for the most recent recording for this camera. Can also be accessed by holding down the `recordings` menu icon. |
|
||||
| `recordings` | Shows a gallery of recent (last day) recordings for this camera and its dependents. |
|
||||
| `review` | Shows a viewer for the most recent unreviewed review item (e.g. alerts/detections in Frigate). |
|
||||
| `reviews` | Shows a viewer for the most recent unreviewed review item (e.g. alerts/detections in Frigate). |
|
||||
| `snapshot` | Shows a viewer for the most recent snapshot for this camera. Can also be accessed by holding down the `snapshots` menu icon. |
|
||||
| `snapshots` | Shows a gallery of snapshots for this camera. |
|
||||
| `timeline` | Shows an event timeline. |
|
||||
|
||||
Reference in New Issue
Block a user