[Modul] IPS-PiHole

IPS-PiHole
Mit diesem Modul ist es möglich, Pi-hole zu überwachen und steuern.

Funktionsumfang

[ul]
[li]Aktivieren und Deaktivieren des Dienstes[/li][li]Anzeige der Statistik[/li][/ul]
Installation

Einrichtung in IP-Symcon

Github Repository in IP-Symcon über Kerninstanzen -> Modules -> Hinzufügen einrichten

https://github.com/Schnittcher/IPS-PiHole.git

Einrichtung der Instanzen

IPS-PiHole
Die Pi-hole Instanz wird im Objektbaum erzeugt.

Feld Erklärung
IP-Adresse des Pi-holes Hier die IP-Adresse des Pi-hole Servers eintragen
Port des Pi-hole Webinterfaces Hier wird der Port vom Webinterface angegeben, Default ist 80
API Token des Pi-holes Im Webinterface unter Settings -> API / Web interface zu finden
IntervalBox Hier kann de Zeit eingestellt werden, wie oft das Modul die Daten vom Pi-hole abfragt.

Screenshot

Das Modul inkl. Doku ist auf Github zu finden: GitHub - Schnittcher/IPS-PiHole

Grüße,
Kai

Changelog
15.02.2019 - Version 1.5

[ul]
[li]GUID Fix[/li][/ul]
17.08.2018 - Version 1.5

[ul]
[li]Abfragen zwischengespeichert[/li][li]Gesamte DNS Abfragen[/li][li]Gravitiy zuletzt aktualisiert[/li][/ul]
16.08.2018 - Version 1.4

[ul]
[li]Übersetzungen hinzugefügt[/li][li]Variable prozentualer Anteil heute gesperrter Seiten hinzugefügt[/li][/ul]
15.08.2018 - Version 1.3

[ul]
[li]Redundanten Code rausgeworfen[/li][li]Fix - Überprüfung ob Request Rückgabewert ungleich NULL ist[/li][/ul]
14.08.2018 - Version 1.2

[ul]
[li]Fix - Update Timer[/li][li]Fix - Error Handling (Meldung wird im Webfront ausgegeben), falls Pi-hole nicht erreichbar ist.[/li][/ul]
14.08.2018 - Version 1.1

[ul]
[li]Fix - Wenn keine IP angegeben ist wird der Timer nicht aktiviert.[/li][li]Fix - Fehlermeldung im Debug, wenn keine Verbindung zur API hergestellt werden kann.[/li][li]Fix - IP und Port Namen geändert.[/li][/ul]

Erzeugt im nicht konfigurierten Zustand, bereits während der Einrichtung

14.08.2018 23:23:19*| TimerPool*| Pi-hole (Pih_updateStatus): <br />
<b>Warning</b>:  file_get_contents(http://:80/admin/api.php?status&auth=): failed to open stream: operation failed in <b>/var/lib/symcon/modules/IPS-PiHole/IPS-PiHole/module.php</b> on line <b>45</b><br />
<br />
<b>Warning</b>:  file_get_contents(http://:80/admin/api.php?summaryRaw&auth=): failed to open stream: operation failed in <b>/var/lib/symcon/modules/IPS-PiHole/IPS-PiHole/module.php</b> on line <b>45</b><br />

Und Copy&Paste Fehler „TV Headend Settings“ im Formular ;).

Keine Fehlerbehandlung bei file_get_contents und aktivieren des Intervall auch wenn PihIP (warum nicht ‚Host‘ wie bei anderen Modulen?) nicht gesetzt ist.
Was war den da los Kai? Solche Fehler machst du doch sonst nicht. :wink:
Michael

Und die IP darauf prüfen, dass es eine IP ist ;). Der blöde Anwender hat eine URL mit http:// eingetragen, ich kann auch copy&paste Error :banghead:.

Hallo,

hm oh Gott! Sorry.
Wird natürlich korrigiert…
Keine Ahnung was da los war… Hab mich schon gewundert, wieso bei mir beim testen keine Fehler gekommen sind. :smiley:

