Intégration domotique Pi-hole, gratuite et open source

Bloqueur Pi-hole : pause depuis le tableau de bord, statistiques 24 h, alertes de mise à jour.
Suivez et pilotez le blocage des publicités de votre Pi-hole depuis Gladys, sur votre réseau local : mettez-le en pause cinq minutes depuis le tableau de bord quand un site ne fonctionne plus, voyez ce qu'il a bloqué sur les dernières 24 heures, et soyez prévenu quand il ne répond plus ou qu'une mise à jour est sortie.
Développée sans le matériel : vos retours sont les bienvenus. Cette intégration a été construite et testée sur les réponses documentées par Pi-hole (la spécification OpenAPI de Pi-hole v6), pas sur un vrai serveur. Si quelque chose ne marche pas comme décrit, dites-le sur le forum Gladys ou dans les issues.
Ce qu'il vous faut
- Gladys Assistant 5.1.0 ou plus récent (5.2.0 ou plus récent pour le bouton Pause… du widget).
- Pi-hole v6 ou plus récent, joignable depuis Gladys. Pi-hole v5 n'est pas pris en charge : il est détecté et signalé dans l'écran Configuration.
- Un mot de passe d'application de votre Pi-hole (conseillé), ou le mot de passe de son interface web, ou rien si votre Pi-hole n'a pas de mot de passe.
Pour créer un mot de passe d'application, ouvrez l'interface web de Pi-hole : Settings → Web interface / API, passez la page en mode Expert (en haut à droite), puis Configure app password → Enable new app password. Copiez le mot de passe affiché : Pi-hole ne le montre qu'une fois. Un mot de passe d'application fonctionne aussi quand la double authentification est active, ce que ne permet pas le mot de passe de l'interface web.
Mise en route
- Installez l'intégration depuis le catalogue de Gladys.
- Dans Configuration, saisissez l'Adresse de votre Pi-hole (par exemple
192.168.1.2, ouhttps://192.168.1.2en HTTPS), son Mot de passe d'application, et si vous le souhaitez un Nom. Deux ou trois serveurs Pi-hole ? Remplissez aussi les sections Deuxième Pi-hole et Troisième Pi-hole. - Enregistrez, puis cliquez sur Tester la connexion : le message sous le bouton indique, pour chaque serveur, s'il répond, sa version et l'état de son blocage.
- Ouvrez l'onglet Découverte : un appareil par Pi-hole. Cliquez sur Ajouter, choisissez une pièce, enregistrez.
Options :
- Accepter les certificats auto-signés : Pi-hole v6 sert le HTTPS avec un
certificat qu'il a signé lui-même. Cochez-la pour utiliser une adresse en
https://; laissez-la décochée pour les adresses enhttp://. - Intervalle de rafraîchissement : la fréquence de lecture des serveurs, de 15 secondes à 5 minutes (1 minute par défaut).
- Éteindre l'interrupteur de blocage : ce que fait l'interrupteur de l'appareil quand vous l'éteignez : mettre le blocage en pause 5 minutes (par défaut), 15, 30 ou 60 minutes, ou le désactiver jusqu'à ce que vous le rallumiez.
- Langue des noms de fonctionnalités : anglais, français, allemand ou espagnol (français par défaut). Les noms sont donnés à l'ajout d'un appareil.
L'appareil de chaque Pi-hole
| Fonctionnalité | Ce que c'est |
|---|---|
| Blocage des publicités | Interrupteur : allumé, le Pi-hole bloque ; éteint, il laisse tout passer |
| Requêtes DNS (24 h) | Requêtes reçues sur les dernières 24 heures |
| Requêtes bloquées (24 h) | Requêtes bloquées sur les dernières 24 heures |
| Part bloquée (24 h) | Part des requêtes bloquées, en %, arrondie |
| Clients actifs (24 h) | Appareils qui ont utilisé le Pi-hole sur les dernières 24 heures |
| Domaines en liste de blocage | Domaines présents dans les listes de blocage du Pi-hole |
| Mises à jour disponibles | Nombre d'éléments de Pi-hole ayant une version plus récente (0 si tout est à jour) |
Les chiffres sont ceux de la page d'accueil de Pi-hole : une fenêtre glissante des dernières 24 heures, pas la journée calendaire. Le badge de l'appareil indique Local quand le Pi-hole répond et Injoignable sinon.
Tableau de bord
Ajoutez le widget Pi-hole à un tableau de bord. Par défaut, il montre tous vos serveurs ensemble ; choisissez-en un dans ses réglages pour ne montrer que celui-là. Mettre en pause un seul Pi-hole sur deux ne change rien : vos appareils interrogent alors l'autre.
Le widget montre les requêtes, les requêtes bloquées et la part bloquée sur les dernières 24 heures, l'état de chaque serveur (blocage actif, en pause avec les minutes restantes, désactivé, injoignable), les clients actifs, les domaines des listes de blocage et les mises à jour disponibles. Ses boutons :
- Pause 5 min et Pause 30 min : mettent le blocage en pause tout de suite ;
- Pause… : ouvre un petit formulaire pour saisir la durée en minutes (Gladys 5.2.0 ou plus récent ; un Gladys plus ancien répond qu'il faut le mettre à jour) ;
- Réactiver : rallume le blocage. Il porte une coche tant que le blocage est actif partout.
Scènes
Déclencheurs
- Blocage Pi-hole mis en pause : le blocage a été désactivé, depuis Gladys
ou ailleurs (l'interface de Pi-hole, la commande
pihole disable, un autre outil). Filtrez par Pi-hole et par origine (Depuis Gladys ou Hors de Gladys). Les actions peuvent lire le nom du Pi-hole et la durée de la pause en minutes (duration_minutes, 0 quand elle n'a pas de fin). - Blocage Pi-hole réactivé : le blocage est de nouveau actif. L'origine dit
si la pause s'est terminée d'elle-même (Fin de la pause), depuis Gladys ou
ailleurs ;
paused_minutesindique combien de temps elle a duré. - Mise à jour de Pi-hole disponible : une nouvelle version de Pi-hole est
sortie (cœur, FTL, interface web, ou l'image Docker quand Pi-hole tourne sous
Docker). Annoncée une fois par version, même après un redémarrage.
updatesliste les nouvelles versions, par exempleCore v6.1.2, FTL v6.3. - Pi-hole ne répond plus : un Pi-hole n'a pas répondu à deux lectures de
suite (la seconde 15 secondes après la première). Le DNS de la maison est
peut-être en panne.
errordit pourquoi, dans la langue de la configuration. - Pi-hole répond de nouveau : il est de retour ;
down_minutesdit au bout de combien de temps.
Un mot de passe refusé ne compte pas comme « ne répond plus » : l'écran Configuration le signale.
Actions
- Mettre le blocage Pi-hole en pause : met le blocage en pause sur un Pi-hole, ou sur tous si le champ est laissé vide, pour un nombre de minutes (5 par défaut, 0 jusqu'à réactivation, une journée au plus). Les actions suivantes peuvent lire combien de serveurs ont été mis en pause.
- Réactiver le blocage Pi-hole : rallume le blocage, sur un Pi-hole ou sur tous.
L'interrupteur Blocage des publicités peut aussi servir avec l'action standard de Gladys qui contrôle un appareil.
Idées de scènes
- Filet de sécurité : une scène chaque soir à 20 h avec Réactiver le blocage Pi-hole, pour qu'un interrupteur éteint « jusqu'à réactivation » ne reste jamais éteint toute la nuit.
- Alerte DNS : Pi-hole ne répond plus → envoyer un message « Pi-hole {{triggerEvent.data.server}} ne répond pas : {{triggerEvent.data.error}} ». Et Pi-hole répond de nouveau → « de retour après {{triggerEvent.data.down_minutes}} min ».
- Qui a mis le blocage en pause ? : Blocage Pi-hole mis en pause avec l'origine Hors de Gladys → envoyer un message avec la durée de la pause.
Dépannage
- « mot de passe refusé » : vérifiez le mot de passe d'application. En créer un nouveau dans Pi-hole remplace l'ancien : recopiez le nouveau dans Gladys.
- « double authentification active » : le mot de passe de l'interface web demande un code de votre téléphone ; utilisez plutôt un mot de passe d'application.
- « certificat refusé » : vous avez saisi une adresse en
https://; cochez Accepter les certificats auto-signés, ou utilisez l'adresse enhttp://. - « l'adresse redirige » : votre Pi-hole renvoie les visiteurs HTTP vers le
HTTPS ; saisissez l'adresse en
https://et cochez Accepter les certificats auto-signés. - « plus de session d'API libre » : Pi-hole accepte un nombre limité de sessions d'API à la fois (16 par défaut). L'intégration n'en garde qu'une par serveur et la ferme à l'arrêt ; d'autres outils peuvent occuper les autres. Pi-hole libère les sessions inutilisées au bout de 30 minutes.
- « Pi-hole v5 n'est pas pris en charge » : mettez Pi-hole à jour en
version 6 (
pihole -up). - « ne répond pas » : vérifiez que
http://<adresse>/admins'ouvre depuis un ordinateur du réseau de Gladys. Les noms en.localne fonctionnent généralement pas dans l'intégration : utilisez l'adresse IP. - Logs : dans la page de l'intégration de Gladys, ou
docker logssur l'hôte. Ils montrent le démarrage, chaque serveur perdu puis revenu, les problèmes (une fois chacun, pas à chaque lecture) et vos commandes de pause et de reprise. Lancez le conteneur avecLOG_LEVEL=debugpour voir chaque lecture et chaque nouvel essai. Votre mot de passe et la session d'API n'apparaissent jamais dans les logs.
Limites
- Pi-hole v6 uniquement. Une intégration gère jusqu'à trois serveurs Pi-hole.
- L'intégration lit chaque serveur une fois par intervalle de rafraîchissement (deux petites requêtes, plus la vérification des versions une fois par heure) et garde une seule session d'API par serveur : aucun quota de Pi-hole n'est menacé.
- Les chiffres couvrent les dernières 24 heures telles que Pi-hole les compte ; ils ne repartent pas de zéro à minuit.
- La part bloquée est arrondie dans l'appareil (Gladys n'a pas de capteur de pourcentage décimal) ; le widget affiche une décimale.
- L'intégration ne gère ni les listes de blocage, ni les domaines autorisés ou refusés, ni les clients de Pi-hole : utilisez pour cela l'interface de Pi-hole.
- Développée sans vrai Pi-hole : ce qui n'a pas pu être vérifié sur un vrai serveur est listé dans le README.
Cette intégration n'est pas affiliée à Pi-hole LLC.
Paramètres de configuration
Voici les paramètres demandés par Pi-hole dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre Pi-hole | section | Non | Pi-hole v6 ou plus récent. Dans Pi-hole, créez un mot de passe d'application : Settings, Web interface / API, mode Expert, Configure app password. Jusqu'à trois serveurs. |
| Adresse | string | Oui | Adresse IP ou nom du Pi-hole, avec https:// pour le HTTPS et :port s'il n'est pas standard. |
| Mot de passe d'application | secret | Non | Un mot de passe d'application (conseillé) ou celui de l'interface web. Vide si le Pi-hole n'en a pas. |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : « Pi-hole » suivi de l'adresse. |
| Deuxième Pi-hole (facultatif) | section | Non | Les mêmes champs, pour un autre Pi-hole de votre réseau. |
| Adresse | string | Non | Adresse IP ou nom du Pi-hole, avec https:// pour le HTTPS et :port s'il n'est pas standard. |
| Mot de passe d'application | secret | Non | Un mot de passe d'application (conseillé) ou celui de l'interface web. Vide si le Pi-hole n'en a pas. |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : « Pi-hole » suivi de l'adresse. |
| Troisième Pi-hole (facultatif) | section | Non | Les mêmes champs, pour un autre Pi-hole de votre réseau. |
| Adresse | string | Non | Adresse IP ou nom du Pi-hole, avec https:// pour le HTTPS et :port s'il n'est pas standard. |
| Mot de passe d'application | secret | Non | Un mot de passe d'application (conseillé) ou celui de l'interface web. Vide si le Pi-hole n'en a pas. |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : « Pi-hole » suivi de l'adresse. |
| Options | section | Non | |
| Accepter les certificats auto-signés | boolean | Non | Pour les adresses en https:// : Pi-hole sert par défaut un certificat auto-signé. À cocher pour vos propres serveurs seulement. |
| Intervalle de rafraîchissement | select | Non | Fréquence de lecture des serveurs Pi-hole. |
| Éteindre l'interrupteur de blocage | select | Non | Met le blocage en pause pour cette durée, ou jusqu'à ce que l'interrupteur soit rallumé. |
| Langue des noms de fonctionnalités | select | Non | Noms donnés aux fonctionnalités à l'ajout d'un appareil, et textes des événements de scène. |
Comment installer Pi-hole dans Gladys
- Dans Gladys, ouvrez Intégrations : Pi-hole apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-pihole:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-pihole.
Pi-hole nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
Pi-hole est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations externes
- Découvrir les intégrations natives intégrées à Gladys
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation