github rroller/dahua 3.0.0-rc.3

latest release: 3.0.0-rc.4
pre-release4 hours ago

⚠️ BREAKING CHANGES — ACTION REQUIRED BEFORE UPGRADING

Warning

NEW: dahua.set_text_overlay and dahua.get_overlay_text now default to group: 1 instead of group: 0. Before upgrading, update scripts and automations that omit group but rely on group 0: add group: 0 explicitly to preserve their target. The new Custom Title Overlay switch controls group 1.

Infrared entities are removed from indoor monitors that explicitly report no local camera. Affected devices no longer create the Infrared light or Infrared Mode select. Before upgrading, review automations and dashboards that reference those entities and remove or retarget the references. Existing registry entries may remain unavailable.

This is a major-version release candidate because service defaults change and existing entities disappear. Take a Home Assistant backup before upgrading. The exclusion requires a reported VTH device class and an explicit no-camera answer; monitors with a camera or an unknown camera answer retain their previous infrared behavior.

Inherited camera identity migration: Cameras whose normal identity call fails but whose alternate CGI reports a serial adopt that serial. Migration preserves entity IDs. Unresolved collisions stop setup and require a repair or manual guidance. Once a serial is adopted, a temporarily unavailable serial read causes setup to retry rather than rebuilding entities under a generated identity. Keep a Home Assistant backup and review any proposed registry removals before confirming a repair.

Upgrading from 1.x? These earlier breaking changes also apply:

  • Illuminator entities: Channels explicitly reporting a white emitter without a supported MiddleLight, NearLight or FarLight brightness bank no longer get an Illuminator light. Update affected automation and dashboard references.
  • Camera-less indoor monitors: Affected VTH monitors lose camera-related entities for a local camera they do not have. Retire references to unavailable camera and motion controls.
  • HTTP indoor-monitor identities: Generated identities migrate to reported serials while preserving entity IDs. An unresolved conflict stops setup; a backup failure retries without mutating the registries. Keep your Home Assistant backup and resolve logged conflicts before retrying.
  • Recorder alarm inputs: Replace references to old per-camera Alarm Local sensors with the corresponding physical recorder terminal sensors.
  • Recorder relay outputs: Replace references to duplicate per-channel relay switches with the recorder’s relay switches.

Release candidate for 3.0.0. Requires Home Assistant 2026.8.0 or newer. The latest stable release remains 2.1.0.

New in 3.0.0-rc.3

  • Microphone volume, speaker volume and noise filter controls: Independent capability checks expose the reported audio settings as two 0–100% sliders and a configuration switch. Writes target the verified row and only the selected setting. The volume fields and noise-filter enable field are written without the readback-only table. prefix; the noise-filter level and Encode settings are preserved. Spanish labels survive normal JSON loading, and all shipped translation files are checked for duplicate keys. (#1174)
  • More picture controls: Add chroma suppression, wide dynamic range and exposure mode. WDR requires both reported mode and level fields; Off writes level 0, and On or Mode 2 keeps a usable level or uses 50. Mode 2 is labelled literally because its vendor name is unconfirmed. Manual exposure is not offered. HTTP 400/403/500 reads preserve held picture-option state; a successful empty response remains distinct. (#1175)
  • Overlay visibility switches: Add timestamp, channel-title and custom-title visibility controls, gated on the fields reported by each channel. The custom-title switch controls group 1. The two text services' changed default group is a breaking change; see the notice above. (#1175)
  • Spanish localization: Expand Spanish coverage for setup, options, entities, exceptions, repairs and channel subentries. (#1173)
  • Grouped picture-control names: English image controls share an Image prefix for easier scanning in the entity list. (#1172)

Hardware coverage: Contributors supplied standalone Dahua audio-control measurements and picture/overlay write-and-restore measurements on Intelbras iME-360-C and VIP-1220 cameras. The new audio controls' NVR table ownership and the picture controls on Dahua-branded hardware have not been physically validated in this work. The fixes were verified with simulated responses and the integration's real client/coordinator readers; no physical-device testing was performed for these fixes.

Included from 3.0.0-rc.2

  • Bootstrap NTP settings on devices that hold no server yet: A nonempty NTP table without a server field now receives Enable, Address, Port and UpdatePeriod together. The initial poll interval defaults to ten minutes unless supplied. Timezone settings are preserved, existing-server behavior and fallback lists remain unchanged, and every requested setting is checked on read-back. Empty tables and refused or ignored writes still report failure. (#1170)
  • Find doorbell image controls in VideoInOptions: Mirror and Image Rotation can use the reported Flip, Mirror and Rotate90 fields from the alternate table. VideoImageControl remains the first choice, preserving existing camera routing. The chosen table and channel are used for polling, state, writes and failure recovery. Rotation still offers only 0° and 180°, never writes Rotate90, and refuses unsupported or unknown Rotate90 states. (#1171)

Important

Hardware coverage: The contributor measured Mirror/Flip writes and their reverts on a VTO2000A running 3.120.0000.0.R: the picture changed, the other table fields stayed unchanged, and the original picture/settings were restored. This is evidence for that device and firmware.

NTP limitation: The same device’s own web UI was measured storing NTP settings. The integration’s exact four-field bootstrap bundle was checked with simulated device responses and real cache invalidation; it has not been verified on physical hardware. Storing the settings is not proof that the device synchronizes its clock.

Included from 3.0.0-rc.1

  • Apply the existing no-camera answer to infrared support: Indoor monitors reporting VTH and an explicit own-video false answer no longer create the Infrared light or Infrared Mode select. Placing the rule in the shared capability check also stops the recurring infrared Lighting read on those monitors. Cameras, doorbells, monitors reporting a camera, and monitors with an unknown camera answer retain the previous capability behavior. (#1168)
  • Repository documentation: Include the directory-map corrections from 2.1.1-rc.1: 38 integration modules, about 35,000 lines, 32 services and the missing audio.py/late.py descriptions. AGENTS.md is not part of the HACS integration ZIP. (#1167)

The #1168 contributor supplied diagnostics from two VTH5221D monitors reporting a Lighting table containing only Mode=Off, without a brightness bank. This release uses the device’s existing explicit no-camera answer; absence of a dimmer alone does not decide infrared support. Hardware measurements were supplied by the contributor.

Validation

The combined integration passed 5,930 tests, including all three real-ffmpeg conversion cases. All 363 Python files pass Black 26.10.0. Before the fixes, regression checks reproduced four incorrectly prefixed audio writes, three lost Spanish labels, duplicate JSON keys, and loss of held picture-option values on HTTP 400/403/500. The corrected focused checks pass, including the successful-empty-response control. The merged source tree is verified against the tested combined tree.

Release CI validates HACS, Hassfest, formatting, the full test suite, tag/manifest agreement, ZIP layout and HACS visibility. The downloadable ZIP is verified byte for byte against the tagged integration files.

This release inherits the remaining hardware and channel-search limitations described in the 2.1.0 release notes, including unverified targeted Gamma/Style writes, autofocus response-body/recorder behavior, and the channel-search progress race. NTP hardware limits are stated above.

Full changelog: 2.1.0...3.0.0-rc.3

Changes since the previous RC: 3.0.0-rc.2...3.0.0-rc.3

Don't miss a new dahua release

NewReleases is sending notifications on new releases.