Pi-hole

Pi-hole (ab Version 6) über die REST-API in Symcon überwachen und steuern.

Stable 2.0Beta 2.01.478 Downloads114 in 30 Tagen

Privat kostenlos Gewerblich auf Anfrage Anfrage senden

Diese Dokumentation beschreibt immer die neueste Version des Moduls, aktuell 2.0 im Kanal Beta.

PiHole Filters

Verwaltet Domains (Allow- und Denylist), Gruppen, Clients und Blocklisten des Pi-holes und sucht Domains in den Listen. Die Instanz zeigt die Anzahl der Einträge als Variablen. Sie braucht den PiHole Splitter und wird manuell angelegt. Die Kachel zeigt die Anzahl der Blocklisten, Gruppen, Clients sowie der erlaubten und gesperrten Domains.

Inhaltsverzeichnis

1. Konfiguration

FeldBeschreibung
AktualisierungsintervallAbstand in Sekunden, in dem die Anzahlen gelesen werden. Standard ist 300, 0 schaltet die Abfrage ab.

2. Variablen

VariableIdentTypBeschreibung
BlocklistenListsGanzzahlAnzahl der abonnierten Listen.
GruppenGroupsGanzzahlAnzahl der Gruppen.
ClientsClientsGanzzahlAnzahl der verwalteten Clients.
Erlaubte Domains (exakt)AllowedExactGanzzahlEinträge der Allowlist.
Gesperrte Domains (exakt)DeniedExactGanzzahlEinträge der Denylist.
Erlaubte Domains (Regex)AllowedRegexGanzzahlRegex-Einträge der Allowlist.
Gesperrte Domains (Regex)DeniedRegexGanzzahlRegex-Einträge der Denylist.

3. Funktionen

Beim Aufruf aus Skripten müssen alle Parameter angegeben werden, Standardwerte gelten dort nicht. Übliche Werte: Gruppen [0], Aktiv true, Anzahl 10, Listentyp block, alle übrigen optionalen Parameter leer (''), 0 oder false. Alle Funktionen außer Update liefern die Antwort des Pi-holes als JSON-Text. Bei einem Fehler enthält die Antwort ein Objekt error. Gruppen werden als JSON-Array mit Gruppennummern übergeben, zum Beispiel [0] für die Standardgruppe.

void PIHFILTER_Update(integer $InstanzID); Liest die Anzahlen. Läuft automatisch im eingestellten Intervall.

Domains ($Type ist allow oder deny, $Kind ist exact oder regex)

string PIHFILTER_GetDomains(integer $InstanzID, string $Type, string $Kind, string $Domain); Domains abfragen. Ohne Angaben kommen alle, mit $Type, $Kind und $Domain wird eingegrenzt.

string PIHFILTER_AddDomain(integer $InstanzID, string $Type, string $Kind, string $Domain, string $Comment, string $Groups, boolean $Enabled); string PIHFILTER_UpdateDomain(integer $InstanzID, string $Type, string $Kind, string $Domain, string $Comment, string $Groups, boolean $Enabled, string $NewType, string $NewKind); string PIHFILTER_DeleteDomain(integer $InstanzID, string $Type, string $Kind, string $Domain); Domain hinzufügen, ändern (mit $NewType und $NewKind auch verschieben) und löschen.

string PIHFILTER_DeleteDomains(integer $InstanzID, string $Items); Mehrere Domains löschen. $Items ist ein JSON-Array mit Einträgen wie {"item":"example.com","type":"deny","kind":"exact"}.

Gruppen

string PIHFILTER_GetGroups(integer $InstanzID, string $Name); string PIHFILTER_AddGroup(integer $InstanzID, string $Name, string $Comment, boolean $Enabled); string PIHFILTER_UpdateGroup(integer $InstanzID, string $Name, string $Comment, boolean $Enabled, string $NewName); string PIHFILTER_DeleteGroup(integer $InstanzID, string $Name); string PIHFILTER_DeleteGroups(integer $InstanzID, string $Items); Gruppen abfragen, anlegen, ändern (auch umbenennen) und löschen. $Items ist ein JSON-Array wie [{"item":"Kinder"}].

Clients

string PIHFILTER_GetClients(integer $InstanzID, string $Client); string PIHFILTER_GetClientSuggestions(integer $InstanzID); string PIHFILTER_AddClient(integer $InstanzID, string $Client, string $Comment, string $Groups); string PIHFILTER_UpdateClient(integer $InstanzID, string $Client, string $Comment, string $Groups); string PIHFILTER_DeleteClient(integer $InstanzID, string $Client); string PIHFILTER_DeleteClients(integer $InstanzID, string $Items); Clients (IP, MAC, Hostname oder Schnittstelle) abfragen, vorschlagen lassen, anlegen, ändern und löschen. $Items ist ein JSON-Array wie [{"item":"192.0.2.10"}].

Listen ($Type ist allow oder block)

string PIHFILTER_GetLists(integer $InstanzID, string $Address, string $Type); string PIHFILTER_AddList(integer $InstanzID, string $Address, string $Type, string $Comment, string $Groups, boolean $Enabled); string PIHFILTER_UpdateList(integer $InstanzID, string $Address, string $Type, string $Comment, string $Groups, boolean $Enabled); string PIHFILTER_DeleteList(integer $InstanzID, string $Address, string $Type); string PIHFILTER_DeleteLists(integer $InstanzID, string $Items); Listen abfragen, hinzufügen, ändern und löschen. Nach dem Hinzufügen die Gravity aktualisieren (Instanz “PiHole Maintenance”). $Items ist ein JSON-Array wie [{"item":"https://example.com/list.txt","type":"block"}].

Suche

string PIHFILTER_Search(integer $InstanzID, string $Domain, boolean $Partial, integer $Limit); Sucht eine Domain in den Listen, mit $Partial auch Teiltreffer.

4. Spenden

Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

PayPal Amazon Wunschzettel

5. Lizenz

CC BY-NC-SA 4.0