Dermot Duffy
4b72fcd629
feat: Support HA event entities as triggers ( #2506 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
f1fad59a89
chore: Small fixes to clean docs link checker results ( #2505 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
f397596ed1
feat: Explicit answer/reject for inbound calls ( #2504 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
b9f09b7c4e
chore: Expand default Claude permissions slightly ( #2503 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
88fde79721
feat: Add easy access to card from JS console for user debugging ( #2502 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
f18e4cd4b8
refactor: Unify substream actions into substream_{on,off} ( #2497 )
...
## Summary
- Collapse `live_substream_{on,off,select}` into a unified
`substream_{on,off}` pair, symmetric with `call_{start,end}`.
- Rename the `camera` field on the former `live_substream_select` to
`stream` (it always was a stream ID).
- Add optional `camera` field to both new actions for targeting a
non-selected base camera.
- YAML configs are migrated automatically; URL bookmarks must be updated
by hand.
## Migration
### Cycling between camera and substream (toggle button)
Before:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: live_substream_on
```
After:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: substream_on
```
### Selecting a specific substream
Before:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: live_substream_select
camera: camera.front_door_hd
```
After:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: substream_on
stream: camera.front_door_hd
```
### Turning the substream off
Before:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: live_substream_off
```
After:
```yaml
tap_action:
action: custom:advanced-camera-card-action
advanced_camera_card_action: substream_off
```
### URL querystrings (manual update required)
| Before | After |
| --- | --- |
|
`?advanced-camera-card-action.live_substream_select=camera.front_door_hd`
| `?advanced-camera-card-action.substream_on=camera.front_door_hd` |
2026-06-30 17:45:13 -07:00
Dermot Duffy
15e335a647
feat: Add support for inbound "calls" from triggers ( #2500 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
f4c686c298
chore: Allow parallel rollup instances ( #2499 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
04059920bb
chore: Don't use rollup serving by default ( #2495 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
48761f0478
refactor: Use toggleAttribute natively where possible ( #2494 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
2acec49b29
refactor: Clone context when a view is cloned ( #2493 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
3f0d2ef14d
chore: Add worktree deployment support ( #2491 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
f21a46297a
fix: Improve visual styling for transmitting/triggering ( #2490 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
090138a01e
fix: Lock the grid when the UI is locked ( #2489 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
881ba51e9f
feat: Escape ends calls ( #2488 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
9b750953ae
fix: Lock thumbnails and timeline when UX is locked for calls ( #2487 )
2026-06-30 17:45:13 -07:00
Dermot Duffy
abcba884e5
feat: Add 'call' support to improve 2-way audio experience ( #2486 )
...
Draws significant inspiration (and direct styling) from
https://github.com/dermotduffy/advanced-camera-card/pull/2447 . Thank
you @Maudfer !
BREAKING CHANGE:
The microphone condition previously bundled two unrelated signals —
whether a two-way-audio session was connected and whether the microphone
was muted. Connection state is now its own dedicated call condition, and
microphone is reserved purely for mute state. Configs are upgraded
automatically (the card rewrites affected conditions under overrides,
elements, and automations). If you maintain config by hand, convert as
follows:
If you only used connected:
# Before
```yaml
condition: microphone
connected: true
```
# After
```yaml
condition: call
call: true
```
If you used both connected and muted — they must be split into two
conditions, since they no longer live together:
# Before
```yaml
condition: microphone
connected: true
muted: false
```
# After
```yaml
condition: and
conditions:
- condition: call
call: true
- condition: microphone
muted: false
```
2026-06-30 17:45:13 -07:00
Dermot Duffy
be7e7d79dc
feat: Add UI optional UI locking when microphone is hot ( #2484 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
9a763db1f3
fix: Avoid go2rtc renegotiation on camera selection change ( #2483 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
a68b665f03
feat: Add live.microphone.auto_mute / auto_unmute ( #2482 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
9eb503deff
feat: Add casting capability to user_agent condition ( #2480 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
261a7e1a92
feat: Auto-resolve Frigate client_id from camera entity ( #2475 )
...
Credit goes to @Eduardo-Jaramillo for the inspiration and contribution
of https://github.com/dermotduffy/advanced-camera-card/pull/2474 .
2026-06-30 17:45:12 -07:00
Dermot Duffy
9d088d7bcb
fix: Add support for synchronously reseting go2rtc sessions ( #2478 )
...
This is part 1 of
https://docs.google.com/document/d/1zbHYWqulEUaNLeX0fK3rfIiLugMlCQo_SFg3hcgiRRw/edit?tab=t.0
.
There is a significant chance this will improve issues people have been
experiencing with poorly designed doorbells that can only open a single
stream at a time.
2026-06-30 17:45:12 -07:00
Dermot Duffy
31d0c9322f
fix: Always respect the returned MIME type ( #2473 )
...
- Closes #2449
2026-06-30 17:45:12 -07:00
Dermot Duffy
591f466b92
fix: Render sub-labels for Frigate reviews ( #2468 )
...
- Closes : #2438
2026-06-30 17:45:12 -07:00
Dermot Duffy
056a038e81
fix: Improve folder icon rendering ( #2467 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
d8ad347dfa
fix: Preload should reliably preload initial load ( #2466 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
bc366626f1
refactor: Refactor media loading manager for improved robustness ( #2464 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
47bcce93d3
feat: Add hardened error handling and retries ( #2451 )
...
- Closes #1830
- Closes #2099
2026-06-30 17:45:12 -07:00
Dermot Duffy
4bc787e2b7
chore: Compress AI instructions ( #2434 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
eb72a97fb7
fix: Various tiny fixes/improvements ( #2433 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
31f13f40cf
fix: Remove unused localization keys ( #2432 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
a1202e8b8f
fix: Improve en strings ( #2431 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
e2cceb55c8
feat: Updated screensaver image mode fetches random images ( #2430 )
...
BREAKING CHANGE: The `screensaver` image mode now shows a random image
from [picsum.photos](picsum.photos) instead of the embedded default
image. If you previously set `image.mode: screensaver`, change it to
`image.mode: default` to restore the previous behavior.
2026-06-30 17:45:12 -07:00
Dermot Duffy
9535bb8aa0
fix: Don't detect audio from stale webrtc connection ( #2429 )
...
- Closes : #2417
2026-06-30 17:45:12 -07:00
Dermot Duffy
55732ead1d
fix: Don't allow gallery to scroll horizontally ( #2428 )
...
- Closes : #2424
2026-06-30 17:45:12 -07:00
Dermot Duffy
1cd5520154
feat: Add proxying support for images ( #2427 )
...
- Closes #2418
2026-06-30 17:45:12 -07:00
Dermot Duffy
9384785d37
test: Further improve test coverage ( #2422 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
050c2f7c1a
test: Add tests for localization ( #2421 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
62fe65556e
test: Expand testing to cover 100% of camera manager files ( #2420 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
abf1d8defe
test: Add full testing for the frigate engine ( #2419 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
415a3e0886
test: Improve test coverage of various camera engine files ( #2415 )
2026-06-30 17:45:12 -07:00
Dermot Duffy
16ca8d79d2
fix: Log problems to the console as warnings (once) ( #2414 )
2026-06-30 17:45:12 -07:00
Dermot Duffy and Yannik Lieblinger
3f5a35c7f6
fix: prevent infinite resize loop in media grid Masonry layout ( #2413 )
...
- Credit to @lieblinger.
---------
Co-authored-by: Yannik Lieblinger <yannik@lieblinger.de >
2026-06-30 17:44:49 -07:00
Dermot Duffy
ab683df5e8
feat: add problem detection framework for common problems ( #2412 )
...
Introduces a ProblemManager that detects and surfaces actionable issues
(stale config, legacy frigate-hass-card resources, slow/failed streams)
via status bar indicators and notification popups with fix actions.
2026-03-13 20:00:59 -07:00
Dermot Duffy
95faddd9a0
fix: Add support for Reolink number based zooming ( #2408 )
...
- Closes #2034
2026-03-13 19:55:27 -07:00
Dermot Duffy
ebe6b2f8c6
fix: Status actions should not be clickable when status bar is hidden ( #2406 )
2026-03-08 21:00:54 -07:00
Dermot Duffy
ae90b1ec1f
chore: Merge main changes into dev (no-op) ( #2405 )
2026-03-08 20:47:06 -07:00
Dermot Duffy
ae8b1134c9
fix: Don't show presets menu when there's a single preset ( #2404 )
...
- Closes : #2398
2026-03-08 12:55:01 -07:00
Dermot Duffy
6c46e36a87
docs: Improve doc interlinking ( #2402 )
2026-03-07 21:35:27 -08:00
Dermot Duffy
24c6b98948
feat: Allow user generated notifications ( #2401 )
2026-03-07 20:47:24 -08:00
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
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
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
Dermot Duffy
de42a1652f
feat: Add support for overriding card border radius ( #2298 )
...
- Closes #2287
[skip ci]
2025-12-20 17:00:04 -08:00