Commit Graph
2478 Commits
Author SHA1 Message Date
Dermot Duffy 1d81e03b04 fix: Should faithfully use WebRTC card PTZ format data_* (#2396)
- Closes: #2385


BREAKING CHANGE: Requires configuration change (automatic upgrade
offered) to move from (e.g.) `data_left_stop` to `data_end_left`
2026-03-07 10:00:39 -08:00
Miguel Angel Nublaanddermotduffy a81d72375d fix(connection): re-initialize camera managers and event subscriptions on reconnect (#2389)
This PR fixes an issue where, after running the card for a few hours,
new events (such as thumbnails and triggers) would stop showing up.

This bug was caused by the Home Assistant connection dropping and
reconnecting in the background. Event subscriptions (such as Frigate
WebSocket events established via `hass.connection.subscribeMessage`) are
bound to the connection they were created on. When the connection drops,
those subscriptions are lost, and until now, they were not being
automatically recreated when the connection was restored.

This PR ensures that when a restored connection is detected, the card
properly re-initializes the camera and view components to re-establish
these background subscriptions.

1. HA Connection Reconnect Handling (`HASSManager`)
- Added logic to detect when the Home Assistant connection transitions
from disconnected back to connected.
- When restored, the card uninitializes the `CAMERAS`, `VIEW`, and
`INITIAL_TRIGGER` initialization aspects.
- This forces the system to recreate the camera managers and
re-subscribe to the relevant WebSocket event feeds in the next render
cycle, fixing the broken thumbnail/trigger feeds.

2. Centralized Camera Teardown (`InitializationManager`)
- Improved the teardown logic by moving the
`this._api.getCameraManager().destroy()` call directly into
`InitializationManager.uninitialize` when the `CAMERAS` aspect is
targeted.
- Removed duplicate `destroy()` calls scattered across `ConfigManager`
and `CardElementManager`.
- This ensures that whenever cameras are forced to re-initialize (such
as during a reconnection event), the old manager is safely destroyed in
a centralized, predictable way without memory leaks.

3. Testing
- Added tests in `hass-manager.test.ts` to verify the uninitialization
logic fires during a reconnection event.
- Updated `initialization-manager.test.ts` to verify that
`CameraManager.destroy()` is automatically called when uninitializing
cameras.

---------

Co-authored-by: dermotduffy <dermot.duffy@gmail.com>
2026-03-06 20:35:15 -08:00
Dermot Duffy 8223cae501 fix: Button style issue introduced by HA 2026.3 (#2392) (#2394)
- Closes: #2390
2026-03-06 07:39:32 -08:00
Dermot Duffy d5b40254b4 chore: Minor formatting and AI instructions update (#2393) 2026-03-06 07:28:37 -08:00
Dermot Duffy c398562d40 feat: Add PIP (Picture-in-Picture) support (#2391)
- Closes: #1657
2026-03-05 20:19:20 -08:00
Dermot Duffy ecc8ecfd7e fix: Change the not condition to exactly match the HA not condition (#2387)
BREAKING CHANGE: Changes the behavior of the `not` condition when there
is more than one condition present. Users who desire the previous
behavior should wrap their conditions in an `and` first.

 - Closes: #2383
2026-03-01 20:39:03 -08:00
Dermot Duffy 526acf7688 docs: Various small documentation improvements (#2386) 2026-03-01 20:23:59 -08:00
Dermot Duffy db0a747729 docs: Various minor doc improvements (#2384) 2026-03-01 14:49:01 -08:00
Dermot Duffy 37004f91fa chore: Improve AI instructions (#2381) 2026-02-28 21:16:12 -08:00
Dermot Duffy 9ac7fa3383 docs: Improve clarity of labels and zones parameters (#2380) 2026-02-28 20:55:28 -08:00
Dermot Duffy 5dc5e45631 chore: Update vscode task to kill previous instance (#2379) 2026-02-28 20:45:28 -08:00
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 753cf02d90 docs: Add special case warning for fullscreen condition (#2373) 2026-02-23 18:59:41 -08:00
Dermot Duffy d5e1e02328 fix: Add editor support for go2rtc metadata fetch timeout (#2372) 2026-02-22 19:39:55 -08:00
Dermot Duffy dd25e191ce fix: Propagate review filtered status (#2370) 2026-02-22 15:50:20 -08:00
Dermot Duffy 191b5a289a chore: Create initial Claude permissions (#2369) 2026-02-22 15:13:59 -08:00
Dermot Duffy 497e6e88a0 perf: Variety of small type and performance fixes (#2367) 2026-02-22 15:02:14 -08:00
dermotduffy 0f8c758d38 chore: Add AI instructions. 2026-02-21 20:39:15 -08:00
Dermot Duffy 87a85ce8d9 fix: Add missing capabilities to editor (#2366) 2026-02-21 19:58:15 -08:00
Dermot Duffy 5e867a8334 docs: Include reviews in examples update (#2365) 2026-02-21 16:26:02 -08:00
dermotduffy 615209fbde Merge branch 'main' into dev 2026-02-21 11:28:58 -08:00
Stefan KempingerandDermot Duffy 3eca6b790a docs: Clarify recorded clips button visibility in the Responding to fullscreen example (#2325)
Added capability "clips" to get button visibility for recorded clips
when using the `Responding to fullscreen` example.


This example is almost exactly my use case, but i spent quite some time
to find out exactly why the example killed my ability to watch recorded
clips.

---------

Co-authored-by: Dermot Duffy <dermot.duffy@gmail.com>
2026-02-21 11:25:03 -08:00
Dermot Duffy 504b027854 fix: Fix off-by-one thumbnail for folder media (#2364)
- Closes:
https://github.com/dermotduffy/advanced-camera-card/issues/2326
2026-02-21 11:17:07 -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 6d5a76ac0a feat: Add documentation links from editor (#2362) 2026-02-20 10:07:38 -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
dermotduffy f34c7e8ee1 Merge branch 'main' into dev 2026-02-16 15:01:17 -08:00
Dermot Duffy d90b062719 chore: Add support for next release branch (#2354) 2026-02-16 15:00:49 -08:00
Dermot Duffy 3ecd7eba3b chore: Add support for next release branch (#2354) 2026-02-16 14:58:19 -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
Dermot Duffy c297bf801a test: Clarify testing configuration (#2347) 2026-02-14 14:55:17 -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 0b7917ef70 fix: Increase go2rtc metadata fetch timeout (#2336)
- Related: #2313
2026-02-08 08:39:15 -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 045d15d5ce feat: Escape should dismiss overlay messages (#2324) 2026-01-24 21:39:21 -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