docs: Update callouts for new docsify version (#2211)

This commit is contained in:
Dermot Duffy
2025-10-12 15:02:26 -07:00
committed by GitHub
parent 55d181b519
commit ebbd219db7
25 changed files with 158 additions and 105 deletions
+10 -8
View File
@@ -55,15 +55,17 @@ If an action is configured for both the whole card (`view.actions`) and a more
specific view (e.g. `live.actions`) then the actions are merged, with the more
specific overriding the less specific.
!> The card itself relies on user interactions to function (e.g. `tap` on
the menu should activate that button). Card or View actions are prevented from
being activated through standard interaction with menu buttons, next/previous
controls, thumbnails, etc, but in some cases this prevention is not possible
(e.g. embedded WebRTC card controls) -- in these cases duplicate actions may
occur with certain configurations (e.g. `tap`).
> [!NOTE]
> The card itself relies on user interactions to function (e.g. `tap` on
> the menu should activate that button). Card or View actions are prevented from
> being activated through standard interaction with menu buttons, next/previous
> controls, thumbnails, etc, but in some cases this prevention is not possible
> (e.g. embedded WebRTC card controls) -- in these cases duplicate actions may
> occur with certain configurations (e.g. `tap`).
!> Card-wide actions are not supported on the `timeline` view, `diagnostics`
view nor when a info/error message is being displayed.
> [!NOTE]
> Card-wide actions are not supported on the `timeline` view, `diagnostics`
> view nor when a info/error message is being displayed.
## Actions <!-- {docsify-ignore} -->
+10 -5
View File
@@ -336,7 +336,8 @@ advanced_camera_card_action: ptz
| `ptz_phase` | | Optional parameter that is one of `start` or `stop` to start or stop the movement separately. |
| `ptz_preset` | | Optional preset to execute when the `ptz_action` is `preset`. |
?> If no `ptz_action` is specified, the camera returns to its "home" position. For a real PTZ camera, the "home" position is the first available preset. If there are no presets, there is no home position.
> [!NOTE]
> If no `ptz_action` is specified, the camera returns to its "home" position. For a real PTZ camera, the "home" position is the first available preset. If there are no presets, there is no home position.
## `ptz_controls`
@@ -373,7 +374,8 @@ advanced_camera_card_action: ptz_digital
| `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. |
?> 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.
> [!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.
See [example of automatically zoom/panning based on state](../../../examples.md?id=automatically-zoom-based-on-state).
@@ -394,7 +396,8 @@ PTZ action will execute (equivalent to using the [`ptz`](README.md?id=ptz)
action), otherwise a digital PTZ action will be run (equivalent to using the
[`ptz_digital`](README.md?id=ptz_digital) action).
?> If the camera supports _any_ real PTZ action, _all_ actions will attempt to make real PTZ calls.
> [!NOTE]
> If the camera supports _any_ real PTZ action, _all_ actions will attempt to make real PTZ calls.
```yaml
action: custom:advanced-camera-card-action
@@ -410,7 +413,8 @@ advanced_camera_card_action: ptz_multi
| `ptz_phase` | Optional parameter that is one of `start` or `stop` to start or stop the movement separately. |
| `ptz_preset` | Optional preset to execute when the `ptz_action` is `preset`. |
?> If no `ptz_action` is specified, the camera returns to its "home" position.
> [!NOTE]
> If no `ptz_action` is specified, the camera returns to its "home" position.
## `recording`
@@ -465,7 +469,8 @@ The `duration` block configures how long the `sleep` should last.
| `s` | Seconds to sleep for. |
| `ms` | Milliseconds to sleep for. |
?> Multiple values can be combined, e.g. `{ m: 2, s: 30}` will sleep for `2.5` minutes.
> [!TIP]
> Multiple values can be combined, e.g. `{ m: 2, s: 30}` will sleep for `2.5` minutes.
## `snapshot`
+2 -1
View File
@@ -2,7 +2,8 @@
Automatically take [actions](actions/README.md) based on [conditions](conditions.md) being met.
?> To change configuration conditionally use [overrides](overrides.md).
> [!TIP]
> To change configuration conditionally use [overrides](overrides.md).
```yaml
automations:
+16 -9
View File
@@ -67,9 +67,10 @@ cameras:
| `substream` | The camera can be used as a substream on another camera. |
| `trigger` | The camera can be triggered. |
?> If using a camera only as a `substream`, don't forget to keep both the
`substream` and `ptz` capabilities enabled if you wish to use PTZ controls for
the substream.
> [!NOTE]
> If using a camera only as a `substream`, don't forget to keep both the
> `substream` and `ptz` capabilities enabled if you wish to use PTZ controls for
> the substream.
## `cast`
@@ -137,9 +138,12 @@ cameras:
| `layout` | | How the media should be laid out _within_ the camera dimensions. See below. |
| `rotation` | `0` | Rotates the camera clockwise by `0`, `90`, `180` or `270` degrees. |
?> Use of `rotation` causes the browser to rotate the video player, unavoidably _including_ rotating the builtin video controls on the player, which may be distracting or confusing (e.g. upside down controls). Builtin controls can be disabled using the [`live.controls.builtin` parameter](../live.md?id=controls). Rotation is not available in iOS fullscreen, due to the limited fullscreen support offered by that OS.
> [!NOTE]
> Use of `rotation` causes the browser to rotate the video player, unavoidably _including_ rotating the builtin video controls on the pl
> ayer, which may be distracting or confusing (e.g. upside down controls). Builtin controls can be disabled using the [`live.controls.builtin` parameter](../live.md?id=controls). Rotation is not available in iOS fullscreen, due to the limited fullscreen support offered by that OS.
!> Rotating the camera incurs a rendering performance penalty. Always rotate "upstream" if possible (e.g. in your camera settings).
> [!WARNING]
> Rotating the camera incurs a rendering performance penalty. Always rotate "upstream" if possible (e.g. in your camera settings).
### Layout Configuration
@@ -161,7 +165,8 @@ cameras:
| `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): ![](../../images/browsers/chrome_16x16.png 'Google Chrome :no-zoom') ![](../../images/browsers/chromium_16x16.png 'Chromium :no-zoom') ![](../../images/browsers/edge_16x16.png 'Microsoft Edge :no-zoom') |
| `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). |
?> Layout operations are effectively applied in this order: `fit`, `position`, `view_box`, `zoom` then `pan`.
> [!NOTE]
> Layout operations are effectively applied in this order: `fit`, `position`, `view_box`, `zoom` then `pan`.
See [media layout examples](../../examples.md?id=media-layout).
@@ -230,8 +235,9 @@ auto-detected actions. For example if `actions_left` is set for a Frigate
camera, it will be used for all `left` PTZ actions even though Frigate cameras
natively support continuous actions (`actions_left_start`, `actions_left_stop`).
?> Frigate auto-detected PTZ actions will always be `continuous` as this is what
the integration currently offers.
> [!NOTE]
> Frigate auto-detected PTZ actions will always be `continuous` as this is what
> the integration currently offers.
### Parameters
@@ -262,7 +268,8 @@ cameras:
`[action]` is any [perform-action](../actions/stock/README.md?id=perform-action) action.
?> The 'Home' PTZ button (:house:) activates the first preset.
> [!NOTE]
> The 'Home' PTZ button (:house:) activates the first preset.
## `proxy`
+4 -2
View File
@@ -102,13 +102,15 @@ cameras:
| `media_resolution` | `low` | Whether to retrieve `high` or `low` resolution media items. |
| `url` | | The URL of the Reolink camera/NVR UI. If set, this value will be (exclusively) used for a `Camera UI` menu button. |
?> If media for the "wrong" Reolink camera is showing up and you have an NVR connected camera, your `channel` value is likely incorrect. Try increasing it until you find the correct camera.
> [!TIP]
> If media for the "wrong" Reolink camera is showing up and you have an NVR connected camera, your `channel` value is likely incorrect. Try increasing it until you find the correct camera.
### PTZ Support
Zero-configuration PTZ support is available for Reolink if your camera supports it.
!> For Home Assistant control of Reolink camera PTZ functions, the relevent `button` entities must be enabled. To verify, navigate to `Settings -> Devices & services -> Reolink -> [Choose Device]`, and ensure the `PTZ` entities are enabled. Disabled entities are shown under the `+X disabled entities` label. :eight_spoked_asterisk:
> [!IMPORTANT]
> For Home Assistant control of Reolink camera PTZ functions, the relevent `button` entities must be enabled. To verify, navigate to `Settings -> Devices & services -> Reolink -> [Choose Device]`, and ensure the `PTZ` entities are enabled. Disabled entities are shown under the `+X disabled entities` label.
## Fully expanded reference
+4 -2
View File
@@ -32,7 +32,8 @@ cameras:
| `stream` | Determined by camera engine (e.g. `frigate` camera name). | A valid `go2rtc` stream name. |
| `url` | Determined by camera engine (e.g. the `frigate` engine will automatically generate a URL for the go2rtc backend that runs in the Frigate container). | The root `go2rtc` URL the card should stream the video from. This is only needed for non-Frigate usecases, or advanced Frigate usecases. Example: `http://my-custom-go2rtc:1984` |
?> If `url` is manually set and `proxy.live` is set to `auto` on the camera (the default), the video stream will automatically be proxied via the Home Assistant process if the [hass-web-proxy-integration](https://github.com/dermotduffy/hass-web-proxy-integration) is detected. See [proxying](./README.md?id=proxy).
> [!NOTE]
> If `url` is manually set and `proxy.live` is set to `auto` on the camera (the default), the video stream will automatically be proxied via the Home Assistant process if the [hass-web-proxy-integration](https://github.com/dermotduffy/hass-web-proxy-integration) is detected. See [proxying](./README.md?id=proxy).
## `image`
@@ -76,7 +77,8 @@ WebRTC Card support blends the use of the ultra-realtime [WebRTC card live
view](https://github.com/AlexxIT/WebRTC) with convenient access to Frigate
events/snapshots/UI. AlexxIT's WebRTC Integration/Card must be installed and configured separately (see [details](https://github.com/AlexxIT/WebRTC)) before it can be used with this card.
?> The `webrtc_card` default configuration disables the WebRTC card's `intersection` parameter (which auto-stops the media when a certain fraction of the video is no longer visible), since it interferes with the card pan & zoom. Instead, see the [`auto_pause`](../live.md) parameter.
> [!NOTE]
> The `webrtc_card` default configuration disables the WebRTC card's `intersection` parameter (which auto-stops the media when a certain fraction of the video is no longer visible), since it interferes with the card pan & zoom. Instead, see the [`auto_pause`](../live.md) parameter.
```yaml
cameras:
@@ -1 +1,2 @@
!> Just copying this full reference into your configuration will cause you a significant maintenance burden. Don't do it! Only specify what you need, everything shown here are either default or illustrative values.
> [!WARNING]
> Just copying this full reference into your configuration will cause you a significant maintenance burden. Don't do it! Only specify what you need, everything shown here are either default or illustrative values.
@@ -1 +1,2 @@
!> This functionality is experimental. It may be broken, slow or change without warning or major version number change.
> [!WARNING]
> This functionality is experimental. It may be broken, slow or change without warning or major version number change.
@@ -1,4 +1,5 @@
?> For optimal UX, keep the settings for the mini-timeline in the `live` and
`media_viewer` identical. Dragging the timeline may cause the card to change
between the `live` view and `media_viewer` based views as the user pans between
the past and present -- if the settings are different the timeline must "reset".
> [!NOTE]
> For optimal UX, keep the settings for the mini-timeline in the `live` and
> `media_viewer` identical. Dragging the timeline may cause the card to change
> between the `live` view and `media_viewer` based views as the user pans between
> the past and present -- if the settings are different the timeline must "reset".
+17 -13
View File
@@ -118,7 +118,8 @@ conditions:
| ----------- | ---------------------- |
| `condition` | Must be `initialized`. |
?> This is exclusively useful for running [automations](./automations.md) on card start.
> [!NOTE]
> This is exclusively useful for running [automations](./automations.md) on card start.
## `interaction`
@@ -265,10 +266,11 @@ conditions:
| `state` | A single entity state, or list of entity states, against which the entity state is compared. |
| `state_not` | A single entity state, or list of entity states, against which the entity state is inversely compared. |
!> If multiple state conditions are used together with neither `state` nor
`state_not` specified, this effectively means the state for multiple entities
needs to _change_ simultaneously. This is unlikely to happen in reality, and
almost certainly not useful / reliable as a condition.
> [!NOTE]
> If multiple state conditions are used together with neither `state` nor
> `state_not` specified, this effectively means the state for multiple entities
> needs to _change_ simultaneously. This is unlikely to happen in reality, and
> almost certainly not useful / reliable as a condition.
See [Home Assistant conditions documentation](https://www.home-assistant.io/dashboards/conditional/#state).
@@ -289,10 +291,11 @@ conditions:
See [Home Assistant conditions documentation](https://www.home-assistant.io/docs/scripts/conditions/#template-condition).
?> The Advanced Camera Card uses
[ha-nunjucks](https://github.com/Nerwyn/ha-nunjucks) to process templates.
Consult its documentation for the wide variety of different template values
supported.
> [!TIP]
> The Advanced Camera Card uses
> [ha-nunjucks](https://github.com/Nerwyn/ha-nunjucks) to process templates.
> Consult its documentation for the wide variety of different template values
> supported.
## `triggered`
@@ -356,10 +359,11 @@ conditions:
| `condition` | Must be `view`. |
| `views` | An optional list of [views](view.md?id=supported-views) in which this condition is satified (e.g. `clips`). If not specified, any view change will satisy the condition. |
?> Internally, views associated with the media viewer (e.g. `clip`, `snapshot`,
`recording`) are translated to a special view called `media` after the relevant
media is fetched. When including views as part of a [condition](conditions.md),
you may need to refer to this special `media` view.
> [!IMPORTANT]
> Internally, views associated with the media viewer (e.g. `clip`, `snapshot`,
> `recording`) are translated to a special view called `media` after the relevant
> media is fetched. When including views as part of a [condition](conditions.md),
> you may need to refer to this special `media` view.
## Fully expanded reference
+2 -1
View File
@@ -33,7 +33,8 @@ dimensions:
- `4 / 3` or `4:3`: Default fullscreen ratio.
- `[W]/[H]` or `[W]:[H]`: Any arbitrary aspect-ratio.
?> When in a [Panel View](https://www.home-assistant.io/dashboards/panel/) the aspect-ratio of the card are pegged to the exact size of the panel. As such, static aspect-ratio parameters will have no effect.
> [!NOTE]
> When in a [Panel View](https://www.home-assistant.io/dashboards/panel/) the aspect-ratio of the card are pegged to the exact size of the panel. As such, static aspect-ratio parameters will have no effect.
## Fully expanded reference
+4 -3
View File
@@ -12,9 +12,10 @@ elements:
- [element_2]
```
?> The Advanced Camera Card allows either a single [action](../actions/README.md) (as in stock Home
Assistant) or list of [actions](../actions/README.md) to be defined for each class of user interaction
(e.g. `tap`, `double_tap`, `hold`, etc). See [an example of multiple actions](../../examples.md?id=multiple-actions).
> [!NOTE]
> The Advanced Camera Card allows either a single [action](../actions/README.md) (as in stock Home
> Assistant) or list of [actions](../actions/README.md) to be defined for each class of user interaction
> (e.g. `tap`, `double_tap`, `hold`, etc). See [an example of multiple actions](../../examples.md?id=multiple-actions).
## Elements <!-- {docsify-ignore} -->
+3 -1
View File
@@ -199,7 +199,9 @@ elements:
## Fully expanded reference
?> [Actions](../../actions/README.md) are omitted for simplicity.
<!-- prettier-ignore -->
> [!NOTE]
> [Actions](../../actions/README.md) are omitted for simplicity.
[](../../common/expanded-warning.md ':include')
+2 -1
View File
@@ -20,7 +20,8 @@ elements:
# [...]
```
?> See [Advanced Camera Card custom elements](../custom//README.md) for the custom elements offered by _this_ card.
> [!TIP]
> See [Advanced Camera Card custom elements](../custom//README.md) for the custom elements offered by _this_ card.
## `icon`
+11 -7
View File
@@ -4,7 +4,8 @@
The `folders` stanza is used for configuring folders from which media/subfolders may be viewed.
?> To configure the behavior of the gallery in which folders are displayed, see the [`media_gallery` configuration](./media-gallery.md).
> [!TIP]
> To configure the behavior of the gallery in which folders are displayed, see the [`media_gallery` configuration](./media-gallery.md).
```yaml
folders:
@@ -35,8 +36,8 @@ folders:
| `url` | | An optional Home Assistant `Media` browser URL to use as the query base. If `path` is also specified, those matchers/parsers are applied against folders "below" the folder specified in `url`. |
| `path` | [`{ id: media-source:// }`] | An optional array of parsers and matchers to dynamically compare and extract metadata from the Home Assistant media folder hierarchy. See below. |
?> `url` is never fetched, nor sent over the network. It is only processed
locally in your browser. The host part of the URL can optionally be removed.
> [!NOTE]
> The `url` is never fetched, nor sent over the network. It is only processed locally in your browser. The host part of the URL can optionally be removed.
### `path`
@@ -62,8 +63,9 @@ folders:
# [...]
```
?> To match everything at a given level whilst parsing nothing would simply be
represented by an empty object `{}`
> [!TIP]
> To match everything at a given level whilst parsing nothing would simply be
> represented by an empty object `{}`
#### Matchers
@@ -72,13 +74,15 @@ to perform multiple tests. A given match may match multiple items. If an item
does not match, it will not be returned to the user nor (in case of subfolders)
feature in future traversals.
?> The higher in the path you can match, the more performant the query.
> [!TIP]
> The higher in the path you can match, the more performant the query.
##### Matcher: `date` / `startdate`
Match if the media was started more recently than the provided date information.
?> Matching based on date requires the media has been parsed with the [`date` parser](#parser-date-startdate) somewhere above or equal to the position of the matcher in the `path` hierarchy.
> [!IMPORTANT]
> Matching based on date requires the media has been parsed with the [`date` parser](#parser-date-startdate) somewhere above or equal to the position of the matcher in the `path` hierarchy.
```yaml
type: date
+2 -1
View File
@@ -16,7 +16,8 @@ image:
| `refresh_seconds` | 1 | The image will be refreshed at least every `refresh_seconds` (it may refresh more frequently, e.g. whenever Home Assistant updates its camera security token). `0` implies no refreshing. |
| `url` | | A static image URL to be used when the `mode` is set to `url` or when a temporary image is required (e.g. may appear momentarily prior to load of a camera snapshot in the `camera` mode). Note that a `_t=[timestsamp]` query parameter will be automatically added to all URLs such that the image will not be cached by the browser. |
?> When `mode` is set to `camera` this is effectively providing the same image as the `image` [live provider](cameras/live-provider.md) would show in the live camera carousel.
> [!NOTE]
> When `mode` is set to `camera` this is effectively providing the same image as the `image` [live provider](cameras/live-provider.md) would show in the live camera carousel.
## Fully expanded reference
+2 -1
View File
@@ -10,7 +10,8 @@ overrides:
# [...]
```
!> Whilst all configuration parameters are theoretically overridable, in some instances a configuration variable may only be consulted on startup or changing its value may negatively impact behavior -- override results may vary!
> [!WARNING]
> Whilst all configuration parameters are theoretically overridable, in some instances a configuration variable may only be consulted on startup or changing its value may negatively impact behavior -- override results may vary!
The top-level `overrides` configuration block expects a list, with each list
item containing `conditions` and at least one of `merge`, `delete` or `set` specified.
+6 -4
View File
@@ -8,11 +8,13 @@ profiles:
- [profile_2]
```
?> Since the profiles change the _default_ value of options, setting a profile
on a pre-existing card could have limited effect if there are options already set by
the user.
> [!NOTE]
> Since the profiles change the _default_ value of options, setting a profile
> on a pre-existing card could have limited effect if there are options already set by
> the user.
?> Profiles are applied top to bottom. If multiple profiles change a configuration default, then the last one "wins"
> [!NOTE]
> Profiles are applied top to bottom. If multiple profiles change a configuration default, then the last one "wins"
| Profile name | Purpose |
| ----------------- | ---------------------------------------------- |
+2 -1
View File
@@ -22,7 +22,8 @@ remote_control:
| `camera` | | An `input_select` entity that the card will use for bidirectional control. When the selected camera on the card changes the entity will be updated to match. Likewise, when the entity state changes, the selected camera on the card will be updated to match. When the card is first started, the `input_select` entity will be updated to only have valid camera IDs from this card and the selected camera on the card will be updated to the existing entity value. Entities used for camera remote control must start with `input_select.`. |
| `camera_priority` | `card` | Controls whether the `card` or the `entity` has priority on initial card load. If `card`, the entity state is updated to match the camera shown on load. If `entity`, the card will select the camera shown by the entity on load. |
?> To create an `input_select` entity to use in this manner, in the visual card editor, under `Remote Control -> Remote Control Entities`, choose `Create a new Dropdown helper`. Give the new entity an entity name (e.g. `my_selected_camera`) and an optional icon. You must specify at least one option -- you can use any placeholder value (e.g. `camera`) then choose `Add` (the card will automatically reset the allowable options on start). Finally, click `Create`.
> [!NOTE]
> To create an `input_select` entity to use in this manner, in the visual card editor, under `Remote Control -> Remote Control Entities`, choose `Create a new Dropdown helper`. Give the new entity an entity name (e.g. `my_selected_camera`) and an optional icon. You must specify at least one option -- you can use any placeholder value (e.g. `camera`) then choose `Add` (the card will automatically reset the allowable options on start). Finally, click `Create`.
## Related Topics
+2 -1
View File
@@ -57,7 +57,8 @@ This card supports several menu styles.
## Fully expanded reference
?> To add custom status bar contents, see [status bar custom elements](elements/custom/README.md?id=status-bar-icon).
> [!TIP]
> To add custom status bar contents, see [status bar custom elements](elements/custom/README.md?id=status-bar-icon).
[](common/expanded-warning.md ':include')
+7 -5
View File
@@ -62,12 +62,14 @@ Trigger template values must be proceeded by `advanced_camera_card.trigger` (or
| `state.to` | For [state conditions](./conditions.md?id=state), the current state of the entity. |
| `state.from` | For [state conditions](./conditions.md?id=state), the previous state of the entity. |
!> If an action is triggered with multiple [state
conditions](./conditions.md?id=state), only data from the last listed state
condition is available.
> [!NOTE]
> If an action is triggered with multiple [state
> conditions](./conditions.md?id=state), only data from the last listed state
> condition is available.
!> If you use an [`or`](./conditions.md?id=or) condition, only the trigger data
for the first matching trigger will be included.
> [!NOTE]
> If you use an [`or`](./conditions.md?id=or) condition, only the trigger data
> for the first matching trigger will be included.
Please [request](https://github.com/dermotduffy/advanced-camera-card/issues) if
you need data from additional conditions.