Releases: Rhaiderr/homeassistant-cloudflare-ip-sync
Releases · Rhaiderr/homeassistant-cloudflare-ip-sync
Release list
v1.0.1
Patch release.
Changed
- Brand icons now ship inside the integration (
brand/icon.png,brand/icon@2x.png) using the mechanism introduced in Home Assistant 2026.3.0 — the integration now shows the Cloudflare icon in the HA UI. No configuration changes needed; local brand images take priority automatically. (#20, #21)
Full setup guide and documentation in the README.
🤖 Generated with Claude Code
v1.0.0
First stable release. 🎉
Cloudflare Dynamic IP Sync keeps a Cloudflare Rule List updated with your current public IP address — automatically, whenever your ISP rotates it. Built for the Cloudflare Tunnel + WAF (not ip.src in $casa) self-hosting setup.
Highlights
- Automatic sync: watches any Home Assistant entity whose state is your public IP (router sensor or custom REST/template sensor) and rewrites the Rule List when it changes — debounced on change, plus a periodic reconcile as a safety net.
- Verified write path: replace items → wait for Cloudflare's bulk operation → re-read and verify → exponential backoff up to a configurable retry limit; persistent notification when retries are exhausted (auto-dismissed on recovery).
- UI-only setup (config flow): token → account → Rule List → source entity. Multiple config entries supported. Both user API tokens and account-owned tokens (
cfat_) work. - Observability:
sync_statusenum sensor withlocal_ip/cloudflare_ips/last_synced/last_errorattributes, diagnostics with token redaction, and a Repair issue if the Rule List disappears from the account. - Services:
cloudflare_ip_sync.force_syncandcloudflare_ip_sync.reload. - Fully async, typed, ruff/mypy-clean, 41 tests, validated end-to-end on a real installation against the live Cloudflare API.
Requirements
- Home Assistant 2026.6+
- A Cloudflare API token with Account Filter Lists → Edit and Account Settings → Read
- An existing IP-kind Rule List
Installation
Via HACS (custom repository) or manual copy — see the README for the full setup walkthrough.
🤖 Generated with Claude Code