Zum Hauptinhalt springen

Pi-hole Smart-Home-Integration, kostenlos und Open Source

Pi-hole-Integration für Gladys Assistant

Pi-hole-Werbeblocker: Pause vom Dashboard, 24-h-Statistiken, Update-Hinweise.

Verfolge und steuere die Werbeblockierung deines Pi-hole über Gladys, in deinem lokalen Netzwerk: Pausiere sie fünf Minuten lang vom Dashboard aus, wenn eine Website nicht funktioniert, sieh, was sie in den letzten 24 Stunden blockiert hat, und erfahre, wenn sie nicht mehr antwortet oder ein Update erschienen ist.

Ohne die Hardware entwickelt: Rückmeldungen willkommen. Diese Integration wurde anhand der von Pi-hole dokumentierten Antworten (der OpenAPI-Spezifikation von Pi-hole v6) gebaut und getestet, nicht mit einem echten Server. Wenn etwas nicht wie beschrieben funktioniert, sag es bitte im Gladys-Forum oder in den Issues.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer (5.2.0 oder neuer für die Taste Pause… des Widgets).
  • Pi-hole v6 oder neuer, von Gladys aus erreichbar. Pi-hole v5 wird nicht unterstützt: Es wird erkannt und in der Konfiguration gemeldet.
  • Ein App-Passwort deines Pi-hole (empfohlen), oder das Passwort seiner Weboberfläche, oder nichts, wenn dein Pi-hole kein Passwort hat.

Um ein App-Passwort zu erstellen, öffne die Weboberfläche von Pi-hole: Settings → Web interface / API, schalte die Seite in den Modus Expert (oben rechts), dann Configure app password → Enable new app password. Kopiere das angezeigte Passwort: Pi-hole zeigt es nur einmal an. Ein App-Passwort funktioniert auch bei aktiver Zwei-Faktor-Authentifizierung, das Passwort der Weboberfläche nicht.

