Commit Graph
37 Commits
Author SHA1 Message Date
Dermot Duffy 448fa2d9f1 feat: Surface the provider's error cause in the media_unavailable notification (#2599)
- Closes: #2592
2026-07-22 20:45:49 -07:00
Dermot Duffy c02c692f68 feat: Add experimental rewrite of go2rtc live provider (MSE/WebRTC/MP4/MJPEG) (#2580)
- Closes #2556
- Closes #2450

**Key intended features:**
 - go2rtc compatible
- 100% test coverage to significantly improve ability to test, maintain
and work around browser weirdnesses (e.g. Safari).
 - Written from the ground up in the style of the rest of the project.

**To use:**
 - Change `live_provider` from `go2rtc` to `go2rtc-experimental`.
2026-07-14 14:22:41 -07:00
Dermot Duffy fb1bbc739e feat: Automatically recover from frozen live streams (#2569)
- Closes: #2099
2026-07-07 21:37:24 -07:00
Dermot Duffy 3494706225 fix: Use auto_unmute as input to stream selection for HA (#2562)
- Closes #2479
2026-07-03 08:19:11 -07:00
Dermot Duffy 937ba647a7 fix: Fix audio for cameras with mixed WebRTC/HLS capabilities (#2557)
- Closes #2479
2026-06-30 17:45:13 -07:00
Dermot Duffy 7dc29865b8 chore: Enforce consistent type imports via @typescript-eslint/consistent-type-imports (#2545) 2026-06-30 17:45:13 -07:00
Dermot Duffy a96dc2e863 chore: Enforce import order via @ianvs/prettier-plugin-sort-imports (#2542) 2026-06-30 17:45:13 -07:00
Dermot Duffy 95f35bd326 refactor: Accept unknown in errorToConsole to drop as Error casts (#2541) 2026-06-30 17:45:13 -07:00
Dermot Duffy 921d45e577 chore: Enforce a few house rules via eslint (#2539) 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 9a763db1f3 fix: Avoid go2rtc renegotiation on camera selection change (#2483) 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 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 1cd5520154 feat: Add proxying support for images (#2427)
- Closes #2418
2026-06-30 17:45:12 -07:00
Dermot Duffy 497e6e88a0 perf: Variety of small type and performance fixes (#2367) 2026-02-22 15:02:14 -08:00
Dermot Duffy 0a67df9a25 refactor: Convert protected methods to private (#2358) 2026-02-19 20:47:59 -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 e2500a853e fix: Prefer H265 when browser supported (#2200)
- Closes #2192
2025-10-06 21:25:50 -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 c6a4c8aea2 feat: Implement basic general folder support (#2051)
- Related: #1748
2025-05-21 19:59:21 -07:00
Dermot Duffy 54ee1e1cf3 fix: Improve reliability of connection cleanup (#2009)
- Closes #1992
2025-04-14 16:58:17 +01:00
Dermot Duffy d6225fefda refactor: Break apart monolithic configuration schema (#1977)
[skip ci]
2025-03-22 15:06:11 -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 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 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 3e8e688b36 feat: Add basic fullscreen support for iPhone (#1857)
- Closes #1444
2025-01-27 07:23:07 -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 faa5ec3eec refactor: Refactor internal error / info message components (#1842) 2025-01-20 15:26:53 -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 dab9ff3045 fix: Substantially reduce cases where errors block whole card (#1764) 2024-12-15 20:39:18 -08:00
Dermot Duffy 67f03fb370 fix: Fix builtin controls showing up when they should not (#1759) 2024-12-14 16:53:58 -08:00
Dermot Duffy e898b73d63 fix: Always start webrtc-card muted (#1682) 2024-11-09 16:40:25 -08:00
Dermot Duffy f473cae6b5 refactor: Split live.ts into multiple files (#1644) 2024-10-13 20:00:38 -07:00