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–awareAsyncClientfactory) anddns_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=clusterfor 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, or300seconds (default: 60) - Clarifies the difference between:
- Statistics duration (setup) — the stats window (
LastHour,LastDay, etc.) - Statistics update interval (options) — how often sensors refresh
- Statistics duration (setup) — the stats window (
- 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
enableBlockingon 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_untilwhile a timer is active
Bug Fixes & Improvements
- Fixed DHCP connection test in options flow missing SSL verification parameter
- Config flow now uses proper
InvalidTokenError/TransportErrorhandling instead of generic failures - Improved config entry migration to version 4 (adds
cluster_mode: falseautomatically) - 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:
- Update via HACS or copy the new
custom_components/technitiumdnsfolder - Restart Home Assistant (or reload the integration)
- Migration runs automatically — no reconfiguration required for existing installs
- 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-apifrom PyPI.
Not in This Release
- Advanced Blocking controls (#75) — planned for a follow-up release using
apps.get_config/apps.set_configviatechnitiumdns-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.pycustom_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
- technitiumdns-api on PyPI
- Technitium DNS Server API docs
- Migration guide