Skip to content

Releases: privatecoder/neolink-ha-addon

0.7.20 — Concurrent stream startup + third-stream metadata (wraps neolink 0.7.18)

Choose a tag to compare

@privatecoder privatecoder released this 27 Jun 22:18

0.7.20

Wraps neolink 0.7.18. Fixes a dashboard where several camera cards all fail to load at the same time.

  • When a dashboard opened several camera streams at the exact same moment (e.g. multiple cards on one view), they could all get stuck with no video — each connected, then received nothing and timed out. The add-on now handles simultaneous stream starts concurrently, so they all come up. Opening cameras one at a time was never affected.
  • The third ("Balanced" / extern) stream now reports its correct resolution, frame rate and bitrate — including on camera units that don't advertise it in their config (the add-on reads it from the video itself, the way the official Reolink app does). It's the H.264 "Balanced" live quality, reachable at …/<camera-name>/externStream (set the camera's Stream option to Extern or All).

No add-on configuration changes are required.

0.7.19 — Accurate stream metadata (wraps neolink 0.7.17)

Choose a tag to compare

@privatecoder privatecoder released this 27 Jun 18:38

0.7.19

Wraps neolink 0.7.17. Makes each camera's reported frame rate, bitrate and resolution match its actual current settings.

  • The add-on used to read these from a camera "capability" list whose frame rate and bitrate are factory defaults that don't follow what you've actually configured — so a sub stream set to 15 fps could be cached as 10, and a main stream could report the wrong bitrate or resolution. It now reads the camera's current encoder settings directly, so the values are correct.
  • This is an internal accuracy fix: your live video always played at the true rate; only the reported/cached metadata was off. If a camera was cached with a wrong value by an earlier version, it corrects itself the first time you open that camera after updating.

No add-on configuration changes are required.

0.7.18 — Cold-start keyframe gate (wraps neolink 0.7.16)

Choose a tag to compare

@privatecoder privatecoder released this 25 Jun 22:13

Wraps neolink 0.7.16. Fixes the live-view reconnect loop that could appear after the add-on restarts.

  • After the add-on (re)starts, a camera takes a couple of seconds to connect (peer-to-peer). If you opened a card in that window, the add-on used to answer immediately with a "connecting" placeholder — but Home Assistant's player (go2rtc) gives up on a placeholder-only stream within a fraction of a second and then retries in a tight loop that doesn't recover on its own. That's why a stream sometimes "stopped working" until you restarted again. The add-on now briefly waits for the camera's first real frame before answering (up to 5 s by default), so the player gets real video straight away and the stream holds.
  • The first time you open each camera after a restart now shows a brief "connecting" (usually 2–3 s) instead of an instant placeholder — in exchange for the live view actually staying up. Every later open is instant as before.
  • New optional tuning: Startup keyframe wait (seconds) (startup_keyframe_wait_secs, default 5, set 0 to disable), global or per camera.
  • If your live view still flaps, also give go2rtc a single named stream to own (see the README) rather than a raw rtsp:// URL per card — that stops go2rtc's own retry storm.

No add-on configuration changes are required to keep today's behaviour.

See the neolink 0.7.16 release for the underlying technical details.

0.7.17 — Live-view reliability (wraps neolink 0.7.15)

Choose a tag to compare

@privatecoder privatecoder released this 25 Jun 09:24

Wraps neolink 0.7.15. Fixes Home Assistant live view dropping into a reconnect loop.

  • Some cameras' live view would connect and then immediately drop, retrying every few seconds and never showing video — most noticeable after a camera briefly fell behind or reconnected. While a camera was connecting, Neolink filled the gap with a placeholder frame whose video parameters didn't match the camera, so Home Assistant's player (go2rtc) rejected the real stream the moment it took over. Neolink now reuses the camera's own most recent frame for that placeholder, so the live picture takes over cleanly and the stream stays up.
  • Live view also recovers faster when a camera momentarily falls behind: the stream now catches up to the latest frames instead of staying stuck replaying a backlog.

No add-on configuration changes are required to keep today's behaviour.

See the neolink 0.7.15 release for the underlying technical details.

0.7.16 — Security & robustness (wraps neolink 0.7.14)

Choose a tag to compare

@privatecoder privatecoder released this 22 Jun 14:59

Wraps neolink 0.7.14. Security and robustness release.

  • Hardened against malformed camera/network data — a bad packet can no longer crash the add-on or cause runaway memory use.
  • Home Assistant fixes — command acknowledgements now use the correct MQTT topics; removing a camera now clears its Home Assistant entities (no more ghost entities) and re-adding a removed camera works again; the floodlight switch reflects its real state.
  • More reliable connections — a camera that failed to log in now recovers after you correct its settings and reload, without restarting the add-on; live-view client cleanup is prompter.
  • Smaller command-line tool fixes (snapshots, PTZ, ports) and an internal cleanup pass.

No add-on configuration changes are required to keep today's behaviour.

0.7.15 — Robustness & cleanup (wraps neolink 0.7.13)

Choose a tag to compare

@privatecoder privatecoder released this 22 Jun 09:32

Wraps neolink 0.7.13. Robustness fixes and internal cleanup.

  • More resilient camera discovery: a stray, unrelated network packet arriving during peer-to-peer connection setup no longer aborts the connection attempt.
  • Two-way audio (talk) and a few command paths now report a clear error instead of crashing the command on malformed input or an unusual camera response.

No add-on configuration changes are required to keep today's behaviour.

0.7.14 — Snapshot reliability (wraps neolink 0.7.12)

Choose a tag to compare

@privatecoder privatecoder released this 18 Jun 18:47

Wraps neolink 0.7.12. Hardens camera snapshot reliability.

  • Camera snapshots (the MQTT status/preview image behind the Home Assistant camera entity) are validated as complete images before being published: an incomplete capture is retried and the last good frame is kept rather than published.

No add-on configuration changes are required to keep today's behaviour.

0.7.13 — MQTT cleanup + snapshot checks (wraps neolink 0.7.11)

Choose a tag to compare

@privatecoder privatecoder released this 18 Jun 09:05

Wraps neolink 0.7.11. Removes a stale MQTT topic and adds snapshot completeness checking.

  • The unused status/notification MQTT topic — a leftover from the push-notification feature removed upstream — is cleared and no longer published. Nothing read it, so no configuration changes are required.
  • Camera snapshots gain a completeness check, so an incomplete capture is retried rather than published.

No add-on configuration changes are required to keep today's behaviour.

0.7.12 — Doorbell (wraps neolink 0.7.10)

Choose a tag to compare

@privatecoder privatecoder released this 17 Jun 09:40

Wraps neolink 0.7.10. Adds doorbell (visitor) button-press detection over MQTT.

  • Cameras with a doorbell can now report each press to Home Assistant. Enable the per-camera enable_doorbell option (off by default) and add doorbell to a camera's MQTT discovery features. Each press is published as a discrete event to neolink/{camera}/status/doorbell and exposed as a Home Assistant event entity (device_class doorbell). Doorbell presses are reported separately from motion, and cameras without a doorbell are unaffected.

No add-on configuration changes are required to keep today's behaviour.

0.7.11 — Steady Stream (wraps neolink 0.7.9)

Choose a tag to compare

@privatecoder privatecoder released this 17 Jun 08:53

Wraps neolink 0.7.9. Stability fix that prevents live views from dropping after hours of continuous operation.

A single slow or stalled viewer (e.g. a card that stopped keeping up with a high-bitrate camera) could block the camera's control channel, making the camera drop the session and forcing a reconnect cycle for every viewer. Neolink now keeps that control channel responsive regardless of how any one viewer behaves, and an audio buffer that fills up no longer tears down the whole stream.

No add-on configuration changes are required to keep today's behaviour.