All notable changes to this project will be documented in this file.
- Each domain is now its own HA device — entities are grouped per domain instead of all under one account device
- Entity names shortened:
website.de Resolved IPinstead ofmein_strato Domain website.de Resolved IP - Resolved IP and Public IP sensors are now categorized as
DIAGNOSTIC(appear under the Diagnostics tab in the integration overview) - Account-level sensor renamed from "Error" to "Problem" (matches device class)
- "Update Now" button now correctly grouped under the account device
- Domain binary sensors now persistently show the last Strato response code in attributes (
last_update_status,last_update_response), even when no update was sent
- manifest.json: added
issue_trackerandcodeowners(required fields for HACS Default Store submission)
- Global problem sensor now only turns
ONwhen a DNS resolver IP differs from the public IP (IPv4 or IPv6) - Update errors on individual domains are no longer considered by the global sensor — the per-domain sensors still show them separately
- No more unnecessary Strato update on HA restart
- After restart, in-memory state is empty → DNS check decides (safe, same as before)
- Within a running session → last sent IP decides (prevents re-send while DNS is propagating)
- Domain processing is now parallel: DNS resolution and Strato API calls for all domains run concurrently (
asyncio.gather)
- After a successful Strato update, subsequent polls no longer re-send to Strato while DNS is still propagating
- Update is now triggered by "public IP changed since last successful send", not by DNS mismatch
- The IP mismatch sensor still shows
ONduring propagation (intended — useful for monitoring), but no duplicate API call is made
- Account error sensor now aggregates ALL per-domain problem sensors:
ONwhen any domain has an update error, IPv4 mismatch, or IPv6 mismatch - Attribute renamed from
failed_domains/error_detailstoproblem_domains/detailswith full reason list per domain
- Minimum interval label corrected from "min. 30" to "min. 10" in all translation files
- Toggle labels
ipv6_enabledandnotifications_enablednow show translated names in config/options UI
- Persistent notifications for problem sensors (can be disabled per account in options)
- Update error: one notification per account listing all failed domains with error codes
- IPv4 mismatch: one notification per domain showing DNS vs. public IP
- IPv6 mismatch: one notification per domain showing AAAA vs. public IPv6
- Notifications are automatically dismissed when the problem is resolved
- Language auto-detected from HA config (
de→ German, otherwise English)
- Optional IPv6 support (enable per account in config/options)
- Public IPv6 sensor (
sensor.strato_dyndns_public_ipv6) — network-wide, no account prefix - Public IPv4 sensor renamed to
…_public_ipv4withproviderattribute (breaking rename) - Resolved IPv6 sensor per domain (AAAA DNS lookup via 1.1.1.1/8.8.8.8)
- IPv6 mismatch binary sensor per domain
- Update trigger: OR logic — update when IPv4 OR IPv6 DNS doesn't match public IP
- Strato update sends
myip=<ipv4>,<ipv6>when IPv6 is active
- Error backoff per domain: after a failed update, retries are paused to avoid making errors worse
abuse→ 15 min,badauth/notfqdn→ 30 min,dnserr/badsys/911→ 5 min, other errors → 2 min
- Error sensor stays
ONduring backoff (last known error result is preserved) retry_afterattribute on the resolved-IP sensor when a domain is in backoff- "Update Now" button bypasses backoff and forces an immediate retry
- Entity naming cleaned up (breaking change — delete and re-add the integration)
- Removed redundant "Strato" prefix from all entity names
- Domain sensors now include account name and "Domain" separator for clarity
- Examples:
server_de_domain_bookstack_server_de_resolved_ip,server_de_error
- Minimum polling interval lowered from 30 to 10 seconds
- Safe because Strato is only called when DNS-resolved IP ≠ public IP, not on every poll
- Replaced account status text sensor (
ok/error) with a binary problem sensor - Binary sensor is
ONwhen any domain's last update returned an error (includingabuse,badauth,dnserr) - Attributes:
failed_domains(list) anderror_details(domain → Strato response code)
- DNS resolution now uses Cloudflare (
1.1.1.1) and Google (8.8.8.8) instead of the system resolver - Avoids stale cached results from the local router after a DynDNS update
dnspython==2.7.0as dependency (installed automatically by HA)
- Update trigger is now per-domain: Strato is only called when the domain's DNS-resolved IP differs from the public IP
- Avoids unnecessary
nochgcalls that can trigger anabuseblock from Strato - "Update Now" button uses a dedicated force flag instead of clearing the last known IP
- All log messages switched to English
- Account status sensor showing
ok/errorwith failed domains as attribute - Last update timestamp sensor per domain (respects
goodandnochgas success) - "Update Now" button to force immediate update of all domains
- Error logging in HA log on failed updates, debug logging for update flow
- Domain fields no longer shift positions when reopening the options dialog (breaking change: VERSION 2)
- Icon now correctly placed in
brand/subdirectory (HA 2026.3+ requirement)
- Domain input replaced with individual fields: one main domain + up to 10 subdomains
- No field is mandatory — use only what you need
- Breaking change: existing entries must be reconfigured
- Options Flow Error 500 (
AttributeErroronconfig_entryproperty in HA 2024+) - Polling interval unit changed from minutes to seconds (minimum 30 seconds)
- German and English translations for config flow UI
- HACS compatibility (
hacs.json) - Integration icon (
brand/icon.png) - README with installation and configuration docs
- Initial release
- Config Flow (no YAML required)
- Public IP detection with fallback providers (ipify.org, AWS, ifconfig.me)
- Automatic DynDNS update at Strato when IP changes
- Sensor: public IP, resolved IP per domain, IP mismatch problem sensor per domain
- Support for multiple Strato accounts