Control D Manager - DNS Orchestration

Hi everyone,

I recently moved my DNS to Control D, primarily to solve a classic issue of protecting and controlling mobile devices when off the local network. One of the main motivators is for my kid’s devices: How do you reliably protect and control a kid’s phone (especially iOS) when they leave your local Wi-Fi, without forcing them through a clunky, battery-draining VPN?

The answer is actually surprisingly simple: you don’t need a complex router or firewall setup. You just install a Control D configuration profile directly on their phone, and you instantly gain the ability to block data and site access on demand, anywhere.

I wanted to bring that control into my smart home, so I built Control D Manager. It’s a custom integration that turns your Control D profiles, filters, and custom rules into programmable Home Assistant entities.

:sparkles: The “Everyday” Use Cases

1. Off-Network “Homework Mode” (On-Demand Blocking)
Because Control D is cloud-based, you can use HA to control a device that isn’t even on your network. Using native HA services (set_service_state or set_rule_state), you can easily build an automation that instantly blocks YouTube, TikTok, or all internet access on a kid’s phone while they are at school or out with friends.

2. The “Tamper Detection” Hook (Solving the iOS Bypass)
The obvious risk with iOS DNS profiles is that a clever kid can just delete them. Because phones are naturally chatty, this integration exposes endpoint activity sensors.
You can use this to build a tamper-detection automation: Have the HA Companion App trigger a location update. If the phone responds with its location (meaning it has an active internet connection), but your Control D endpoint sensor shows it hasn’t made a DNS query recently… you know they bypassed the DNS profile. (I plan on doing a full write-up on this specific automation soon!)

:rocket: For the Homelabbers & Power Users

While you don’t need any special network hardware to use this integration, if you do run a complex homelab, this integration scales perfectly with it.

Control D has a highly open API. If you run ctrld at the firewall/router layer to separate DNS policy by VLAN or individual client, this integration natively reads that architecture. You get high-fidelity, programmatic access to every single filter, service, and custom rule on your network.

To ensure this integration stays lightning-fast even on complex networks, I built it to a “Platinum” standard:

  • Zero Entity Bloat: Control D has thousands of possible filters. A naive integration would flood your HA registry. This uses a strict opt-in model: you explicitly choose which specific filters or custom rules actually become HA UI switches.
  • Stateless Pausing: Pass a duration payload to disable_profile and let the Control D cloud handle the countdown timer natively.
  • Pi-Hole Card Parity: Exposes normalized analytics sensors mapped to standard translation keys. You can drop this right into the popular custom:pi-hole Lovelace card for an instant, beautiful dashboard (despite limited compatibility due to it being built for a different platform, the compatibility is incredibly functional).

Links & Installation

I built this adhering strictly to HA core standards (DataUpdateCoordinators, strict typing, entry-scoped runtime) so it feels like a native part of your smart home, not a hacked-together web wrapper.

I’d love for the community to test it out—whether you just want to manage your kid’s iPad, or you want to orchestrate 15 different VLANs—and let me know what you think!



:heart: Support the Project

Building and maintaining integrations takes countless hours of development, testing, and covering hardware and tool costs. If Control D Manager is giving you the network control you’ve been hoping for, here is how you can help keep the project alive:

:star: Star this repository! (The Non-Negotiable)
If you install this integration and get value out of it, clicking the Star button at the top of the page is the easiest—and free—way to say thanks. It takes two seconds, helps others discover the project, and shows me that the community is actively using it.

:hot_beverage: Sponsor or Tip (The Ultimate Motivator)
While stars let me know the integration is alive, a sponsorship or tip is the absolute best way to affirm that the time and money spent building this tool is providing real value.

Financial support is never required, but it is the strongest motivation for me to keep fixing bugs, adding features, and maintaining this project long-term. If Control D Manager makes your smart home better, consider showing your support!

Sponsor Buy Me A Coffee

2 Likes

Really awesome, thanks for the work.

Announcing Control D Manager v1.1.0 - Full Redirection, Endpoint Controls, and Client Aliasing

Hey everyone,

A quick update on the Control D Manager integration for Home Assistant!

First off, I want to give a massive shoutout to the Control D team. Following my v1.0.0 post, they generously reached out and upgraded my account with a Full Control license so I could properly develop and test the premium tier features. That level of upstream developer support is incredible, and I immediately put it to work.

