inspiriert durch einen thread in der openhab community hab ich mein pi-hole auch mal in openhab integriert.
hintergrund, ab und zu möchte ich ein paar seiten temporär zugänglich machen die sonst gesperrt sind (bspw aliexpress advertising, google shopping produktlinks).
warum also nicht einen switch in openhab zum ein/ausschalten anstatt sich immer auf pi-hole einloggen zu müssen.
pi-hole statistiken kann man sich in openhab natürlich auch anzeigen lassen, darauf verzichte ich aber da ich auch so weiss, dass unmengen an werbung/tracking geblockt werden.
umsetzung:
folgende addons über paperui installieren:
- bindings -> http binding
- transformations - JSONPath Transformation
items datei:
String PiHole_Status "Status [%s]" <status> {http="<[pihole:100000:JSONPATH($.status)]"}
Switch PiHole_Switch "Pi-hole" <pihole>
http.cfg datei (ip von pihole anpassen, die datei liegt im services verzeichnis):
sitemap datei:
Switch item=PiHole_Switch
rules datei:
in dieser datei müssen in der ersten rule in zeile 7 & 10 die ip von eurem pi-hole sowie das verschlüsselte webpasswort (hinter auth=) angepasst werden
das webpasswort findet ihr in der pihole config /etc/pihole/setupVars.conf
in zeile 10 wird mit disable=300 definiert wieviele sekunden pi-hole temporär deaktiviert werden soll. in dieser rule also 5min.
rule "pihole"
when
Item PiHole_Switch changed
then
switch PiHole_Switch.state {
case ON: {
sendHttpGetRequest("http://192.168.2.85:81/admin/api.php?enable&auth=f1edb562111036b643d9ddb087ea8e25265110c5a8b1487daec300c2049ec", 2000)
}
case OFF: {
sendHttpGetRequest("http://192.168.2.85:81/admin/api.php?disable=300&auth=f1edb562111036b643d9ddb087ea8e25265110c5b1ca887daec300c2049ec", 2000)
}
}
end
rule "pihole"
when
Item PiHole_Status changed
then
if (PiHole_Status.state.toString == "enabled") {
PiHole_Switch.postUpdate(ON)
}
if (PiHole_Status.state.toString == "disabled") {
PiHole_Switch.postUpdate(OFF)
}
end
Alles anzeigen
abschliessend noch das passende pi-hole icon für die sitemap hier aus dem anhang runterladen, entpacken und in euren icon ordner von openhab kopieren openhab2-conf/icons/classic