Home Assistant Community Add-on: AdGuard Home

If i use adguard (or pihole) as a Hassio Addon, upon restarting Home Assistant, any component that tries to communicate to the web will not load. I.e.: Alexa Media Player, Dyson etc. Is there a workaround for that? Or is it smarter to let it run on a dedicated pi?

You need to set an STATIC EXTERNAL DNS server and a STATIC IP on your device running Hass.io.
@AlmostSerious Your issue description indicates you did not follow the docs on that part.

Setting a secondary dns in my router (i.e. 8.8.8.8) fixed it. Seems like the components only try to load once, and if the addon is not yet loaded they will not get a response and will fail. With the secondary DNS Server this seems fine :slight_smile:

:tada: Release v1.0.1

Full Changelog

:sparkles: This release adds support for the “Add to sidebar” feature that became available in Home Assistant 0.92.

Please note: You need to have Home Assistant 0.92 or newer to be able to install this update.

:hammer: Changes

  • :arrow_up: Upgrades AdGuard Home to v0.95-hotfix (#12) (@tjorim)
  • :arrow_up: Updates Home Assistant requirement to 0.92.0b2
  • :sparkles: Adds support for showing in sidebar

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

Anyone know why this addon says “Ensure your HassIO device has a static IP and static external DNS servers” while the Pi Hole addon says it only requires a static IP?

Why would this one need a static external DNS and Pi Hole doesn’t if they do roughly the same function?

Just something I’ve been wondering.

:tada: Release v1.1.0

Full Changelog

:sparkles: This release adds support for adding friendly client names in the add-on configuration.
These client names will show up in the interface of AdGuard Home, instead of the IP address, which makes your clients way more identifiable.

:ambulance: Fixes crash on 64 bits ARM devices (aarch64)

:man_artist: The sidebar icon was improved by @bonanitech, to make it look more like Adguard Home.

:hammer: Changes

  • :art: Change panel_icon (#13)
  • :arrow_up: Upgrades lua-resty-http to 0.13-r0
  • :arrow_up: Upgrades nginx to 1.14.2-r1
  • :arrow_up: Upgrades nginx-mod-http-lua to 1.14.2-r1
  • :ambulance: Turns of Lua Resty core in Nginx
  • :sparkles: Adds support for adding client friendly names

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

1 Like

:tada: Release v1.1.1

Full Changelog

:ambulance: This release addresses a small hostname check that was missing in the add-on configuration and corrects an example in the documentation.

:hammer: Changes

  • :ambulance: Fixes allowance of incorrect hostnames in client feature

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

The set up of pi hole’s external dns servers is done in the pihole gui.

Incorrect. An add-on has no control over your system. In both AdGuard & Pi-hole, the host machine needs to have a external DNS set, to prevent it becoming a client of itself.

I’m on Hassio and using Adguard for a while in such configuration:
clients -> router -(as DNS server)-> raspberryPi with HA+AdGuard as addon

Is there any chance to fetch clients IPs instead of router IP in statistics?
As all clients go thru router, only router IP is mentioned as “client which makes requests”.
But I seen screenshots where every client has his own IP.

There was some info related to “network_mode:host” for docker container for this. Bit I don’t see any possibility to configure it somehow.
Thank you in advance.

Hi,
Do you have plans to update AdGuard to 0.96-hotfix?

1 Like
1 Like

:tada: Release v1.2.0

Full Changelog

This release upgrades AdGuard Home to 0.96(hotfix), bringing in a load of new features!

See the AdGuard Home release notes for an overview:
https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.96

:hammer: Changes

  • :arrow_up: Upgrades add-on base image to 3.1.1
  • :arrow_up: Upgrades AdGuard Home to 0.96-hotfix (#17) (@iwoloschin)
  • :hammer: Adds --no-check-update flag to AdGuard (#18) (@tjorim)
  • :books: Adds link to Hassio documentation about static IP and DNS (#20) (@mammuth)
  • :sparkles: Adds support for Home Assistant integration discovery (#15)

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

I’m getting this error after the latest version,

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x606775]

goroutine 38 [running]:
crypto/tls.(*Conn).write(0xc0001c4e00, 0xc002938640, 0x122, 0x140, 0xc00f45d380, 0x11d, 0x180)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/crypto/tls/conn.go:896 +0x135
crypto/tls.(*Conn).writeRecordLocked(0xc0001c4e00, 0xbb5f16, 0xc00f45d380, 0x11d, 0x180, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/crypto/tls/conn.go:945 +0x2a1
crypto/tls.(*Conn).writeRecord(0xc0001c4e00, 0xc00f45d316, 0xc00f45d380, 0x11d, 0x180, 0x0, 0x0, 0x0)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/crypto/tls/conn.go:967 +0xaf
crypto/tls.(*Conn).clientHandshake(0xc0001c4e00, 0x0, 0x0)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/crypto/tls/handshake_client.go:167 +0x17c
crypto/tls.(*Conn).Handshake(0xc0001c4e00, 0x0, 0x0)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/crypto/tls/conn.go:1343 +0xef
net/http.(*persistConn).addTLS.func2(0x0, 0xc0001c4e00, 0x0, 0xc00005b740)
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/net/http/transport.go:1190 +0x42
created by net/http.(*persistConn).addTLS
/home/travis/.gimme/versions/go1.12.5.linux.amd64/src/net/http/transport.go:1186 +0x1ab
[cont-finish.d] executing container finish scripts…
[cont-finish.d] 99-message.sh: executing…
[cont-finish.d] 99-message.sh: exited 0.
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.

Same here, happened a couple of times in the last few days

I just added AdGuard to my setup and I would like to apply it to my router setup however when I go into my Unifi Security Gateway I see a preferred and alternate DNS already populated. Should the DNS servers for AdGuard replace the ones currently populated or added to the current list?

1 Like

Since I updated to the latest version, AdGuard is working still working fine, but I am not getting the new HA integration. There are no errors in the add-on log - it says it successfully sent discovery info to HA. But I do have errors in my HA log on HA restart. Both logs posted below. I’ve tried restarting HA several times and rebooting my host (running Docker on Ubuntu on a NUC). In configuration.yaml I have

ssdp:
zeroconf:
discovery:

What am I missing?

My config looks like this:

{
  "hosts": [],
  "ssl": false,
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem"
}

HA Log:

2019-06-19 18:19:04 ERROR (MainThread) [homeassistant.config_entries] Cannot find integration adguard
2019-06-19 18:19:04 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 671, in _async_create_flow
    self.hass, handler_key)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 211, in async_get_integration
    raise IntegrationNotFound(domain)
homeassistant.loader.IntegrationNotFound: Component adguard not found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/hassio/discovery.py", line 89, in async_process_new
    service, context={'source': 'hassio'}, data=config_data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 64, in async_init
    handler, context=context, data=data)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 674, in _async_create_flow
    raise data_entry_flow.UnknownHandler
homeassistant.data_entry_flow.UnknownHandler

Add-on log:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing... 

-----------------------------------------------------------
 Hass.io Add-on: AdGuard Home
 Network-wide ads & trackers blocking DNS server
-----------------------------------------------------------
 Add-on version: 1.2.0
 You are running the latest version of this add-on.
 System: Ubuntu 18.04.2 LTS  (amd64 / intel-nuc)
 Home Assistant version: 0.94.3
 Supervisor version: 166
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing... 
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] adguard.sh: executing... 
[cont-init.d] adguard.sh: exited 0.
[cont-init.d] discovery.sh: executing... 
{"uuid":"33c3499704e640d697b00f10995710ff"}
[18:16:23] INFO: Successfully send discovery information to Home Assistant.
[cont-init.d] discovery.sh: exited 0.
[cont-init.d] hosts.sh: executing... 
[cont-init.d] hosts.sh: exited 0.
[cont-init.d] nginx.sh: executing... 
[cont-init.d] nginx.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[18:16:23] INFO: Starting AdGuard Home server...
2019/06/19 18:16:23 [info] AdGuard Home, version v0.96-hotfix, channel release

2019/06/19 18:16:23 [info] Added 8 client aliases from /etc/hosts
2019/06/19 18:16:23 [info] Upstream 0: https://dns.cloudflare.com:443/dns-query
2019/06/19 18:16:24 [info] Start DNS server periodic jobs
2019/06/19 18:16:24 [info] Starting the DNS proxy server
2019/06/19 18:16:24 [info] Ratelimit is enabled and set to 20 rps
2019/06/19 18:16:24 [info] The server is configured to refuse ANY requests
2019/06/19 18:16:24 [info] DNS cache is enabled
2019/06/19 18:16:24 [info] Creating the UDP server socket
2019/06/19 18:16:24 [info] Listening to udp://[::]:53
2019/06/19 18:16:24 [info] Creating the TCP server socket
2019/06/19 18:16:24 [info] Listening to tcp://[::]:53
2019/06/19 18:16:24 [info] Entering the UDP listener loop on [::]:53
2019/06/19 18:16:24 [info] Entering the tcp listener loop on [::]:53
2019/06/19 18:16:24 [info] Go to http://127.0.0.1:45158
[18:16:24] INFO: Starting NGinx...
nginx: [alert] detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET / HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /main.c15a7f31df2940b19c227eda9f47600c.css HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /main.f6588c7d314a02cf9a8d.js HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/status HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/stats HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/version.json HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/stats_history?start_time=2019-06-18T18:17:05-04:00&end_time=2019-06-19T18:17:05-04:00&time_unit=hours HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/clients HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/clients HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/stats_top HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)
[19/Jun/2019:18:17:07 -0400] 200 192.168.0.18, 172.30.32.1(172.30.32.2) GET /control/stats_top HTTP/1.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36)

:tada: Release v2.0.0

Full Changelog

This release upgrades in the environment AdGuard is running in.
However, it should not be a breaking upgrade.

Furthermore, it contains a fix for the auto-discovery feature for the AdGuard integration in Home Assistant (0.95+).

See the AdGuard Home release notes for an overview:
https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.96

:hammer: Changes

  • :ambulance:Automatically restart AdGuard in case of crash
  • :ambulance: Extend wait timeout to 900 seconds
  • :arrow_up: Upgrades nginx to 1.16.0-r2
  • :arrow_up: Upgrades add-on base image to v4.0.1
  • :ambulance: Fixes Home Assistant integration discovery
  • :hammer: Re-instates dynamic Ingress port
  • :fire: Removes now deprecated ssl directive
  • :sparkles: Adds FUNDING.yml
  • :pencil2: Maintaince -> Maintenance

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

2 Likes

Hello,
thanks for yout work and effort.
Unfortunatlely after the update i’m not yet able to use parental controll, if enable cant navigate, the error is this:
Failed to do parental HTTP lookup, ignoring check: Get https://pctrl.adguard.com/check-parental-control-hash?prefixes=17AC49BE/41ED3A63/BCC1BF92/&sensitivity=13: net/http: TLS handshake timeout
Thanks in advance

I think that is just a matter of bad timing: