Pi-Hole Integration

Tags: #<Tag:0x00007f74694706c8> #<Tag:0x00007f74694704e8> #<Tag:0x00007f74694703d0>

I’ve recently set up my Raspberry Pi Zero W to be a dedicated traffic filtering machine in my home network.
A fantastic tool for this is Pi-Hole. It blocks ads on any device in your network, improves overall network performance and allows you to monitor the traffic and statistics.

After I’ve set up my Pi0W:

  • renamed the hostname to pihole with sudo raspi-config (optional)
  • installed Pi-Hole with sudo curl -sSL https://install.pi-hole.net | bash

I started integrating it with openHAB, obviously :wink:

A few notes:

  • I don’t run openHAB and Pi-Hole on the same machine. I would strongly advise to use separate devices for performance reasons.

  • You need JSONPATH transformation add-on installed

  • You also need HTTP binding (from openHAB 1.x, since there’s no 2.x equivalent for now)

Screenshot

Files

/icons/classic/pihole.svg
Save the file from there -> https://wally3k.github.io/style/phv.svg

/services/http.cfg

Add the following lines at the bottom. Change the IP address in pihole.url parameter to match your Pi-Hole address.
Update interval is set to 10 minutes (600000 milliseconds).

pihole.url="http://192.168.X.XX/admin/api.php"
pihole.updateInterval=600000

/items/pihole.items

Group    gPiHole                      "Pi-Hole"                         <pihole>    
Number   PiHole_DomainsBeingBlocked   "Domains being blocked [%d]"      <pihole>    (gPiHole)   {http="<[pihole:100000:JSONPATH($.domains_being_blocked)]"}
Number   PiHole_DnsQueriesToday       "DNS queries today [%d]"          <chart>     (gPiHole)   {http="<[pihole:100000:JSONPATH($.dns_queries_today)]"}
Number   PiHole_AdsBlockedToday       "Ads blocked today [%d]"          <keyring>   (gPiHole)   {http="<[pihole:100000:JSONPATH($.ads_blocked_today)]"}
Number   PiHole_AdsPercentageToday    "Ads percentage today [%.2f %%]"  <keyring>   (gPiHole)   {http="<[pihole:100000:JSONPATH($.ads_percentage_today)]"}
Number   PiHole_UniqueDomains         "Unique domains [%d]"             <network>   (gPiHole)   {http="<[pihole:100000:JSONPATH($.unique_domains)]"}
Number   PiHole_QueriesForwarded      "Queries forwarded [%d]"          <chart>     (gPiHole)   {http="<[pihole:100000:JSONPATH($.queries_forwarded)]"}
Number   PiHole_QueriesCached         "Queries cached [%d]"             <wind>      (gPiHole)   {http="<[pihole:100000:JSONPATH($.queries_cached)]"}
Number   PiHole_ClientsEverSeen       "Clients ever seen [%d]"          <screen>    (gPiHole)   {http="<[pihole:100000:JSONPATH($.clients_ever_seen)]"}
Number   PiHole_UniqueClients         "Unique clients [%d]"             <screen>    (gPiHole)   {http="<[pihole:100000:JSONPATH($.unique_clients)]"}
String   PiHole_Status                "Status [%s]"                     <status>    (gPiHole)   {http="<[pihole:100000:JSONPATH($.status)]"}

sitemap

sitemap something {
...

            Frame item=gPiHole label="Pi-Hole" {
                Text item=PiHole_DomainsBeingBlocked
                Text item=PiHole_DnsQueriesToday
                Text item=PiHole_AdsBlockedToday
                Text item=PiHole_AdsPercentageToday
                Text item=PiHole_UniqueDomains
                Text item=PiHole_QueriesForwarded
                Text item=PiHole_QueriesCached
                Text item=PiHole_ClientsEverSeen
                Text item=PiHole_UniqueClients
                Text item=PiHole_Status
            }
...
}

And you’re all set!
You can now write some automation rules e.g.:

  • If Pi-Hole is disabled (PiHole_Status.state == "disabled"), do something
  • If a new client has been connected (PiHole_UniqueClients.state), flash a light or notify me
  • If number of queries cached increased (PiHole_QueriesCached), play a sound
  • And so on :wink:

Please share your automation ideas in this thread.

Bonus - dashboard link

Modify your /services/dashboard.cfg file by adding the following at the bottom:


pihole.link-name=Pi-Hole
pihole.link-url=http://192.168.X.XX/admin/
pihole.link-imageurl=data:image/jpeg;base64,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

