v1.0.1
A fast follow-up to 1.0.0, fixing its headline feature on the camera models that refused the new writes.
Fixed
- Detection-zone saves and motion-sensitivity writes rejected on some models. Neolink writes the camera's motion config back whole to preserve schedules and sensitivity tables, and some firmwares refuse their own config re-ingested - "param error" on the Video Doorbell line, "err get data from json" on others - while models like the RLC-810WA accept it. Writes now step down a ladder the camera chooses: the full object, then the app-style partial object (channel plus only the changed section), then the legacy Alarm dialect. The accepted rung is remembered per camera, every step down is a log line, and a camera that exhausts the ladder logs what each dialect answered so it can be reported and fixed precisely.
New in 1.0.0, in case you missed it
1.0.0 shipped the same day - coming from 0.9.x, this update also brings:
- Detection-zone editor. Edit a camera's detection zone from the camera dialog: the camera's own cell grid painted over its latest snapshot, rectangle drags with an explicit Block/Watch toggle, per-type tabs on cameras that keep separate AI zones, and doorbell support. Also scriptable via
GET/POST /api/cameras/{name}/detectionzone. - Sign-in protection (opt-in). Account lockouts and intrusion blocking for the web sign-in, with an address-blocked log line fail2ban can watch.
- Recording from server settings, preserving the camera's recording configuration when switched off.
- Sturdier sessions. A dropped browser connection no longer tears the page down mid-edit; Enter signs in; Esc closes the event dialog.
- A security-review sweep. A crafted camera link can no longer run script in the web UI; an unreadable
users.jsonrefuses sign-ins instead of turning authentication off; the server log cannot be forged through camera or sign-in text; UDP battery-camera sessions only accept their own camera's packets; the desktop app only handshttp/httpslinks to the system browser; and more. - Cheaper recording and playback, codec fallback for browsers without H.265 hardware decoding, and tiles that are borrowed - not stolen - when you visit a camera off the wall.
Full detail in CHANGELOG.md.