Thanks to that upgrade, v1.1.0 is now live, bringing full Redirection support and expanding the integration beyond profile automation into broader endpoint and client operations.

:sparkles: What’s New in v1.1.0:

  • Fully Unlocked Redirection: I was finally able to test and correct the Redirect behavior end-to-end. We now have solid redirect behavior across your default rules, custom rules, and services. This is available directly via UI entities as well as more granularly via the updated Home Assistant service layer.
  • On-the-Fly Client Aliasing: You can now dynamically manage network clients using HA automations with the new set_client_alias and clear_client_alias services. This even supports analytics-only client rows, meaning alias actions work perfectly even if the client isn’t exposed as a standalone HA entity.
  • Endpoint Operations: Added new services to natively rename_endpoint and set_endpoint_analytics_logging straight from Home Assistant automations.
  • Zero-Bloat Maintained: Staying true to the integration’s design philosophy, all these new endpoint and client controls are strictly “service-first.” They give you limitless automation capability without flooding your Home Assistant registry with useless entity platforms.

Notes for current users: No migration is required from 1.0.0. Just update via HACS and you’re good to go!

GitHub Repository: https://github.com/ccpk1/controld-manager-ha


Thanks again to the Control D team for the generous license, and to the community for the great feedback on the first release. Let me know what you build with the new redirect and endpoint services!

1 Like

Big Control D fan. Love your project!

1 Like

Stumbled upon this intergration since I’ve been using Control D for almost a year now. This is awesome!

1 Like

Thanks so much for the kind words! If it’s doing the job for you, dropping a star on the repo would be awesome. I only launched this a few weeks ago, and the hardest part of a new release is trying to figure out if the silence means everything is working perfectly, or if people just haven’t found it yet. Glad to hear it’s hitting the mark for you!

Control D Manager v1.2.0 is now live! :rocket:

Hey everyone,

Following up on the recent updates, version 1.2.0 is now available via HACS. This release is entirely focused on making the integration smarter, cleaner, and much easier to manage, keeping your Home Assistant entity registry completely free of bloat.

:sparkles: The Big Enabler: Control D v2.0.14

A few days ago, Control D released platform update v2.0.14, which included a new "See All Active Services" view in their web dashboard.

Previously, you had to expose entire Service Categories in HA (which could contain 100+ disabled entities) just to manually enable the two or three services you actually cared about. Because Control D now centralizes your active services upstream, I was able to completely rewrite how this integration syncs that data.

:hammer_and_wrench: Smarter Syncing & Zero Entity Bloat

  • "Expose all active services" (The New Default): The integration now directly syncs with the explicit live service rows you already have present on your Control D profile. No more category dumping or sifting through hundreds of disabled entities.
  • "Expose all custom rules": You now have a one-click, opt-in policy to expose the full, live custom-rule surface for a specific profile without picking folders or rules one by one.

The Recommended Workflow: Switch your profile in the integration options to "Expose all active services," then simply manage what's active directly in the Control D web UI. The integration will automatically sync and expose only those active services as entities.

(Note: The old manual category-based method is still available if you genuinely need that broader surface, but the active sync is the new recommended path).

:memo: Upgrade Notes

  • No breaking changes and no migration steps, just upgrade from HACS and restart Home Assistant.
  • Existing profiles that had no manual service categories saved will automatically migrate to the new "Expose all active services" behavior.
  • Existing profiles that were already using explicitly stored service categories will retain those categories and do not migrate automatically.
  • Note: Because Home Assistant remembers entity-registry choices after creation, some entities may require manual enable/disable cleanup in HA after changing your exposure settings.

Here is a look at the updated configuration options:

You can check out the full changelog on the GitHub repository. Enjoy the cleaner registry, and let me know how the new syncing workflow feels for your setup!

:heart: Support the Project

Building and maintaining integrations takes countless hours of development, testing, and covering hardware and tool costs. If Control D Manager is giving you the network control you've been hoping for, here is how you can help keep the project alive:

:star: Star this repository! (The Non-Negotiable :blush:)
GitHub repository

:hot_beverage: Sponsor or Tip (The Ultimate Motivator)
Sponsor Buy Me A Coffee