Einrichtung​

  1. Installiere die Integration aus dem Gladys-Katalog.
  2. Gib in der Konfiguration die Adresse deines Pi-hole ein (zum Beispiel 192.168.1.2, oder https://192.168.1.2 für HTTPS), sein App-Passwort und optional einen Namen. Zwei oder drei Pi-hole-Server? Fülle auch die Abschnitte Zweites Pi-hole und Drittes Pi-hole aus.
  3. Speichere und klicke dann auf Verbindung testen: Die Meldung unter der Taste zeigt für jeden Server, ob er antwortet, seine Version und den Status seiner Blockierung.
  4. Öffne den Tab Entdecken: ein Gerät pro Pi-hole. Klicke auf Hinzufügen, wähle einen Raum und speichere.

Optionen:

  • Selbstsignierte Zertifikate akzeptieren: Pi-hole v6 liefert HTTPS mit einem selbst signierten Zertifikat. Aktiviere sie, um eine https://-Adresse zu verwenden; lass sie für http://-Adressen aus.
  • Aktualisierungsintervall: wie oft die Server gelesen werden, von 15 Sekunden bis 5 Minuten (standardmäßig 1 Minute).
  • Blockierschalter ausschalten: was der Schalter des Geräts beim Ausschalten tut: die Blockierung 5 Minuten (Standard), 15, 30 oder 60 Minuten pausieren, oder sie deaktivieren, bis du ihn wieder einschaltest.
  • Sprache der Funktionsnamen: Englisch, Französisch, Deutsch oder Spanisch. Die Namen werden beim Hinzufügen eines Geräts vergeben (standardmäßig Französisch).

Das Gerät jedes Pi-hole​

FunktionWas es ist
WerbeblockerSchalter: an, das Pi-hole blockiert; aus, es lässt alles durch
DNS-Anfragen (24 h)In den letzten 24 Stunden empfangene Anfragen
Blockierte Anfragen (24 h)In den letzten 24 Stunden blockierte Anfragen
Anteil blockiert (24 h)Anteil der blockierten Anfragen, in %, gerundet
Aktive Clients (24 h)Geräte, die das Pi-hole in den letzten 24 Stunden genutzt haben
Domains auf SperrlistenDomains auf den Sperrlisten des Pi-hole
Verfügbare UpdatesAnzahl der Pi-hole-Teile mit einer neueren Version (0, wenn alles aktuell ist)

Die Zahlen sind die der Startseite von Pi-hole: ein gleitendes Fenster der letzten 24 Stunden, nicht der Kalendertag. Das Abzeichen des Geräts zeigt Lokal, wenn das Pi-hole antwortet, sonst Nicht erreichbar.

Dashboard​

Füge das Widget Pi-hole zu einem Dashboard hinzu. Standardmäßig zeigt es alle deine Server zusammen; wähle in seinen Einstellungen einen aus, um nur diesen zu zeigen. Ein Pi-hole von zweien zu pausieren ändert nichts: Deine Geräte fragen dann das andere.

Das Widget zeigt die Anfragen, die blockierten Anfragen und den blockierten Anteil der letzten 24 Stunden, den Status jedes Servers (blockiert, pausiert mit den verbleibenden Minuten, deaktiviert, nicht erreichbar), die aktiven Clients, die Domains der Sperrlisten und die verfügbaren Updates. Seine Tasten:

  • Pause 5 min und Pause 30 min: pausieren die Blockierung sofort;
  • Pause…: öffnet ein kleines Formular, um die Dauer in Minuten einzugeben (Gladys 5.2.0 oder neuer; ein älteres Gladys antwortet, dass es ein Update braucht);
  • Fortsetzen: schaltet die Blockierung wieder ein. Die Taste trägt ein Häkchen, solange die Blockierung überall aktiv ist.

Szenen​

Auslöser​

  • Pi-hole-Blockierung pausiert: Die Blockierung wurde ausgeschaltet, über Gladys oder anderswo (die Pi-hole-Oberfläche, der Befehl pihole disable, ein anderes Werkzeug). Filtere nach Pi-hole und nach Ursprung (Von Gladys oder Außerhalb von Gladys). Die Aktionen können den Namen des Pi-hole und die Dauer der Pause in Minuten lesen (duration_minutes, 0, wenn sie kein Ende hat).
  • Pi-hole-Blockierung fortgesetzt: Die Blockierung ist wieder aktiv. Der Ursprung sagt, ob die Pause von selbst endete (Ende der Pause), über Gladys oder anderswo; paused_minutes sagt, wie lange sie dauerte.
  • Pi-hole-Update verfügbar: Eine neue Version von Pi-hole ist erschienen (Core, FTL, Weboberfläche, oder das Docker-Image, wenn Pi-hole in Docker läuft). Einmal pro Version gemeldet, auch nach einem Neustart. updates listet die neuen Versionen auf, zum Beispiel Core v6.1.2, FTL v6.3.
  • Pi-hole antwortet nicht mehr: Ein Pi-hole hat zwei Abfragen in Folge nicht beantwortet (die zweite 15 Sekunden nach der ersten). Das DNS deines Hauses ist vielleicht ausgefallen. error sagt warum, in der Sprache der Konfiguration.
  • Pi-hole antwortet wieder: Es ist zurück; down_minutes sagt, nach wie langer Zeit.

Ein abgelehntes Passwort zählt nicht als „antwortet nicht mehr“: Die Konfiguration meldet es.

Aktionen​

  • Pi-hole-Blockierung pausieren: pausiert die Blockierung auf einem Pi-hole, oder auf allen, wenn das Feld leer bleibt, für eine Anzahl Minuten (standardmäßig 5, 0 bis zum Fortsetzen, höchstens ein Tag). Die folgenden Aktionen können lesen, wie viele Server pausiert wurden.
  • Pi-hole-Blockierung fortsetzen: schaltet die Blockierung wieder ein, auf einem Pi-hole oder auf allen.

Der Schalter Werbeblocker lässt sich auch mit der normalen Gladys-Aktion steuern, die ein Gerät bedient.

Szenen-Ideen​

  • Sicherheitsnetz: eine Szene jeden Abend um 20:00 Uhr mit Pi-hole-Blockierung fortsetzen, damit ein „bis zum Wiedereinschalten“ ausgeschalteter Schalter nie die ganze Nacht aus bleibt.
  • DNS-Alarm: Pi-hole antwortet nicht mehr → eine Nachricht senden „Pi-hole {{triggerEvent.data.server}} antwortet nicht: {{triggerEvent.data.error}}“. Und Pi-hole antwortet wieder → „zurück nach {{triggerEvent.data.down_minutes}} min“.
  • Wer hat die Blockierung pausiert?: Pi-hole-Blockierung pausiert mit dem Ursprung Außerhalb von Gladys → eine Nachricht mit der Dauer der Pause senden.

Fehlerbehebung​

  • „Passwort abgelehnt“: Prüfe das App-Passwort. Ein neues App-Passwort in Pi-hole ersetzt das alte: Übertrage das neue in Gladys.
  • „Zwei-Faktor-Authentifizierung aktiv“: Das Passwort der Weboberfläche verlangt einen Code von deinem Telefon; verwende stattdessen ein App-Passwort.
  • „Zertifikat abgelehnt“: Du hast eine https://-Adresse eingegeben; aktiviere Selbstsignierte Zertifikate akzeptieren oder verwende die http://-Adresse.
  • „die Adresse leitet um“: Dein Pi-hole schickt HTTP-Besucher zu HTTPS; gib die https://-Adresse ein und aktiviere Selbstsignierte Zertifikate akzeptieren.
  • „keine freie API-Sitzung“: Pi-hole akzeptiert nur eine begrenzte Zahl von API-Sitzungen gleichzeitig (standardmäßig 16). Die Integration hält nur eine pro Server und schließt sie beim Beenden; andere Werkzeuge können den Rest belegen. Pi-hole gibt ungenutzte Sitzungen nach 30 Minuten frei.
  • „Pi-hole v5 wird nicht unterstützt“: Aktualisiere Pi-hole auf Version 6 (pihole -up).
  • „antwortet nicht“: Prüfe, ob sich http://<Adresse>/admin von einem Computer im Netzwerk von Gladys öffnen lässt. Namen mit .local funktionieren in der Integration meist nicht: Verwende die IP-Adresse.
  • Protokolle: auf der Seite der Integration in Gladys oder mit docker logs auf dem Host. Dort stehen der Start, jeder verlorene und wieder erreichbare Server, die Probleme (jedes einmal, nicht bei jedem Lesen) und deine Befehle zum Pausieren und Fortsetzen. Starte den Container mit LOG_LEVEL=debug, um jedes Lesen und jeden neuen Versuch zu sehen. Dein Passwort und die API-Sitzung erscheinen nie in den Protokollen.

Grenzen​

  • Nur Pi-hole v6. Eine Integration verwaltet bis zu drei Pi-hole-Server.
  • Die Integration liest jeden Server einmal pro Aktualisierungsintervall (zwei kleine Anfragen, dazu einmal pro Stunde die Versionsprüfung) und hält eine einzige API-Sitzung pro Server: Kein Kontingent von Pi-hole ist gefährdet.
  • Die Zahlen decken die letzten 24 Stunden ab, wie Pi-hole sie zählt; sie beginnen um Mitternacht nicht bei null.
  • Der blockierte Anteil wird im Gerät gerundet (Gladys hat keinen Sensor für Dezimalprozente); das Widget zeigt eine Nachkommastelle.
  • Die Integration verwaltet weder die Sperrlisten noch die erlaubten oder verbotenen Domains noch die Clients von Pi-hole: Nutze dafür die Pi-hole-Oberfläche.
  • Ohne echtes Pi-hole entwickelt: Was nicht auf einem echten Server geprüft werden konnte, steht in der README.

Diese Integration steht in keiner Verbindung zu Pi-hole LLC.

Konfigurationseinstellungen​

Diese Einstellungen fragt Pi-hole in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein Pi-holesectionNeinPi-hole v6 oder neuer. Erstelle in Pi-hole ein App-Passwort: Settings, Web interface / API, Expert-Modus, Configure app password. Bis zu drei Server.
AdressestringJaIP-Adresse oder Name des Pi-hole, mit https:// für HTTPS und :Port, falls nicht Standard.
App-PasswortsecretNeinEin App-Passwort (empfohlen) oder das Passwort der Weboberfläche. Leer, wenn das Pi-hole keins hat.
NamestringNeinName des Geräts in Gladys. Leer: „Pi-hole“ gefolgt von der Adresse.
Zweites Pi-hole (optional)sectionNeinDieselben Felder, für ein weiteres Pi-hole in deinem Netzwerk.
AdressestringNeinIP-Adresse oder Name des Pi-hole, mit https:// für HTTPS und :Port, falls nicht Standard.
App-PasswortsecretNeinEin App-Passwort (empfohlen) oder das Passwort der Weboberfläche. Leer, wenn das Pi-hole keins hat.
NamestringNeinName des Geräts in Gladys. Leer: „Pi-hole“ gefolgt von der Adresse.
Drittes Pi-hole (optional)sectionNeinDieselben Felder, für ein weiteres Pi-hole in deinem Netzwerk.
AdressestringNeinIP-Adresse oder Name des Pi-hole, mit https:// für HTTPS und :Port, falls nicht Standard.
App-PasswortsecretNeinEin App-Passwort (empfohlen) oder das Passwort der Weboberfläche. Leer, wenn das Pi-hole keins hat.
NamestringNeinName des Geräts in Gladys. Leer: „Pi-hole“ gefolgt von der Adresse.
OptionensectionNein
Selbstsignierte Zertifikate akzeptierenbooleanNeinFür https://-Adressen: Pi-hole liefert standardmäßig ein selbstsigniertes Zertifikat. Nur für deine eigenen Server aktivieren.
AktualisierungsintervallselectNeinWie oft die Pi-hole-Server gelesen werden.
Blockierschalter ausschaltenselectNeinPausiert die Blockierung so lange oder bis der Schalter wieder eingeschaltet wird.
Sprache der FunktionsnamenselectNeinNamen der Funktionen beim Hinzufügen eines Geräts und Texte der Szenen-Ereignisse.

So installierst du Pi-hole in Gladys​

  1. Öffne in Gladys Integrationen: Pi-hole erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-pihole:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-pihole.

Pi-hole benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Pi-hole ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