And you’ll have direct access to it from openHAB dashboard (http://youropenhab/start/index) :slight_smile:

Cheers

34 Likes

Sounds interesting and thanks for the tutorial! Maybe I should replace my bind dns server with this.

This looks great. I had a pi-hole setup before and never put it back up when I upgraded network hardware. We occasionally had a problem with it blocking some sites or features that we didn’t want blocked. It would be very helpful would be to disable pi-hole from openhab when it blocks things we dont want it to. Any thoughts on adding the disable/enable…or a disable for X minutes option?

1 Like

@B34N it could be possible, I think. But you need to generate a token each time you’re logged in, so I don’t think it’s a long-term solution at all.

  1. Go to http://yourpihole/admin/index.php?login and sign in
  2. Hit F12 and go to Console tab.
  3. Paste this code -> encodeURIComponent($('#token')[0].textContent) and hit enter.
  4. Now you’ve obtained your token.
http://yourpihole/admin/api.php?disable=10&token=YOURTOKEN

The URL above should disable Pi-Hole for 10 seconds. But as I said before, there’s no proper token management/generator in Pi-Hole API, so I’d search on Pi-Hole forums for advice.

Cheers

Awesome! :heart_eyes:

I don’t run openHAB and Pi-Hole on the same machine. I would strongly advise to use separate devices for performance reasons.

I happen to do just that since June or so (on a Raspberry Pi 3 clone) and it’s not so bad actually.

1 Like

Works like a charm!
(Except my pi-hole version is too old and doesn’t include the “total clients ever seen” and “status” properties, so I had to temporarily remove them until I update).

Also to be complete, the stats are apparently for the last 24 hours, not for “today” as the API implies:

2 Likes

@kubawolanin

I’ve installed PiHole as docker and it works perfectly with your items. Thx!

Questions:

  1. Is there a way to get the number of queries as shown in the PiHole dashboard (for storing in InfluxDB)?

  2. I see only 2 clients but I expect to see more devices. Is this because I am not using PiHole as DHCP server?

Thx for the help

Have you configured all your devices to use piHole as a DNS?
Did you confure them both on IPv4 and IPv6?

Yes, that is the item:

Number   PiHole_DnsQueriesToday       "DNS queries today [%d]"          <chart>     (gPiHole)   {http="<[pihole:100000:JSONPATH($.dns_queries_today)]"}

Add it to your persistence group

Not sure I understand “all your devices”. I have configured the router only. Do I need to configure each device (LIFX light is a device?).
Not sure but I think I saw something that says that because my router forward the DNS request , PiHole see it as the only device (this is what i see, only my router actually).

I will try to use PiHole as my DHCP (as I want to add the ability to have names and ability for presence detection). Might the issue be related to the fact that DHCP is no enabled (probably not, just to be sure)?

Thx for your help and comments

That is correct. I have a different set-up as my router can’t redirected the DNS. So I have all my web accessing device using the piHole as DNS directly.

This shows the number of queries from beginning of day (I assume). I want to have the number from last sampling time. So either I will use a rule to do the subtraction or there is a way in InfluxDB / Grafana to do it (at least to show it).

This shows the queries for the last 24 hours

The pihole icon is not working for me. I have downloaded the *.svg and renamed it to pihole.svg.

I also controlled linux owner, rights, … All like the other icons in the folder. But all other icons are *.png

Do i have to change the svg-file to a png too? I can do this with irfan view…

Yes you do,
You can choose either svg icons XOR png icons. The UI cannot show both

Thank you . awesome project!

so clearly explained and so simple to do.

it works perfectly with the pihole as dhcp.
i have a few questions:

  1. could it possible to disable the pihole domain filtering from a switch displayed in a sitemap ?

  2. for a parental control purpose, could it be possible to lock wifi or internet access for some devices from a switch?

  3. for a parental control purpose, could it be possible to lock a game access like fortnite from a switch?

@nakh_Home

This is another topic really
Everything is possible…

  • 1 - Possibly by changing the DNS in your router. Does your router has an API?
  • 2 - See 1
  • 3 - See 1 or Pihole API
1 Like

There is a new http api available, which was made public some days ago and seems to replace the existing php on some day.

Source can be found here.

Let’s wait for some more content/documentation and see what will be integrated there.
Maybe this could be extended to a binding with not only read but also write/command capabilities then.

2 Likes

Thanks but my Asus ac52u do not have API ( as far i have understood)

Quick question for those running a local DNS for LAN based name resolutions:

How would you place your PiHole DNS?

a) Client -> LAN DNS -> PiHole DNS -> Public DNS
or
b) Client -> PiHole DNS -> LAN DNS -> Public DNS

I think both options are going to work ok but I will go with (a) :slight_smile: (disadvantage is that PiHole will see only 1 client)

I use BIND with DDNS settings for my LAN

From my point of view the KAN Dns and the PiHole DNS are the same. Why would you have two dns servers in your local network?