Release Notes
v4.6.0
Required actions
- Node.js 20, 22, or 24 required (unchanged from 4.5.x)
- No config changes required -- all new features use sensible defaults
HomeKit Secure Video (HKSV) -- Major reliability overhaul
HKSV recordings should now work consistently across restarts and on a wider range of cameras.
- Recordings no longer silently disappear after a plugin restart -- a bug was clearing HKSV state on every boot, requiring users to re-enable recording in the Home app
- Motion-triggered P2P pre-warming connects to the camera before HomeKit requests the recording, eliminating cold-start timeouts
- 4-second video prebuffer on wired P2P cameras -- HKSV timeline clips now include footage from before the motion trigger
- Proper end-of-stream signaling so HomeKit no longer silently discards completed recordings
- Cameras that don't deliver audio (e.g. SoloCam E42) now fall back to video-only recording instead of hanging
- FFmpeg errors during recording close no longer crash the child bridge
Audio
- Per-camera audio toggle -- new setting in the plugin UI to disable audio on individual cameras (useful for cameras with poor audio or for privacy)
- Fixed AAC decoding on cameras that send non-standard ADTS frames with multiple raw data blocks (e.g. SoloCam E42)
- Rewritten two-way audio with dynamic SDP and proper lifecycle management
Livestream stability
- Hardware H.264 encoder auto-detection (e.g. on Raspberry Pi)
- P2P connection retry with exponential backoff on transient failures
- H.264 profile and level from HomeKit are now passed through to the encoder
- RTCP grace period for dead-stream detection to avoid false positives on slow starts
- Snapshots and livestreams share a P2P session, preventing one from terminating the other
New device support (prep)
Device images and UI mappings added; full functionality pending upstream eufy-security-client support:
- NVR S4 Max (T8N00, type 300)
- PoE Bullet-PTZ Cam S4 (T8E00, type 301)
- Battery Doorbell 2K -- added missing device image
Diagnostics
- Debug recording capture -- when debug livestream is enabled, the plugin saves raw P2P and processed recordings downloadable from the Diagnostics UI, tagged by trigger type (HKSV vs manual livestream)
- Fixed diagnostics archive corruption when logs were being written during export