github rroller/dahua 2.0.0-rc.2

latest release: 2.0.0-rc.3
pre-release8 hours ago

⚠️ BREAKING CHANGES — ACTION REQUIRED BEFORE UPGRADING

Warning

Affected recorder automations and dashboards need updating. This release removes the old per-camera Alarm Local sensors on recorders with the new terminal sensors and consolidates duplicate per-channel relay switches on the recorder.

  • Alarm inputs: Retarget automations and dashboards from the old per-camera Alarm Local sensors to the corresponding recorder terminal sensors. The old sensors become unavailable; their registry entries remain for reference.
  • Relay outputs: Update automations and dashboards that used duplicate per-channel relay switches to use the recorder's relay switches.

Second release candidate for 2.0.0.

Since 2.0.0-rc.1

  • Add indoor monitors without an HTTP server through the normal add flow using local DHIP on TCP port 5000. Tested by the contributor on a VTH5221D. New DHIP entries use the monitor's real serial; existing HTTP entries retain their identities. Shared sockets close on unload, session expiry reconnects, and failed logins use Home Assistant's reauthentication handling. Actions are not automatically replayed after a lost reply. (#1103)
  • Recover siren and white-light status through RPC2 when a channel refuses the CGI read. A transient failure or cancelled poll can recover later; an explicit method refusal is not retried every poll. This changes status reads only. (#1101)
  • Include listener counts for each event/channel key in diagnostics, making accumulation visible. events.listener_keys is now a mapping of keys to counts rather than a list; multiple listeners can be normal. (#1102)

Other changes since 1.3.1

  • Play media, TTS results, or allowed audio files through a device's speaker with dahua.play_audio. The offered formats use 8 kHz audio, with G.711 A-law as the default and little-endian PCM available. Conversion requires Home Assistant's ffmpeg integration. (#1086)
  • Choose the illumination mode on supported dual-light cameras. The selector reads the channel's scene state, verifies every scene after a write, and respects an active Illuminator override. (#1091)
  • Give recorder alarm-input terminals their own sensors and relay outputs their own switches on the recorder's device. Read physical state as a bitmask; preserve input state or report relay state as unknown when a response cannot be read. (#1093, #1096, #1097)
  • Suggest the existing motion-polling option when the device reports active motion but the stream has never delivered VideoMotion. Checks are bounded, the option remains user-controlled, and the repair clears when it is resolved or the device is removed. (#1095)
  • Clarify which overlay the text-overlay service writes and the model-dependent "Location title" label. (#1092)

Validation

The combined local suite passed 5,034 tests, with three real-ffmpeg conversion cases skipped locally and covered by GitHub CI with ffmpeg installed. Formatting passed for all 336 Python files. Regression tests reproduced the transport lifecycle, authentication, uncertain-action retry, and fallback-recovery defects before the fixes. The release ZIP is verified against the tagged source and manifest version.

Hardware evidence for audio formats comes from owner-listened VTO2000A speaker tests. Broader device and full Home Assistant service validation remain part of RC testing.

Full changelog: 1.3.1...2.0.0-rc.2

Changes since the previous RC: 2.0.0-rc.1...2.0.0-rc.2

Don't miss a new dahua release

NewReleases is sending notifications on new releases.