This is an app and drivers to manage AdGuard Home DNS Servers and their configured clients.
I created this package so that I could have a physical switch to block/unblock YouTube on my kid's devices.
Features:
Block/Unblock AGH built-in services
Enable/Disable
Protection
Filtering
Parental Control
Safe Search
Safe Browsing
Basic Instructions:
Install the App and Drivers with HPM.
The Client driver is not required if you only want to control global server settings.
Open the app then add your first server.
If you want to manage clients, be sure to create child devices from the app or server device.
This looks awesome. Much more advanced than I was planning on making it. All I really want is to be able to disable the protection easily and then set a timer to have it come back on automatically. Looks like this should do it in combination with a rule to turn it back on.
Update: When setting this up I put in my credentials wrong, also forgot to include the port with the IP. Might want to word it in a way something about Server IP:Port?
In the app part, I clicked on the newly added server and then it created a duplicate. After that I went to the device until I could refresh it with proper settings, then I went back and clicked on the server in the app. Looks to be working now.
Most of the docs are about linux setup. But I know you are on Windows only so I did find this page that has an installer to download. Once it is setup you have to redirect your devices to use it for DNS, easiest way is to set the DNS that the DCHP server hands out, usually on the router.
You want it running on a device that is always on. Some people run it on a NAS (docker), some people on a rasberrypi, some run it right on a router (need something like openwrt, pfsense, etc..,), and some people run it on a computer that is always on.
I personally run it on a rasberrypi that is located where my router and switches are located. You will need to do some network configuration on your router after you set it up on whatever device you choose. This is fairly straightforward on most routers, but depending on the equipment you currently have it can be a little daunting.
As im getting deeper down this rabbit hole I'm starting to reevaluate my computer / network needs. I do have an unused AT&T Streaming box. I think it was running a flavor of Android TV. Ive often wondered if i couldnt repurpose it in some way.
@JoKneeMo, how do I create one or two client child devices? When I hit create child devices, it created a device for every one of my 220 devices in AdGuard... I didn't want to manually go through all of them and delete the ones I don't want, so I just hit the delete child devices and removed them all... Is there a way to just create specific child devices? I like your comment on controlling your kid's devices. That is exactly what I want to use this for. Don't need to have all the other home devices included...
Thank you... I'm in no hurry and will probably wait until you or someone else can add this feature. I have multiple locations and servers all with the same list of clients... Going through and deleting all of those would take a lot of time... And the hub freaks out when adding that many new devices also... Kept prompting for doing a backup...
However, I have around 30ish clients on my network and only 3 show up when I created/refreshed the child devices. Is there any reason the other clients not showing up?
I must have done something wrong. I can see in Hubitat that it reports the correct status of Adguard home, but anything I tried to change (like turning protection on/off) on the Hubitat doesn't change the actually settings on Adguard side. The log shows error as follow
This could be really useful, but, alas, I use pfBlockerNG on a pfSense firewall. Wondering if anyone has adapted this, or made their own similar solution, for pfSense?
Added the ability to create a single DNS client child device
This is useful when you have many clients on a server and don't want to add all of them to Hubitat.
The command createSingleChild was added and accepts an ID string used in AGH for the client, ie. IP, MAC, or hostname
The ID is then validated against the AGH server before it's added to Hubitat.