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 Duffy and Felipe 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 Santos and Dermot 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