Ich glaube jeder hat mal einen schlechten Tag, ich habe meine jetzt aufgebraucht. :smiley:

Grüße,
Kai

Sorry, ich musste sofort installieren, da mich das ständige Einloggen und Deaktivieren genervt hat. Speziell bei meiner Tageszeitung sorgt pi-hole für extreme Ladezeiten, die haben irgendeinen Werbemist drin, der das Laden der Seite extrem verzögert.

Mein erster Versuch mit einem file_get… auf die URL der API liegt schon in einem Testscript :eek:.

Beim Aus- und Einschalten solltest du den Status auch direkt setzen und nicht erst die Rückmeldung abwarten, dann vergehen „Intervall“-Sekunden bis die Anzeige stimmt.

Hallo,

so Version 1.1 ist online.
Naja, wenn ich schalte, dauert es wirklich so lange, zumindest bei mir. Erst wenn der Status wirklich un IPS umspringt ist auch der Dienst gestoppt!

Grüße,
Kai

Ganz schlechte Idee.
Was ist mit Hostnamen?
Auf leer prüfen reicht.

Das hat er aktuell in RequestAction.
Dort ist das aber falsch.
Das muss in setStatus (eigentlich fangen InstanzFunktionen mit einem großen Buchstaben an; da SetStatus schon vergeben ist, schlage ich SetActive vor. Und für getStatus ist RequestState auch quasi IPS Standard :wink: ).
Und liefert der Response nicht zurück ob das starten/stoppen erfolgreich war?
Dies kann man bestimmt nutzen um die Variable zu setzen oder einen Fehler auszugeben.
Michael

Es ist einfach zu spät, natürlich gehört das in setStatus()…
Und auch das Thema hatten wir schon, das man setStatus() nicht nutzen sollte… :banghead::banghead::banghead::banghead:

Weiß auch nicht was heute los ist. :confused:

Ja das tut er, jetzt nimmst du mich aber auseinander. :smiley: Ich brauch nur auf $data[„status“] prüfen und wenn dort enabled drin steht, die Bool Variable auf true setzen! Sonst auf false…

Grüße,
Kai

Jep :smiley:
Gute Nacht,
Michael

Ihr habt recht, aber … :smiley:

15.08.2018 00:15:28 | PHPLibrary | Parameter value in function Pih_setStatus has no type hint. Please use either 'bool', 'int', 'float' or 'string'.

direkt nach dem Modulupdate.

Das weiß ich, muss ich bei allen Modulen noch anpassen. :slight_smile:

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Beim Update wurde die IP gelöscht :eek: und ich wundere mich bei mehreren Versuchen, warum nicht ein-/ausgeschaltet wird.

Hallo,

ja, weil ich die Namen (Host und Port) angepasst habe.

Grüße,
Kai

Hallo,

so die Type Hints sind auch drin, redundanten Code habe ich rausgeworfen und die Request Abfrage bzw. das Ergebnis davon wird jetzt auf ungleich NULL überprüft.

Grüße,
Kai

Hallo Kai,

klasse - das klingt sehr interessant - lässt du PI-hole auf dem selben PI laufen wie ip-symcon?

Irgendwie ärgere ich mich immer wieder, dass der symcon-pi nur vor sich hindümpelt und würde ihn gern mehr machen lassen.

Gruß Steffan

Hallo,

das funktioniert.
Allerdings hatte ich Probleme Pi-hole auf einem Pi zu installieren, wo schon piVCCU lief.

Grüße,
Kai


15.08.2018 14:48:06 | ScriptEngine | Result for Event 16804
<br />
<b>Fatal error</b>:  Uncaught Error: Call to protected method IPSModule::setStatus() from context '' in /var/lib/symcon/scripts/__generated.inc.php:23
Stack trace:
#0 /var/lib/symcon/scripts/59385.ips.php(10): Pih_setStatus(24462, false)
#1 {main}
  thrown in <b>/var/lib/symcon/scripts/__generated.inc.php</b> on line <b>23</b><br />

beim Versuch zu Schalten

Pih_setStatus(24462 /*[IT\PI-Hole\Pi-hole]*/, true);