github rroller/dahua 2.1.0-rc.1

pre-release2 hours ago

⚠️ BREAKING CHANGES — ACTION REQUIRED BEFORE UPGRADING

No new breaking changes compared with 2.0.0. The migration notices below apply when upgrading from 1.x.

Warning

Illuminator entities removed on affected channels: Channels that explicitly report a white emitter without a supported brightness bank no longer get an Illuminator light entity. Check automations and dashboards that reference it and remove or update affected references before upgrading.

Indoor monitors with no camera: Affected VTH monitors that do not describe a local camera and explicitly refuse the VideoInput table no longer get camera-related entities. Existing registry rows can remain unavailable. Review automations and dashboards that reference them.

Take a Home Assistant backup before upgrading. Existing HTTP indoor monitors now migrate their registry identities to their reported serial. Entity IDs are preserved; a registry conflict or backup failure causes setup to retry instead of building duplicate entities.

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.

  • Illuminator entities: A named white-light row without a MiddleLight, NearLight or FarLight brightness bank no longer creates an Illuminator entity. This removes controls whose writes target a nonexistent brightness field and are refused. Review affected automation/dashboard references.
  • VTH camera-related entities: A monitor with no Local0 camera declaration and an explicitly refused VideoInput table loses the nonworking camera-related entities, including motion controls. Retire affected dashboard and automation references. Session failures leave the capability undecided.
  • HTTP indoor monitors: This release migrates generated identities to the real serial. The log names a private directory containing copies of the three persisted registries. Keep your Home Assistant backup; resolve any logged identity conflict or backup failure before retrying setup.
  • 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.

First release candidate for 2.1.0. This starts a minor release series because it adds services and an option. Requires Home Assistant 2026.8.0 or newer. The latest stable release remains 2.0.0.

New in 2.1.0-rc.1

  • Keep H.265 when live view works: The playback repair now offers an explicit choice to keep H.265 and dismiss its warning. The choice is remembered per entry and can be reversed in the entry's options. The options toggle has an English label and explanation. (#1140)
  • Set Device Clock: Add dahua.set_time, defaulting to Home Assistant's current local time when no time is supplied. An aware supplied time is converted to Home Assistant's local timezone. This sets the whole device, including every channel of a recorder. The contributor measured the clock write and revert on a VTO2000A. (#1139)
  • Set NTP Server: Add dahua.set_ntp_server for devices reporting an NTP server field. It uses the reported flat/primary-list fields, preserves the secondary fallback, and checks every requested setting in the read-back, including enable flags, ports and a requested update period. Unsupported requested fields are rejected before writing. (#1139)

Important

NTP configuration has not been verified on hardware. Its table shapes were measured on a DHI-NVR5464-16P-EI and a VTO2000A; the write and read-back behavior was tested with simulated device responses. Some doorbells have no NTP server field and refuse that service; dahua.set_time is the available clock-setting path on those devices.

Included from the 2.0.1 RC series

  • Improve serial-migration conflict messages to identify both sides and distinguish duplicate legacy rows from an already-held destination. Existing collision checks, registry backups and refusal-before-mutation behavior remain active. (#1144)
  • Fix dahua.play_audio on devices that challenge the audio POST with HTTP 401. The push retries once with the fresh challenge, the complete clip and fresh per-attempt state under the same speaker lock. A second refusal is reported. The contributor reports owner verification on the affected Empiretech Color4M. (#1137)
  • Update the development Black dependency to 26.10.1. This tooling dependency is not part of the HACS integration ZIP. (#1142)

Validation

The combined merged code passed 5,504 tests, including all three real-ffmpeg conversion cases. All 354 Python files pass Black 26.10.1. Independent regressions verify the NTP settings are checked and the H.265 dismissal is persistent and reversible. The release HACS ZIP is verified against the tagged source and manifest version.

Hardware measurements in the linked PRs were supplied by contributors. The NTP write limitation is stated above.

2.0.0 release notes and upgrade instructions

Full changelog: 2.0.0...2.1.0-rc.1

Changes since the previous RC: 2.0.1-rc.2...2.1.0-rc.1

Don't miss a new dahua release

NewReleases is sending notifications on new releases.