Dermot Duffy
ea86ad0016
feat: Implement support for gesture-based PTZ control ( #2378 )
...
- Closes : #1839
2026-02-28 20:36:53 -08:00
Dermot Duffy
40ad3b4460
fix: Issue with height not adjusting (downwards) to aspect ratio ( #2375 )
...
- Closes #2341
2026-02-23 19:54:43 -08:00
Dermot Duffy
dd25e191ce
fix: Propagate review filtered status ( #2370 )
2026-02-22 15:50:20 -08:00
Dermot Duffy
497e6e88a0
perf: Variety of small type and performance fixes ( #2367 )
2026-02-22 15:02:14 -08:00
Dermot Duffy
df3614f793
fix: Various editor / diagnostic improvements ( #2363 )
...
- Closes : #2360
- Closes : #2328
2026-02-21 09:31:10 -08:00
Dermot Duffy
46868ce08e
perf: Various rendering performance improvements ( #2359 )
2026-02-19 21:25:33 -08:00
Dermot Duffy
0a67df9a25
refactor: Convert protected methods to private ( #2358 )
2026-02-19 20:47:59 -08:00
Dermot Duffy
529500ed94
refactor: Migrate config schema from Zod v3 to Zod v4 ( #2357 )
2026-02-18 21:47:43 -08:00
Dermot Duffy
a15376602f
feat: Allow 2-way audio detection to be skipped and timed ( #2355 )
...
- For #2313
2026-02-16 19:47:56 -08:00
Dermot Duffy
7dbf058ab2
fix: Seek to the start of review media ( #2353 )
2026-02-16 14:52:11 -08:00
Dermot Duffy
282983cbba
fix: Fix styling and severity in status bar ( #2352 )
2026-02-16 13:57:45 -08:00
Dermot Duffy
47880e4306
feat: Add ability to untrigger after fixed number of seconds ( #2350 )
...
- Related: #2342
BREAKING CHANGE: Renames: `untrigger_seconds` to
`untrigger_delay_seconds`
2026-02-16 12:25:56 -08:00
dermotduffy
584521c78e
Merge branch 'main' into dev
2026-02-15 19:28:38 -08:00
Dermot Duffy
b1467dc4bd
fix: Improve state handling to avoid stuck triggered cameras ( #2348 )
...
- Related:
https://github.com/dermotduffy/advanced-camera-card/issues/2342
2026-02-15 19:26:56 -08:00
dermotduffy
ef1766e604
Merge branch 'main' into dev
2026-02-14 13:35:05 -08:00
Dermot Duffy
be61d7fa24
fix: Adjust media size to take maximum available space ( #2346 )
...
- Closes #2109
2026-02-14 13:33:05 -08:00
Dermot Duffy
93f1f08e51
feat: Make cameras optional ( #2343 )
2026-02-13 20:21:05 -08:00
Dermot Duffy
21f9469784
fix: Expose gallery and media views as media type agnostic ( #2335 )
2026-02-08 08:04:11 -08:00
dermotduffy
0a099b95f7
Merge branch 'main' into dev
2026-02-07 21:59:50 -08:00
Dermot Duffy
49073fee48
fix: Update components and styles to work with >= HA 2026.2 ( #2333 )
...
Caution: Requires HA >= `2026.2`
- Closes #2329
- Closes #2332
2026-02-07 20:32:05 -08:00
Dermot Duffy
c03ddd9a13
feat: Add severity media filter ( #2323 )
2026-01-24 21:25:10 -08:00
Dermot Duffy
f4e905a7fb
fix: Improve review media filtering ( #2322 )
2026-01-24 16:22:12 -08:00
Dermot Duffy
fc32727860
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`.
2026-01-19 13:32:50 -08:00
phill
b7ac8532cd
fix: remote_control cannot be overridden ( #2297 )
...
### Problem
When configuration overrides are removed or changed for
`remote_control`, the automations previously registered by the card were
not updated, causing stale automations to remain active.
### Fix
Re-run the remote-control and automations loaders when the effective
configuration changes due to overrides so that automation
additions/removals reflect the current config.
#### What changed
- Modified: config-manager.ts
- Call `setKeyboardShortcutsFromConfig(this._api)`,
`setRemoteControlEntityFromConfig(this._api)` and
`setAutomationsFromConfig(this._api)` inside `_processOverrideConfig()`.
- Modified: `config-manager.test.ts`
- Added ConfigManager for test setup with real AutomationsManager and
ConditionStateManager
- Added test constants to centralize test data
- Expanded test coverage for override conditions:
- loaders should re-run when overrides change
- remote-control loader with overrides
#### Testing
- Full test suite run locally: 229 files, 2852 tests — all passing (with
TZ forced to 'UTC') ✅
2025-12-27 12:42:43 -08:00
Dermot Duffy
de42a1652f
feat: Add support for overriding card border radius ( #2298 )
...
- Closes #2287
[skip ci]
2025-12-20 17:00:04 -08:00
Dermot Duffy
d17ecd6c12
fix: Small (rare) bug in Frigate PTZ identification capability ( #2296 )
...
[skip ci]
2025-12-20 14:52:07 -08:00
Dermot Duffy
1e821f09c6
fix: Improve 2-way audio detection ( #2293 )
...
- For Frigate cameras, you must be running at least [integration
v5.12.0](https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v5.12.0 ).
- Closes : #2191
Includes a significant refactor of cameras, and the introduction of a
`2-way-audio` capability that is dynamically fetched from `go2rtc`. One
gotcha is if you previously had a substream with 2-way audio, you may
need to modify
```yaml
- camera_entity: camera.foo
capabilities:
disable_except:
- substream
```
... to ...
```yaml
- camera_entity: camera.foo
capabilities:
disable_except:
- substream
- 2-way-audio
```
2025-12-20 13:06:09 -08:00
Dermot Duffy
588ed6c98a
fix: Improve audio channel detection for WebRTC ( #2280 )
...
- Related: #2191
2025-12-11 05:48:43 -08:00
Dermot Duffy
f64690335b
test: Improve timezone resilience / cleanliness of tests ( #2279 )
...
- Related: https://github.com/dermotduffy/advanced-camera-card/pull/2278
- Reported by @0x464e
2025-12-11 05:33:48 -08:00
Dermot Duffy
639c5c3e4b
fix: Fix z-index rendering issue when card is expanded ( #2274 )
...
- Closes #2155
2025-12-09 23:45:07 -08:00
Dermot Duffy
252ead62dc
feat: Allow per-camera customization of grid width ( #2273 )
...
- Closes #2271
2025-12-09 22:18:56 -08:00
Dermot Duffy
c9c7e93e19
fix: Ignore URL actions for other card IDs ( #2272 )
...
- Closes #2190
2025-12-09 20:22:22 -08:00
Dermot Duffy
f8138c2377
fix: Race condition in remote control entity handling ( #2267 )
...
- Related #2244
2025-12-08 20:55:06 -08:00
Dermot Duffy
a241e02594
fix: Touch gestures should count as card interactions ( #2265 )
...
- Closes : #2245
2025-12-08 18:43:28 -08:00
Dermot Duffy
bbdf96474e
fix: Reolink Trackmix cameras should be detected correctly ( #2264 )
...
- Closes : #2254
2025-12-08 17:23:59 -08:00
Dermot Duffy
13bea49429
feat: Add option to disable mousewheel carousel scrolling ( #2263 )
...
- Closes : #2220
2025-12-08 17:19:56 -08:00
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 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
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
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
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
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
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