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

pre-release6 hours ago

Release Notes — 3.0.0-Beta.1

Disclaimer: These release notes were AI-generated.

Compared to: v2.4.4

This is a major beta release. The biggest change is replacing the bundled api.py client with the published technitiumdns-api package, plus several user-facing improvements from open GitHub issues.


Highlights

  • PyPI API client — all Technitium API calls now go through technitiumdns-api (installed automatically by Home Assistant)
  • Cluster statistics — optional cluster mode at setup for aggregate stats across a Technitium cluster (#76)
  • Smarter ad blocking switch — switch state now reflects temporary disable buttons and auto-recovers when the timer expires (#66)
  • Configurable stats refresh rate — choose how often DNS statistics sensors poll (30s–5min), separate from the stats time window (#74)

New Features

Technitium API via PyPI (technitiumdns-api)

  • Removed the 680+ line embedded api.py
  • Added client.py (HA session–aware AsyncClient factory) and dns_logs.py (device-tracking log helpers)
  • Uses typed API models for dashboard stats, settings, DHCP leases, update checks, and DNS app query logs
  • Shares Home Assistant’s pooled aiohttp session (no duplicate HTTP clients)

Cluster Mode (Issue #76)

  • New Use cluster aggregate statistics checkbox during integration setup
  • When enabled, all API calls pass node=cluster for cluster-wide dashboard statistics
  • Defaults to off for single-node installs

Statistics Update Interval (Issue #74)

  • New option under Configure → Statistics Update Interval: 30, 60, 120, or 300 seconds (default: 60)
  • Clarifies the difference between:
    • Statistics duration (setup) — the stats window (LastHour, LastDay, etc.)
    • Statistics update interval (options) — how often sensors refresh
  • Update-available check remains hourly (unchanged from 2.4.x)

Ad Blocking Switch Improvements (Issue #66)

  • Switch now shows the effective blocking state, not just enableBlocking on first load
  • Shows off while a temporary disable timer is active (5 min / 10 min / etc. buttons)
  • Automatically returns on when the timer expires (polled every 30 seconds)
  • Turning the switch on during a temp disable re-enables blocking immediately (matches Technitium server behaviour)
  • New attribute: temporary_disable_until while a timer is active

Bug Fixes & Improvements

  • Fixed DHCP connection test in options flow missing SSL verification parameter
  • Config flow now uses proper InvalidTokenError / TransportError handling instead of generic failures
  • Improved config entry migration to version 4 (adds cluster_mode: false automatically)
  • Updated README, migration guide, strings, and all translation files for new options

Breaking Changes & Migration

Area 2.4.4 3.0.0-Beta.1
API client Bundled api.py PyPI technitiumdns-api>=0.1.1
manifest.json requirements aiohttp>=3.9.0 technitiumdns-api>=0.1.1
Config entry version 3 4
New config data key cluster_mode (default: false)
New option stats_update_interval (default: 60)

Upgrade steps:

  1. Update via HACS or copy the new custom_components/technitiumdns folder
  2. Restart Home Assistant (or reload the integration)
  3. Migration runs automatically — no reconfiguration required for existing installs
  4. Optional: open Configure to set statistics update interval or enable cluster mode (requires re-setup or manual config entry edit for cluster mode on existing entries)

Note: First load after upgrade may take slightly longer while Home Assistant installs technitiumdns-api from PyPI.


Not in This Release

  • Advanced Blocking controls (#75) — planned for a follow-up release using apps.get_config / apps.set_config via technitiumdns-api

Technical Summary

Files changed since v2.4.4: 19 files, ~1,000 net lines removed (mostly deleted api.py)

New files:

  • custom_components/technitiumdns/client.py
  • custom_components/technitiumdns/dns_logs.py

Removed:

  • custom_components/technitiumdns/api.py

Testing Checklist (Beta)

Before promoting to stable, please verify:

  • Fresh setup with valid/invalid token and SSL on/off
  • Cluster mode on a multi-node Technitium cluster
  • DNS statistics sensors update at the chosen interval
  • Ad blocking switch + temporary disable buttons behave correctly
  • DHCP device tracking and DNS log–based last-seen still work (with a query-logging DNS app installed)
  • Upgrade from 2.4.4 without losing config

Links

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

NewReleases is sending notifications on new releases.