v0.9.6
This release is a major battery-camera update, plus much faster live view and a large idle-CPU cut. Full details for every item: CHANGELOG.md.
Battery cameras (beta)
- UDP-only models supported (much of the Argus line never listens on TCP):
uid+"udp": true, host networking required in Docker. Selective-repeat acks and a saturation self-diagnosis included. - Sleep-friendly by default: tiles are click-to-watch with a view budget, the camera is released ~10 s after the last viewer, and
"always_on": trueopts a powered camera out of all of it — it behaves exactly like a wired one. - Wake-capture rebuilt: self-wakes are detected by listening to ping patterns (no packet a sleeping camera would react to), recording starts from the first keyframe, the scan is self-skeptical against false wakes, and background polling goes radio-silent while the camera sleeps.
- New: router wake hints — point an OPNsense/pfSense firewall log at Neolink (
"wake_hints": { "syslog_port": 5140 }) and the camera's own call to Reolink's push service becomes an instant, event-grade wake signal. Requires push notifications enabled on the camera;POST /api/cameras/{name}/wake-hintaccepts hints from anything else (e.g. Home Assistant). - Events actually stick: PIR detections now store as Motion events (they were silently discarded), wake sessions wait out the camera's late detection push, and wake footage tapes passively to the Timeline at zero battery cost. 24/7 recording is enforced off while a camera is allowed to sleep.
- Each wake costs far less charge, and a keep-awake slider (0-24 h) covers the times you want the camera responsive regardless.
Setup guide: docs/battery-cameras.md
Live view and UI
- Live view starts near-instantly — a server-side keyframe buffer hands new viewers decodable video in milliseconds (measured 7-20 ms) instead of waiting seconds for the camera's next keyframe.
- "Stats for nerds": right-click a camera view for a live technical readout that tells device trouble apart from network trouble, with a copy button for bug reports.
- One-click resume for suspended cameras, browser alerts for system events and camera-offline, Wi-Fi signal and wired-link icons, and a camera-settings panel that no longer reshuffles while it loads.
- Fixes: stale snapshots are age-bounded and dissolve into live video, fast zoom clicks no longer reset the view, offline cameras say so on the tile, sidebar badges no longer squeeze out the camera name, and two browser windows can no longer disagree about a camera's state.
Performance
- Idle CPU cut ~5x (measured 0.85% → 0.17% of a core) and the periodic spikes reported against 0.9.5 are gone; MQTT re-publishes are deduplicated and per-tick camera polls now run once a minute.
Battery camera support is beta and under active development — if yours misbehaves, open an issue with the [wake-diag] log lines.
If Neolink.NET saves you or your business time, sponsorship funds the hours and the test hardware that keep it moving: Sponsor Neolink.NET.