Commit Graph
136 Commits
Author SHA1 Message Date
Dermot Duffy c38bf192e0 fix: PTZ actions should reflect camera rotation (#2258)
- Closes: #2210
2025-12-07 21:12:12 -08:00
Dermot Duffy 596a37903f feat: Add TPLink camera engine support (#2257)
* Related #2183

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Introduce `tplink` camera engine with relative PTZ via button
entities, add icons/docs support, refactor to `EntityCamera`, and extend
tests/schema/factory for auto-detection.
> 
> - **Engines**
>   - **New `tplink` engine**:
>     - Add `Engine.TPLink`, schema support (`engine: 'tplink'`).
> - Implement `TPLinkCameraManagerEngine` and `TPLinkCamera` (relative
PTZ via `button.*` entities; no presets/zoom; stop is no-op).
> - Update `engine-factory` to create/auto-detect `tplink` (platform
`tplink`).
> - **Refactor**
> - Replace `BrowseMediaCamera` with `EntityCamera`; update `motioneye`
and `reolink` cameras and `motioneye` engine type checks.
> - **UI/Icons**
> - Add `tplink.svg`; wire into `IconController`; update docs icon copy
script.
> - **Docs**
> - Add `tplink` to engine capability and live-provider matrices; new
`tplink` section incl. PTZ note; add custom icon entry.
> - **Tests**
> - Add TPLink camera/engine tests and factory tests; remove obsolete
`BrowseMediaCamera` test.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
74a688c3bd602912d63a22c3c6fa2f4b60ec14f9. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-12-07 16:57:33 -08:00
Dermot Duffy 3279481b0e feat: Add festive visual effects (#2252)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Introduces an effects system (fireworks, ghost, hearts, shamrocks,
snow), a new `effect` action, and optional date-based loading effects,
integrated into the card with docs, schema, editor, and tests.
> 
> - **Effects System**:
> - Add `EffectsController` and `advanced-camera-card-effects` host with
lazy-loaded effect modules (`fireworks`, `ghost`, `hearts`, `shamrocks`,
`snow`).
> - New base effect component with fade-in/out; SCSS and z-index
updates.
> - **Actions**:
> - New custom action `advanced_camera_card_action: effect` with
`effect_action` (`start`|`stop`|`toggle`).
>   - Wire into `ActionFactory` and add `EffectAction` executor.
> - **Card Integration**:
> - Mount effects host in `advanced-camera-card` and expose
`getEffectsControllerAPI()` via `CardController`.
> - Loading component can trigger date-based effects (e.g., New Year
fireworks) when enabled.
> - **Configuration & Editor**:
> - Add `performance.features.card_loading_effects` (default `true`)
alongside `card_loading_indicator`.
> - Update schemas, defaults, low-performance profile (disables
effects), and editor toggles.
> - **Docs & Examples**:
>   - Document `effect` action parameters and add menu example.
>   - Update performance docs with new option.
> - **Localization & Tests**:
>   - Update i18n strings for new performance option.
> - Add comprehensive tests for effects controller, action, factory,
config defaults/profiles, and utilities.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
cffd4304fe3bd22340316f9cec53e341379b1756. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2025-12-06 18:21:44 -08:00
Dermot DuffyandFelipe Santos 1f41781a84 feat: Add custom reload action to reload dashboard (#2217)
- Closes: #2215

---------

Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
2025-10-14 07:37:50 -07:00
Dermot Duffy af53c66cd5 fix: Folders should be overrideable (#2198)
- Closes #2196
2025-10-04 16:13:11 -07:00
Dermot Duffy 78dee9194f feat: Add timeline support for folder media (#2197)
- Closes #2106
2025-10-04 15:47:39 -07:00
Dermot Duffy bc5022ef1a feat: Enable go2rtc live stream proxying (#2159)
- Closes #1984
2025-08-28 21:19:19 -07:00
Dermot Duffy 4d4b64232a feat: Add support for rotating camera streams (#2149)
* Closes #1307
2025-08-23 17:30:53 -07:00
Dermot Duffy c3e7cef9cf fix: Camera aspect-ratio should always apply (#2114)
- Closes #2073
2025-07-13 14:56:03 -07:00
Dermot Duffy 956a2e523c feat: Add folder view to view folder media (#2077)
- Closes: #2068

Note: Renames existing `folder` view to `folders` [experimental
functionality]
2025-05-31 17:13:39 -07:00
Dermot Duffy c55a0f00fd feat: Allow matching of folders based on parsed date (#2074)
- For: #1748
2025-05-31 14:12:09 -07:00
Dermot Duffy dc63dcdab9 feat: Add or and template folder media matchers (#2071)
- For: #1748
2025-05-29 21:21:59 -07:00
Dermot Duffy c077f8bf70 feat: Add folder title matching and parsing (#2067)
This is a breaking change for users of the [experimental 'folder'
functionality](https://card.camera/#/configuration/folders).

Related: #1748
2025-05-27 07:50:51 -07:00
Dermot Duffy c4400194f5 fix: Allow multiple overrides to operate independently (#2063)
- Closes #1954
2025-05-24 16:14:09 -07:00
Dermot Duffy c6a4c8aea2 feat: Implement basic general folder support (#2051)
- Related: #1748
2025-05-21 19:59:21 -07:00
Dermot Duffy 2eb0d9e35e fix: Reolink PTZ support should work with hub-connected cameras (#2014)
- Related: #1964
2025-04-16 10:58:18 +01:00
Dermot Duffy e7a9e20c9e feat: Add support for template conditions (#1995)
- Closes:  #1988
2025-04-05 22:25:46 +01:00
Dermot Duffy f6bb8001e3 fix: Allow entity to take remote control priority (#1981)
- Closes: #1958


[skip ci]
2025-03-24 18:24:56 -07:00
Dermot Duffy a3b17d8cb2 feat: Add or, and and not condition types (#1980)
[skip ci]
2025-03-23 21:04:15 -07:00
Dermot Duffy f140f6a653 feat: Allow control of where selected item is in grid (#1979)
- Closes: #1946
2025-03-23 14:49:47 -07:00
Dermot Duffy d6225fefda refactor: Break apart monolithic configuration schema (#1977)
[skip ci]
2025-03-22 15:06:11 -07:00
Dermot Duffy 773b486489 refactor: Remove unnecessary schemaForType (#1960) 2025-03-15 14:45:13 -07:00
Dermot Duffy 75ae7720d3 fix: Confirmations should apply to all actions (#1959)
This also refactors how generic HA actions are handled, and improves
typing of actions.


[skip ci]
2025-03-15 14:32:48 -07:00
Dermot Duffy a79ffa6edc refactor: Retire the use of unmaintained custom-card-helpers (#1956)
- Closes #1295
2025-03-09 16:02:33 -07:00
Dermot Duffy c66c3ec919 feat: Add control/output of selected camera via an entity (#1895)
- Closes #1871
2025-02-17 13:33:10 -08:00
Dermot Duffy da79664a67 feat: Add support for config and initialized conditions (#1894)
These conditions are probably not hugely useful for most card users, but
allows the inbuilt automation systems to be used for card internal
operations.

[skip ci]
2025-02-16 14:17:04 -08:00
Dermot Duffy 8d3cf07b43 refactor: Significantly refactor how conditions work internally (#1886)
- Much improved API cleanliness and testability to allow further
extensibility in future
 - Simplified code in `live` view

This technically contains a small change in how overrides work in the
`live` view. Since that change is _closer_ to the documentation, and
since this is likely to be rarely used, this is not considered a
breaking change. Previously, overrides for a given live camera would
always render _as if_ that camera was selected, vs was actually
selected. Now, overrides will only apply in the live view when the
camera is _actually_ selected. If this is an issue for you in practice,
lets discuss.
2025-02-11 20:07:55 -08:00
Dermot Duffy cc376a8be1 feat: Rename the card to advanced-camera-card (#1873)
Whilst the Frigate support in this card is the best among camera
engines, the name incorrectly suggests that Frigate is a requirement.
Instead, to broaden the appeal, change to more camera agnostic name.
This does not suggest any change in priority, role or support for
Frigate.

This change is likely to be bug prone, due to the size of the rename --
the code contains 1500+ references to "Frigate" most of which make sense
to rename, some which do not, all of which needed human assessment.

- Closes #1298


BREAKING CHANGE: References to `frigate-card` in all kinds of
configuration need to be updated to `advanced-camera-card`. An automated
config upgrade should take care of the majority of usecases (click `Edit
-> Upgrade -> Save`), though may not be perfect.
2025-02-06 19:32:32 -08:00
Dermot Duffy f123bb91dd feat: Add support for 12-hour clock formatting on timelines (#1862)
- Closes #1779 


[skip ci]
2025-02-01 13:37:12 -08:00
Dermot Duffy 57a687d659 fix: Restore camera layout support in image view (#1831)
* Closes #1804
2025-01-16 20:00:31 -08:00
Dermot Duffy 6b3736bdaf fix: Show version number with card loading spinner (#1825)
- Closes #1818

**Why add this?**: A repeated pattern is that an issue is fixed in the
card, a new build is released and users will incorrectly believe it's
not yet fixed due to their browser caching the old code. This results in
wasting their time, and my time.

**But it's obnoxious!**: I'm pretty sensitive to this (hence adding
these messages!), so let me know how terrible you find it. You can
disable it with:

```yaml
performance:
  features:
    card_loading_indicator: false
```
2025-01-12 16:26:30 -08:00
Dermot Duffy 2678500670 feat: Allow user-agent based conditions (#1821)
* Closes #1819
2025-01-10 07:41:19 -08:00
Dermot Duffy c3dc4803ad fix: Honor the view configured display mode (#1815)
- Closes #1812
2025-01-07 22:28:40 -08:00
Dermot Duffy 278560b5ac feat: Add richer card theme support (#1809) 2025-01-07 19:54:13 -08:00
Dermot Duffy 9d812af9f4 fix: Use HA style and coloring for all icons (#1790) 2024-12-23 15:22:27 -08:00
Dermot Duffy 0b681402db feat: Add new option to always error on entity unavailable (#1770) 2024-12-16 21:05:17 -08:00
Dermot Duffy 649b0280ee feat: Increase max thumbnail size to 300px (#1703)
* feat: Remove max thumbnail size

* Remove old comment.

* Set max to 350px

* Decrease max size to 300px
2024-12-08 13:03:47 -08:00
Dermot Duffy dada65e008 feat: Add experimental reolink media support (#1694)
* feat: Add experimental rich reolink support.

* Formatting fix
2024-11-25 20:19:12 -08:00
Dermot Duffy 0ec9afbad2 feat: Add permanent menu items for hidden menus (#1636) 2024-10-13 11:05:33 -07:00
Felipe SantosandDermot Duffy 9098eb3483 feat: Rework casting profile and documentation (#1602)
* feat: Rework casting profile and documentation

* Apply suggestions from code review

Co-authored-by: Dermot Duffy <dermot.duffy@gmail.com>

* Some other minor details

* Update docs/usage/casting.md

Co-authored-by: Dermot Duffy <dermot.duffy@gmail.com>

* Improve const.ts

* Some other small changes

* Update docs/usage/casting.md

Co-authored-by: Dermot Duffy <dermot.duffy@gmail.com>

---------

Co-authored-by: Dermot Duffy <dermot.duffy@gmail.com>
2024-10-02 19:45:16 -07:00
Dermot Duffy 8c5aebef03 fix: Don't hide menu in casting profile (#1590) 2024-09-27 18:52:16 -07:00
Dermot Duffy 1e0a990855 feat: Add new casting profile (#1575)
* feat: Add new `casting` profile

* Set some additional flags for casting
2024-09-23 20:24:35 -07:00
Dermot Duffy 766f3422a9 fix: Unparseable config when using the low-performance profile (#1570)
* The `low-performance` profile itself had parse errors: fix them!
* Do not silently swallow override parse errors, they are always a user issue
* Minor error message rendering improvements to show multiple pieces of context
2024-09-22 15:08:37 -07:00
Dermot Duffy e5cbfa9976 fix: Assume conditions are state conditions unless otherwise specified (#1552) 2024-09-21 13:41:13 -07:00
Felipe Santos af4666e023 feat: Add microphone_connect action (#1537) 2024-09-15 20:17:48 -07:00
Dermot Duffy f924537025 fix: Replace max_height with height (#1539)
* fix: Replace `max_height` with `height`

BREAKING CHANGE: This entirely removes `min_height`, and replaces `max_height` with `height`. The behavior is obviously not exactly the same, but the prior behavior did not actually work correctly. CSS does not  limit the height of child elements that are `100%` of their parents height if the parent does not have an explicit height set (this caused spillage over the set max height). As such, it's simpler to just allow the user to set the actual height of the card should they need to do so, with a (hopefully) minor loss of flexibility.

* Test fixes
2024-09-15 17:29:05 -07:00
Felipe Santos e13e53b430 feat: Add microphone_disconnect action (#1536) 2024-09-15 15:44:40 -07:00
Dermot Duffy a0283c35c1 Add support for perform-action calls. 2024-09-09 22:05:49 -07:00
Dermot Duffy 041656317a Add support for arbitrary image entities 2024-09-08 16:48:26 -07:00
Dermot Duffy 1a0e219c61 Move automatic media actions out of carousels 2024-09-07 15:04:23 -07:00