v0.14.0 — auto everything, instant live start
Milestone release rolling up the whole 0.13.x line. Update + full HA restart recommended.
✨ Highlights
- Everything auto by default — Stream mode
autoprobes the video codec at startup and picks WebRTC for H.264 (audio + low latency) or MJPEG for HEVC (codec-agnostic, no go2rtc). No more needing to know your doorbell's codec (#35, #36, #37, #39). - Instant live start (GOP cache) — the relay replays the stream since the last keyframe to every new viewer, eliminating the 20-30 s blank wait on doorbells with long keyframe intervals (#37).
- HPD7 label light works — read and write, via the IoT
LightCtrl/NightLightEnableproperty (confirmed on real hardware) (#24, #34). - New read-only feature sensors (when the device reports them): microphone volume, mute, loitering, stranger detection, human detection (#34).
- Live stream attributes — the camera exposes the active
stream_source,stream_modeandvideo_codec, ready for an on-screen badge via picture-elements.
🛠 Fixes
- MJPEG on HEVC: ffmpeg couldn't determine codec parameters and delivered 0 bytes (
+nobufferpinned the probe window to 0) (#39, HPD7 confirmed fixed). - Switches no longer bounce back after toggling — optimistic state with a 20 s grace window over the cloud's stale reading (#40).
- Entities no longer blank to "unknown" on transient EZVIZ cloud errors — 1 min grace window keeping last-good values + automatic re-login when a session expires (#36).
- Paired-monitor setups:
'NoneType' object has no attribute 'get'on composite serials (monitor reportsWIFI: null) (#37, and others). - Relay watchdog: sessions whose ffmpeg produces no output now abort instead of leaking broadcast subscribers and ffmpeg processes (#41).
- Config-entry reload no longer breaks entities (
async_config_entry_first_refreshstate error) (#38). - CAS TLS: safer expired-certificate handling (adopted from upstream pyEzvizApi).
- DTS wrap on the LAN path (33-bit MPEG-TS clock) — wall-clock timestamps (#37).
🔧 New options
- Relay listen host (
relay_bind, default127.0.0.1) — set0.0.0.0+ a fixed port to let an external host (e.g. Frigate on another box) ingest the relay directly.⚠️ unauthenticated raw stream: trusted LANs only (#41). - Debug diagnostic: with debug logging on, the relay dumps the first 64 KB of video ES to
<config>/ezviz_hp7_es_dump_<serial>.binfor bitstream analysis (#41 HPD5 investigation).