github Atlas-Commons/home-assistant-technitiumdns v3.0.1-Beta.1

pre-release3 hours ago

v3.0.1-Beta.1 — DHCP Reliability & Home Assistant Integration Improvements

Pre-release — Beta

This release focuses on improving DHCP device tracking reliability, resolving entity-related errors, modernising the Home Assistant configuration experience, and improving overall integration consistency.

Beta releases are intended for testing and may contain unresolved issues.

Compared to: [v3.0.0](https://github.com/Atlas-Commons/home-assistant-technitiumdns/releases/tag/v3.0.0)


Highlights

  • Improved DHCP device tracking — more robust handling of DHCP lease data, missing hostnames, and optional lease attributes.
  • Fixed hostname-related entity errors — normalised hostname values across device trackers and diagnostic sensors.
  • Cleaner Home Assistant entity naming — standardised server device information and adopted Home Assistant's native entity naming conventions.
  • Improved configuration interface — dedicated URL, password, boolean, and translated selection controls.
  • Reduced unnecessary logging — empty DHCP responses and unchanged device lists no longer produce misleading warnings or redundant sensor creation attempts.
  • Improved development infrastructure — dedicated GitHub and Forgejo CI workflows, automated validation, and updated contribution policies.

Bug Fixes

DHCP Device Tracking

  • Fixed potential exceptions when DHCP leases contain missing, null, or unexpected hostname values.
  • Introduced normalize_hostname() to ensure hostname values are consistently represented as strings.
  • Improved compatibility with typed DHCP lease objects returned by technitiumdns-api.
  • Improved access to optional lease attributes, including client identifiers, scopes, and lease timestamps.
  • Preserved ISO 8601 formatting for DHCP lease obtained and expiration timestamps.
  • Updated the ScannerEntity import to the current Home Assistant component location.
  • Improved device model detection by consistently normalising hostnames before matching device types.

Related: [#88](#88) | [PR #95](#95)

Diagnostic Sensors

  • Improved hostname handling throughout DHCP diagnostic sensors.
  • Prevented unexpected hostname types from causing errors during entity and device information generation.
  • Improved the hostname sensor's handling of missing or empty values.
  • Removed redundant sensor creation attempts when no new DHCP devices are discovered.
  • Added an early return when dynamic sensor creation receives an empty device list.

Logging and Error Handling

  • Changed empty DHCP lease warnings to informational messages.
  • Reduced unnecessary warnings when DHCP coordinator data is not yet available.
  • Improved debug messages for dynamic device discovery.
  • Added diagnostic warnings for unexpected hostname types.

Improvements

Home Assistant Entity Naming

  • Introduced a shared server_device_info() utility to standardise server device metadata.
  • Updated statistics sensors, ad-blocking switches, and control buttons to use consistent device associations.
  • Adopted _attr_has_entity_name for improved compatibility with Home Assistant's entity naming conventions.
  • Removed redundant manual server-name suffixes from affected entities.

These changes provide more consistent entity names and device organisation within Home Assistant.

Configuration Flow

  • Introduced native Home Assistant selectors for configuration fields.
  • Added URL validation-oriented input controls and an example Technitium API address.
  • Updated the API token field to use password-style input.
  • Improved descriptions and placeholders for server names, usernames, and API configuration.
  • Introduced translated statistics-duration options with consistent internal identifiers.
  • Updated English translations and configuration strings.

Documentation

  • Expanded the README with dedicated API-user configuration guidance.
  • Added a permissions reference covering Dashboard, Settings, DHCP, Logs, and Apps access.
  • Documented recommended least-privilege permissions instead of requiring administrator access.
  • Clarified the distinction between the server's display name and its API hostname.
  • Updated installation links and project references to Atlas Commons.
  • Expanded service documentation for DHCP lease retrieval and orphaned device cleanup.
  • Removed superseded implementation documentation.

Development and Infrastructure

Continuous Integration

  • Added separate GitHub Actions and Forgejo Actions validation workflows.
  • Added HACS and Home Assistant Hassfest validation.
  • Improved compatibility with Forgejo runners and Docker-in-Docker environments.
  • Added dependency-review checks.
  • Added required-check aggregation for pull requests.

Project Governance

  • Updated repository ownership and maintenance references under Atlas Commons.
  • Introduced Developer Certificate of Origin (DCO) contribution requirements and sign-off validation.
  • Added structured issue templates and updated pull request guidance.
  • Expanded branch-protection documentation.
  • Updated contribution, security, and community documentation.

Compatibility and Migration

  • Existing configuration entry schema remains at version 4.
  • The technitiumdns-api>=0.1.1 dependency requirement is unchanged.
  • Existing API credentials, cluster-mode settings, and DHCP tracking options retain their existing configuration structure.
  • Entity naming improvements may affect automatically generated entity IDs for newly created or recreated entities. Review any affected dashboard references, scripts, and automations.

Known Beta Issue

The new statistics-duration selector uses snake_case identifiers (last_hour, last_day, etc.), while the Technitium dashboard API documents PascalCase values (LastHour, LastDay, etc.).

Until these values are correctly mapped, initial configuration may fail. Existing configurations using the original values may continue to work.

Installation

  1. Update the integration through HACS, or manually replace the custom_components/technitiumdns directory.
  2. Restart Home Assistant.
  3. Verify your DNS statistics sensors and ad-blocking controls.
  4. If DHCP tracking is enabled, verify that tracked devices and their diagnostic sensors load correctly.
  5. Review entity IDs and dependent automations if any names have changed.

Beta testers: Please pay particular attention to fresh installation, DHCP tracking, device discovery, and entity naming.

Report any issues through the [GitHub issue tracker](https://github.com/Atlas-Commons/home-assistant-technitiumdns/issues).


Full Changelog

45 commits · 40 files changed

[Compare v3.0.0...main](v3.0.0...main)

Thank you to everyone who has contributed fixes, improvements, and feedback to the project.

Don't miss a new home-assistant-technitiumdns release

NewReleases is sending notifications on new releases.