Blocky Smart-Home-Integration, kostenlos und Open Source

DNS-Werbeblocker Blocky: Blockierpause nach Gruppe, Statistiken, Listen aktualisieren.
Verfolge und steuere deinen DNS-Proxy und Werbeblocker Blocky aus Gladys, über dein lokales Netzwerk: Pausiere seine Blockierung für fünf Minuten über das Dashboard, wenn eine Website nicht funktioniert, pausiere nur bestimmte Listengruppen aus einer Szene, aktualisiere die Listen, sieh seine Anfragen der letzten Stunde und erfahre, wenn er nicht mehr antwortet.
Getestet mit einem echten Blocky v0.35 (das offizielle Docker-Image), noch nicht mit einer echten Gladys-Installation: Rückmeldungen sind willkommen. Wenn etwas nicht wie beschrieben funktioniert, sag es 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).
- Blocky mit seinem HTTP-Port für Gladys erreichbar (
ports: http: 4000inconfig.yml). Die REST-API von Blocky hat kein Passwort: Gladys spricht sie direkt an, wie der Befehlblocky. - Für die Statistiken den aktivierten Prometheus-Endpunkt von Blocky:
prometheus:
enable: true
Ohne ihn hat das Gerät nur den Blockierschalter und das Widget nur den Status und die Tasten.
Einrichtung
- Installiere die Integration aus dem Gladys-Katalog.
- Gib unter Konfiguration die Adresse deines Servers ein (zum
Beispiel
192.168.1.2: Port 4000 wird ergänzt; oder eine vollständige Adresse wiehttp://192.168.1.2:4000oderhttps://dns.example.net) und optional einen Namen. Zwei oder drei Server? Fülle auch die Abschnitte Zweiter Server und Dritter Server aus. - Speichere und klicke dann auf Verbindung testen: Die Meldung unter der Taste sagt für jeden Server, ob er antwortet, seine Version, den Status seiner Blockierung und ob die Statistiken aktiv sind.
- Öffne den Tab Entdecken: ein Gerät pro Server. Klicke auf Hinzufügen, wähle einen Raum und speichere.
Optionen:
- Selbstsignierte Zertifikate akzeptieren: für eine
https://-Adresse (der HTTPS-Port von Blocky) mit selbstsigniertem Zertifikat. Fürhttp://-Adressen ausgeschaltet lassen. - Aktualisierungsintervall: wie oft die Server gelesen werden, von 30 Sekunden (Standard) bis 5 Minuten.
- Blockierschalter ausschalten: was der Schalter des Geräts beim Ausschalten tut: die Blockierung 5 Minuten (Standard), 15, 30 oder 60 Minuten pausieren oder sie bis zum Wiedereinschalten deaktivieren.
- 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 Servers
| Funktion | Was es ist |
|---|---|
| Blockierung | Schalter: an, Blocky blockiert die gelisteten Domains; aus, alles kommt durch |
| DNS-Anfragen (letzte Stunde) | Empfangene Anfragen der letzten 60 Minuten |
| Blockierte Anfragen (letzte Stunde) | Blockierte Anfragen der letzten 60 Minuten |
| Anteil blockiert (letzte Stunde) | Anteil der blockierten Anfragen in %, gerundet |
| Cache-Trefferquote (letzte Stunde) | Anteil der weitergeleiteten Anfragen, die der Cache beantwortet hat, in %, gerundet |
| Blockierte Domains | Einträge der Blocklisten, alle Gruppen zusammen |
| Version | Die installierte Version von Blocky |
Alle Funktionen außer Blockierung kommen vom Prometheus-Endpunkt. Blocky zählt seit seinem Start; die Integration berechnet die letzte Stunde aus zwei Abfragen im Abstand von einer Stunde. Direkt nach dem Start von Gladys, der Integration oder Blocky erscheinen die Zahlen bei der zweiten Abfrage und decken eine kürzere Zeit ab, bis zu einer Stunde. Das Ein- oder Ausschalten von Prometheus fügt diese Funktionen hinzu oder entfernt sie: Gladys bietet dann im Tab Entdecken an, das Gerät zu Aktualisieren.
Der Schalter steht auf aus, sobald Blocky seine Blockierung als deaktiviert meldet, auch wenn nur einige Gruppen pausiert sind. Hat eine Pause eine Dauer, schaltet Blocky die Blockierung am Ende selbst wieder ein, und der Schalter folgt. Das Abzeichen des Geräts zeigt Lokal, wenn der Server antwortet, und Nicht erreichbar, wenn nicht.
Dashboard
Füge das Widget Blocky zu einem Dashboard hinzu. Standardmäßig zeigt es alle deine Server zusammen; wähle in seinen Einstellungen einen aus, um nur diesen zu zeigen. Einen Server von zweien zu pausieren ändert nichts: Deine Geräte fragen dann den anderen.
Das Widget zeigt die Anfragen, die blockierten Anfragen und den blockierten Anteil der letzten Stunde, den Status jedes Servers (blockiert, pausiert mit den verbleibenden Minuten, deaktiviert, nicht erreichbar), die Gruppen einer Pause, die nicht alle umfasst, die Cache-Trefferquote und die blockierten Domains. Seine Tasten:
- Pause 5 min und Pause 30 min: pausieren die ganze 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 aktualisiert werden muss);
- Fortsetzen: schaltet die Blockierung wieder ein. Die Taste zeigt ein Häkchen, solange die Blockierung überall aktiv ist.
Szenen
Auslöser
- Blocky-Blockierung pausiert: Die Blockierung wurde ausgeschaltet, über
Gladys oder anderswo (der Befehl
blocky, ein anderes Werkzeug). Filter nach Server und nach Ursprung (Von Gladys oder Außerhalb von Gladys). Die Aktionen können den Namen des Servers, die Dauer der Pause in Minuten (duration_minutes, 0 ohne Ende) und die pausierten Gruppen lesen (groups; eine Pause der ganzen Blockierung listet alle Gruppen, dazudefault). - Blocky-Blockierung fortgesetzt: Die Blockierung ist wieder aktiv. Der
Ursprung sagt, ob die Pause von selbst endete (Ende der Pause), über Gladys
oder anderswo;
paused_minutessagt, wie lange sie dauerte. - Blocky antwortet nicht mehr: Ein Server hat zwei Abfragen in Folge nicht
beantwortet (die zweite 15 Sekunden nach der ersten). Das DNS deines Hauses
ist vielleicht ausgefallen.
errorsagt warum, in der Sprache der Konfiguration. - Blocky antwortet wieder: Er ist zurück;
down_minutessagt, nach wie langer Zeit.
Aktionen
- Blocky-Blockierung pausieren: pausiert die Blockierung auf einem Server
oder auf allen, wenn das Feld leer bleibt, für eine Anzahl Minuten (5
standardmäßig, 0 bis zum Fortsetzen, höchstens ein Tag). Gruppen: leer
lassen, um die ganze Blockierung zu pausieren, oder Namen von Gruppen deiner
denylistsdurch Kommas getrennt eingeben (zum Beispielads), um nur diese zu pausieren. Eine neue Pause ersetzt die laufende. Die nächsten Aktionen können lesen, wie viele Server pausiert wurden. - Blocky-Blockierung fortsetzen: schaltet die Blockierung wieder ein, auf einem Server oder auf allen.
- Blocky-Listen aktualisieren: lädt die Block- und Erlaubnislisten sofort neu herunter, zum Beispiel nach dem Bearbeiten einer Listendatei.
- DNS-Cache von Blocky leeren: leert den DNS-Cache, zum Beispiel nach dem Ändern eines Eintrags, damit die nächsten Anfragen frisch beantwortet werden.
- Blocky-Statistiken lesen: liest die Anfragen der letzten Stunde in einen
Satz, etwa „In der letzten Stunde 1.234 DNS-Anfragen, davon 123 blockiert
(10 %).“, in der Sprache der Konfiguration. Die nächsten Aktionen können ihn
senden (
sentence) oder die Zahlen verwenden (queries_last_hour,blocked_last_hour,blocked_percent,blocking_enabled). Braucht den Prometheus-Endpunkt.
Der Schalter Blockierung lässt sich auch mit der Standardaktion von Gladys verwenden, die ein Gerät steuert.
Szenen-Ideen
- Spielzeit: jeden Mittwoch um 14:00 Blocky-Blockierung pausieren für
120 Minuten mit der Gruppe
games: Die Spieleseiten öffnen sich für zwei Stunden, die Werbung bleibt blockiert, und die Blockierung kommt von selbst zurück. - DNS-Alarm: Blocky antwortet nicht mehr → eine Nachricht senden „Blocky {{triggerEvent.data.server}} antwortet nicht: {{triggerEvent.data.error}}“. Und Blocky antwortet wieder → „zurück nach {{triggerEvent.data.down_minutes}} min“.
- Sicherheitsnetz: eine Szene jeden Abend um 20:00 mit Blocky-Blockierung fortsetzen, damit ein „bis zum Wiedereinschalten“ ausgeschalteter Schalter nie die ganze Nacht aus bleibt.
Fehlerbehebung
- „keine Blocky-API unter dieser Adresse“: Dort antwortet etwas anderes,
oder der Port ist der DNS-Port. Gib den HTTP-Port von Blocky ein
(
ports: http:inconfig.yml, oft 4000):192.168.1.2oderhttp://192.168.1.2:4000. - „unbekannte Gruppe“: Das Feld Gruppen der Pause nennt eine Gruppe, die
nicht in den
denylistsvonconfig.ymlsteht (Groß- und Kleinschreibung zählt). - Keine Statistiken: Aktiviere
prometheus: enable: trueinconfig.ymlund starte Blocky neu. Verbindung testen meldet „Statistiken aktiv“, sobald es klappt. - „Zertifikat abgelehnt“: Du hast eine
https://-Adresse eingegeben; aktiviere Selbstsignierte Zertifikate akzeptieren oder verwende diehttp://-Adresse. - „die Adresse leitet um“: Gib die
https://-Adresse ein. - „ein Passwort schützt diese Adresse“: Vor Blocky steht ein Reverse Proxy mit Anmeldung; gib Gladys stattdessen die direkte Adresse von Blocky.
- „antwortet nicht“: Prüfe, ob sich
http://<adresse>:4000/api/blocking/statusvon einem Computer im Netzwerk von Gladys öffnen lässt. Namen auf.localfunktionieren in der Integration meist nicht: Verwende die IP-Adresse. - Protokolle: auf der Seite der Integration in Gladys oder mit
docker logsauf dem Host. Die Protokolle zeigen den Start, jeden verlorenen und wiedergefundenen Server, die Probleme (je einmal, nicht bei jeder Abfrage) und deine Befehle. Starte den Container mitLOG_LEVEL=debug, um jede Abfrage und jeden neuen Versuch zu sehen.
Grenzen
- Eine Integration verwaltet bis zu drei Server. Blocky-Instanzen, die ihren Status über Redis teilen, pausieren gemeinsam: Eine zu pausieren genügt.
- Die Integration liest jeden Server einmal pro Aktualisierungsintervall (zwei kleine Anfragen: der Status der Blockierung und die Prometheus-Seite): Kein Kontingent ist betroffen.
- Die Zahlen betreffen nur die letzte Stunde; Gladys speichert ihren Verlauf.
- Die Anteile sind im Gerät gerundet (Gladys hat keinen Sensor für Dezimalprozente); das Widget zeigt eine Nachkommastelle für den blockierten Anteil.
- Die Integration ändert weder die Listen noch die Client-Gruppen noch die
Konfiguration von Blocky: Verwende dafür
config.yml.
Diese Integration ist nicht mit Blocky oder seinen Autoren verbunden.
Konfigurationseinstellungen
Diese Einstellungen fragt Blocky in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein Blocky-Server | section | Nein | Die REST-API von Blocky auf seinem HTTP-Port (ports: http: 4000 in config.yml). Für die Statistiken aktiviere auch prometheus (enable: true). Bis zu drei Server. |
| Adresse | string | Ja | IP-Adresse oder Name des Servers (standardmäßig HTTP-Port 4000) oder eine vollständige URL wie http://192.168.1.2:4000. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: „Blocky“ gefolgt von der Adresse. |
| Zweiter Server (optional) | section | Nein | Dieselben Felder, für einen weiteren Blocky-Server in deinem Netzwerk. |
| Adresse | string | Nein | IP-Adresse oder Name des Servers (standardmäßig HTTP-Port 4000) oder eine vollständige URL wie http://192.168.1.2:4000. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: „Blocky“ gefolgt von der Adresse. |
| Dritter Server (optional) | section | Nein | Dieselben Felder, für einen weiteren Blocky-Server in deinem Netzwerk. |
| Adresse | string | Nein | IP-Adresse oder Name des Servers (standardmäßig HTTP-Port 4000) oder eine vollständige URL wie http://192.168.1.2:4000. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: „Blocky“ gefolgt von der Adresse. |
| Optionen | section | Nein | |
| Selbstsignierte Zertifikate akzeptieren | boolean | Nein | Für https://-Adressen (HTTPS-Port von Blocky) mit selbstsigniertem Zertifikat. Nur für deine eigenen Server aktivieren. |
| Aktualisierungsintervall | select | Nein | Wie oft die Blocky-Server gelesen werden. |
| Blockierschalter ausschalten | select | Nein | Pausiert die Blockierung so lange oder bis der Schalter wieder eingeschaltet wird. |
| Sprache der Funktionsnamen | select | Nein | Namen der Funktionen beim Hinzufügen eines Geräts und Texte der Szenen-Ereignisse. |
So installierst du Blocky in Gladys
- Öffne in Gladys Integrationen: Blocky erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-blocky:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-blocky.
Blocky 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
Blocky 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.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation