Commit Graph
100 Commits
Author SHA1 Message Date
Dermot Duffy f276b8c57d feat: Automatically detect Reolink NVR channel number (#2259)
- Closes: #2032, #1899 
 -  May or may not help with #2254

- Caution: I do not have an NVR-based Reolink camera to test. If
suddenly Reolink cameras don't work in the card, or in particular if
media doesn't correctly load, this is likely the culprit PR.
2025-12-07 22:48:33 -08:00
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 993e288c14 fix: Preserve parsers/matches on folder navigation (#2249)
- Closes #2231
2025-11-26 10:00:34 -08:00
Dermot Duffy 1f6a4ddce2 fix: Fix folder media in timeline when camera is not timeline supported (#2246)
- Closes: #2205
2025-11-24 14:33:06 -08:00
Dermot Duffy f50bef7446 fix: Fix audio issue triggered by HA 2025.11 (#2237)
- Closes: #2235
2025-11-09 14:43:08 -08:00
Dermot Duffy 071dca07bf fix: Fix triggering for Reolink cameras (#2230)
- Fix inspired by #2228
2025-11-02 15:04: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 7edaac079e fix: Timeline should should show folder media even without camera support (#2216)
- Closes #2205
2025-10-13 21:15:32 -07:00
Dermot Duffy ebbd219db7 docs: Update callouts for new docsify version (#2211) 2025-10-12 15:02:26 -07:00
Dermot Duffy 55d181b519 docs: Various docs fixes (#2208)
- Closes: #2207
2025-10-11 19:44:57 -07:00
Dermot Duffy e2500a853e fix: Prefer H265 when browser supported (#2200)
- Closes #2192
2025-10-06 21:25:50 -07:00
Dermot Duffy 9f479f8b4f fix: Expand templates in stock elements (#2199)
- Related: #2193
2025-10-06 21:14:29 -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 262e5f223f docs: Minor PTZ doc improvement (#2174)
- Related: #2153
2025-09-01 16:48:31 -07:00
Dermot Duffy 6b656b1720 feat: Allow PTZ control colors to be overridden (#2173)
- Closes #2123
2025-09-01 16:14:30 -07:00
Dermot Duffy daeb890fea fix: Trigger borders should be rounded (#2172)
- Closes #2107
2025-09-01 14:46:47 -07:00
Dermot Duffy 79c27c43b8 fix: Don't incorrectly change camera when a dependency supports media (#2171)
- Closes: #2122
2025-09-01 13:29:04 -07:00
Dermot Duffy 3da1459ba6 docs: Improve documentation related to microphone toggle (#2165)
- Related: #2161
2025-08-29 20:19:26 -07:00
Dermot Duffy 109e74bd2a docs: Freshen live provider documentation (#2160)
- Closes #2115
2025-08-28 21:40:22 -07:00
Dermot Duffy bc5022ef1a feat: Enable go2rtc live stream proxying (#2159)
- Closes #1984
2025-08-28 21:19:19 -07:00
Dermot Duffy c3d95a5b32 refactor: Incorporate minor go2rtc client changes (#2158)
- Closes: #1957
2025-08-24 16:21:13 -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 69ae80d6f1 fix: fit parameter should apply to entire container when aspect_ratio is not set (#2126)
* Closes #2125
2025-07-15 21:10:03 -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 d0bfb97843 docs: Include references to ptz capability for substreams. (#2120)
- Closes: #2118
2025-07-05 13:41:31 -05:00
Dermot Duffy 1bbc5be6fe fix: Fix issues where camera exceeded allowable width (#2096)
- Closes: #2073
2025-06-08 17:01:13 -07:00
Dermot Duffy 3b4752b257 feat: Triggers should fire on startup if entities are in an active state (#2095)
- Closes: #2087
2025-06-08 16:01:26 -07:00
Dermot Duffy 2b92f84665 perf: Improve performance of the carousel auto-height functionality (#2094) 2025-06-08 15:05:40 -07:00
Dermot Duffy 70f1d5fc8e docs: Add a troubleshooting entry on how to disable HACS update notifications (#2091) 2025-06-06 15:04:54 -07:00
Dermot Duffy f5918738e4 fix: Allow multiple date parsers to apply at the same folder hierarchy level (#2090)
- For: #1748
2025-06-06 14:30:55 -07:00
Dermot Duffy 3d9499ed8c docs: Add another worked example of a folder configuration (#2089) 2025-06-06 14:23:18 -07:00
Dermot Duffy 2971b402b7 feat: Allow grid selected border color to be overridden for theming (#2088)
- For #2047


[skip ci]
2025-06-05 20:10:41 -07:00
Dermot Duffy 5b9187f8c9 feat: Allow trigger border color to be overridden for theming (#2085)
- Closes: #2047
2025-06-04 20:39:42 -07:00
Dermot Duffy 13e43b8747 fix: Handle spaces in PTZ presets (#2084)
- Closes #2079
2025-06-03 20:27:40 -07:00
Dermot Duffy a3d062eec5 fix: Old Reolink media items shown instead of more recent ones (#2081)
- Closes: #2078
2025-06-02 20:55:09 -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 1901475065 docs: Remove references to card rename process (#2076) 2025-05-31 14:23:22 -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 b97e1358d0 fix: Fix issue with media view incorrectly rejecting cameras (#2061)
For issue: #1748
2025-05-23 20:02:13 -07:00
Dermot Duffy 14cf80c7b4 fix: Download icon should show on thumbnails (#2059)
- Closes #2056
2025-05-22 21:31:45 -07:00
Dermot Duffy c342c5d529 fix: Fix thumbnail rendering issues (#2058)
- Closes #2054
2025-05-22 21:21:04 -07:00
Dermot Duffy 95c926e237 chore: Update yarn lockfile (#2053) 2025-05-21 20:41:30 -07:00
Dermot Duffy 542ff9b813 docs: Add folders screenshot (#2052) 2025-05-21 20:10:16 -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 168b9b0c90 fix: Fix issues with lazy loading and overridden configuration (#2012)
- Closes #2011
2025-04-15 17:10:18 +01:00
Dermot Duffy 54ee1e1cf3 fix: Improve reliability of connection cleanup (#2009)
- Closes #1992
2025-04-14 16:58:17 +01:00
Dermot Duffy da17c689b8 docs: Clarify lazy unloading documentation (#2005)
- Closes #2001
2025-04-12 11:23:38 +01:00
Dermot Duffy a5ffd51728 fix: Lazy unloading should not leave dangling connections (#2004)
- Closes #1992
2025-04-12 10:48:37 +01:00
Dermot Duffy a24c9628c5 fix: Reolink PTZ support should detect presets (#1997)
- Related: #1964
2025-04-06 17:47:43 +01:00
Dermot Duffy e7a9e20c9e feat: Add support for template conditions (#1995)
- Closes:  #1988
2025-04-05 22:25:46 +01:00
Dermot Duffy 36783855a2 fix: Fix issue with detection of zoom in/out buttons (#1986)
- Related: #1964
2025-03-29 12:49:36 -07:00
Dermot Duffy b5eee5878a feat: Add out of the box support for Reolink PTZ (#1982)
- Closes: #1964
2025-03-26 21:26:02 -07: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 8512df1720 fix: Prevent "action loops" (#1978)
- Closes: #1967
- Closes: #1969
2025-03-22 18:39:36 -07:00
Dermot Duffy d6225fefda refactor: Break apart monolithic configuration schema (#1977)
[skip ci]
2025-03-22 15:06:11 -07:00
Dermot Duffy 92fc8dd844 test: Add tests for config actions, elements and conditions (#1976)
[skip ci]
2025-03-21 20:14:24 -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 c65ee3f0f2 fix: Avoid inadvertently resetting the go2rtc connection in some circumstances (#1953)
- Closes #1914
2025-03-08 20:27:23 -08:00
Dermot Duffy 480c3d0ab7 perf: Various minor timeline performance improvements (#1952)
- Closes #1930
2025-03-08 17:31:25 -08:00
Dermot Duffy dbd47c93c1 fix: Fix conditions re-triggering incorrectly in certain cases (#1950)
- Closes #1948


[skip ci]
2025-03-07 20:28:45 -08:00
Dermot Duffy 7daf580c7a fix: Use better default media download filenames (#1949)
* Closes #1938


[skip ci]
2025-03-07 18:57:07 -08:00
Dermot Duffy 473ac5b947 fix: Prevent gallery overflowing onto menu (#1945)
- Closes #1937
2025-03-06 07:35:22 -08:00
Dermot Duffy bad737994d docs: Highlight and improve help for duplicate versions (#1935) 2025-03-03 21:10:06 -08:00
Dermot Duffy 3b77b11196 fix: Increase reliability of media auto actions (e.g. play) (#1934)
Refactors media player handling entirely to make the code more
consistent and less boilerplate. Add testing for media player actions.

- Closes #1921
- Closes #1916
2025-03-03 20:59:01 -08:00
Dermot Duffy d4650eae8a docs: Add troubleshooting entry for multiple dashboard resources (#1926)
- Related: #1925
2025-03-01 10:40:52 -08:00
Dermot Duffy 41aa3d1f72 fix: Show underlying unavailable entity colors (#1923)
- Closes #1906
2025-02-27 20:49:54 -08:00
Dermot Duffy 0432eea4b8 feat: Add UI support for PTZ presets (#1920)
- Closes #1889

Whilst a simple change theoretically, the card has such a collection of
surfaces that can overlap other surfaces, it's challenging to get this
to work right! There's a real chance this will have broken something
z-index related (e.g. X overlaps Y when it should not), or (for related
reasons) broken curver corners on the card.
2025-02-27 20:22:12 -08:00
Dermot Duffy bb147a45fd fix: Reolink metadata should not reject media with labels (#1900)
- Related to: #1870
2025-02-17 20:13:21 -08: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 7fb710d45d feat: Add support for templates in actions (#1891)
- Closes #1878
2025-02-14 07:23:19 -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 a92074bc8d docs: Add troubleshooting entry for unknown frigate instance (#1881)
- Related to #1879
2025-02-08 12:14:23 -08:00
Dermot Duffy 42892c7ca4 docs: Fix URL querystring examples (#1877) 2025-02-07 19:48:47 -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 DuffyandIlya Rakhlin 43947b49dc fix: Downloads for iOS (#1869)
- Closes #1863

---------

Co-authored-by: Ilya Rakhlin <i.rakhlin@gmail.com>
2025-02-01 16:08:32 -08:00
Dermot Duffy a6ecb76efe fix: Add go2rtc.url to editor (#1867)
* Closes #1866
2025-02-01 13:50:27 -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 3e8e688b36 feat: Add basic fullscreen support for iPhone (#1857)
- Closes #1444
2025-01-27 07:23:07 -08:00
Dermot Duffy 32e792fdf3 fix: Better handle multiple simultaneous requests for diagnostics (#1852)
- Closes #1851


[skip ci]
2025-01-21 20:36:28 -08:00
Dermot Duffy 805a21107d fix: Correctly detect configuration for the webrtc-card live provider (#1850)
- Closes #1843

If this breaks something for you, please let me know. As a workaround,
you should manually be able to set it back to what it was with something
like:

```yaml
cameras:
 - camera_entity: camera.office
   webrtc_card:
      url: <frigate camera name>
```
2025-01-21 19:42:47 -08:00
Dermot Duffy 0212840688 fix: Substream only cameras should not be triggerable (#1848)
- Closes #1846
2025-01-21 07:17:09 -08:00
Dermot Duffy 596a724714 fix: Add additional troubleshooting pointers for stream load errors (#1844)
[skip ci]
2025-01-20 18:56:59 -08:00
Dermot Duffy faa5ec3eec refactor: Refactor internal error / info message components (#1842) 2025-01-20 15:26:53 -08:00
Dermot Duffy 99fe613811 fix: Panel mode cards with "Kiosk Mode" should fill the screen (#1838)
* Closes #1762
2025-01-18 19:06:09 -08:00
Dermot Duffy 4f76e6a18a fix: Add missing editor support for always_error_if_entity_unavailable (#1837)
- Closes #1775
2025-01-18 15:17:55 -08:00
Dermot Duffy 3003f82170 fix: Microphone should still work after a view change (#1835)
- Closes #1810
2025-01-18 14:54:40 -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 0911e83670 docs: Add the unknown command error to the troubleshooting docs (#1826)
- Closes #1799
2025-01-12 22:26:47 -08:00