FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: fh168 am 08 Februar 2018, 16:46:32

Titel: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: fh168 am 08 Februar 2018, 16:46:32
Ich habe in meinem Blog https://blog.moneybag.de/fhem-pi-hole-statistiken-auslesen/ (https://blog.moneybag.de/fhem-pi-hole-statistiken-auslesen/) drüber geschrieben, aber vielleicht ist es hier passender:

Wer Pi-Hole benutzt, kann auf Fhem sich die Statistiken anzeigen lassen. Anzahl der geblockten Sites usw.
Die IP muss noch auf die Pi-Hole IP geändert werden. Die Werte liegen dann als Readings vor.

define pihole HTTPMOD http://192.168.178.152/admin/api.php?summary 60
attr pihole userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex
attr pihole reading01Name domains_being_blocked
attr pihole reading01Regex "domains_being_blocked":"(.*?)"
attr pihole reading02Name dns_queries_today
attr pihole reading02Regex "dns_queries_today":"(.*?)"
attr pihole reading03Name ads_blocked_today
attr pihole reading03Regex "ads_blocked_today":"(.*?)"
attr pihole reading04Name ads_percentage_today
attr pihole reading04Regex "ads_percentage_today":"(.*?)"
attr pihole reading05Name unique_domains
attr pihole reading05Regex "unique_domains":"(.*?)"
attr pihole reading06Name queries_forwarded
attr pihole reading06Regex "queries_forwarded":"(.*?)"
attr pihole reading07Name queries_cached
attr pihole reading07Regex "queries_cached":"(.*?)"
attr pihole reading08Name clients_ever_seen
attr pihole reading08Regex "clients_ever_seen":"(.*?)"
attr pihole reading09Name unique_clients
attr pihole reading09Regex "unique_clients":"(.*?)"
attr pihole reading10Name status
attr pihole reading10Regex "status":"(.*?)"
attr pihole verbose 0

Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: ThomasMagnum am 09 Februar 2018, 09:27:15
Es geht sogar noch einfacher:

defmod PiHoleInfo HTTPMOD http://127.0.0.1/admin/api.php 300
attr PiHoleInfo userattr getURL
attr PiHoleInfo extractAllJSON 1
attr PiHoleInfo getURL http://127.0.0.1/admin/api.php


Die IP st natürlich anzupassen. Das hatte ich vor einiger Zeit mal irgendwo aufgeschnappt.

Dann noch einfach:
attr PiHoleInfo stateFormat <p align="left"><b>DNS Anfragen:</b> &emsp;;&emsp;;&emsp;;&emsp;; dns_queries_today <br> <b>Geblockte Seiten:</b> &emsp;; ads_blocked_today (ads_percentage_today %)

Und du hast eine übersichtliche Anzeige der wichtigsten Werte.

Gruß, Thomas
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: C0mmanda am 30 Juli 2019, 07:09:35
Moin,

muss den alten Thread mal hervorkramen..

Einbindung von PiHole klappt einwandfrei, aber ein Problem habe ich:

Wenn der FasterThanLight (FTL) DNS aus irgendeinem Grund down ist liefert PiHole per JSON "FTLnotrunning 1" zurück.
Wenn der FTL läuft allerdings keine "0" sondern einfach gar nichts.

Wie bringe ich FHEM bzw Httpmod bei wenn "gar nichts" kommt das Reading FTLnotrunning auf "0" zu setzen?

Danke.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 30 Juli 2019, 09:58:17
ZitatWenn der FasterThanLight (FTL) DNS aus irgendeinem Grund down ist liefert PiHole per JSON "FTLnotrunning 1" zurück.
Wenn der FTL läuft allerdings keine "0" sondern einfach gar nichts.
Ich habe dieses Reading überhaupt nicht; was hat es mit diesem Reading auf sich?

Viele​ Grüße​ Gisbert​
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Christoph Morrison am 30 Juli 2019, 16:59:44
Zitat von: Gisbert am 30 Juli 2019, 09:58:17
Ich habe dieses Reading überhaupt nicht; was hat es mit diesem Reading auf sich?

FTLnotrunning kommt nur wenn FTL nicht läuft, sonst existiert der Wert nicht und wenn dein FTL noch nie nicht funktioniert hat, hast du den auch noch nie bekommen.

Zitat von: C0mmanda am 30 Juli 2019, 07:09:35
Wie bringe ich FHEM bzw Httpmod bei wenn "gar nichts" kommt das Reading FTLnotrunning auf "0" zu setzen?

userReadings?
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: JoWiemann am 30 Juli 2019, 17:27:11

attr PiHoleInfo userReadings myFTLnotrunning  {ReadingsVal($name,"FTLnotrunning","0")}
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: C0mmanda am 05 August 2019, 15:09:35
Zitat von: JoWiemann am 30 Juli 2019, 17:27:11

attr PiHoleInfo userReadings myFTLnotrunning  {ReadingsVal($name,"FTLnotrunning","0")}


Vielen Dank!
Manchmal kommt man auf die einfachsten Lösungen nicht... meine ist etwas aufwändiger und weniger elegant geworden  :-\

FTL_aktive:status:.* {my $FTL = ReadingsVal($name,"FTLnotrunning",0); ($FTL == 1) ? 'on' : 'off'; }
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: FHEMAN am 29 August 2019, 00:02:47
Man kann den Werbeblocker über die API übrigens (auch temporär) deaktivieren, was seltsamerweise eine ganz wichtige Anforderung meiner Liebsten darstellt... ::))

GetHttpFile("pi.hole", "/admin/api.php?disable=3600&auth=PASSWORDHASH_aus_setupVars.conf");

Mit dem Satz "Computer, Werbeblocker aus" können bei uns nun eine Stunde lang wieder Payback Punkte gesammelt werden...
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Mumpitz am 29 August 2019, 06:03:12
Zitat von: FHEMAN am 29 August 2019, 00:02:47
Man kann den Werbeblocker über die API übrigens (auch temporär) deaktivieren, was seltsamerweise eine ganz wichtige Anforderung meiner Liebsten darstellt... ::))

GetHttpFile("pi.hole", "/admin/api.php?disable=3600&auth=PASSWORDHASH_aus_setupVars.conf");

Mit dem Satz "Computer, Werbeblocker aus" können bei uns nun eine Stunde lang wieder Payback Punkte gesammelt werden...

Super, genau danach habe ich gesucht!!!
Danke...
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 01 September 2019, 08:58:10
Zitat von: FHEMAN am 29 August 2019, 00:02:47
Man kann den Werbeblocker über die API übrigens (auch temporär) deaktivieren, was seltsamerweise eine ganz wichtige Anforderung meiner Liebsten darstellt... ::))

GetHttpFile("pi.hole", "/admin/api.php?disable=3600&auth=PASSWORDHASH_aus_setupVars.conf");

Hallo FHEMAN,

ich weiß hiermit:
PASSWORDHASH_aus_setupVars.conf
noch nichts anzufangen. Ist das das Passwort, was man zum login bei pi-hole benutzt?

Wo wird "GetHttpFile..." eingegeben. Im Browser, in der Kommandozeile in Fhem?

Viele​ Grüße​ Gisbert​
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: CoolTux am 01 September 2019, 10:18:11
Es gibt wohl auf dem PiHole eine Datei setupVars.conf dort steht ein Passwort Hash drin. Der soll wohl an die Stelle.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 01 September 2019, 10:47:38
Hallo CoolTux,

die Datei setupVars.conf in /etc/pihole habe ich gefunden. Dort steht folgendes drin:
WEBPASSWORD=d846802.... (ca. 30-40 Stellen lang)
Ist damit der Passwort Hash gemeint?

Bleibt noch die Frage, an welcher Stelle ich GetHttpFile... eintragen muss.
So wie er geschrieben ist, funktioniert er weder in der Fhem-Kommandozeile noch im Webbrowser.

Viele Grüße Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: FHEMAN am 01 September 2019, 11:14:46
Moin Gisbert,
es ist genau diese lange Zahlen-/Buchstabenkonfiguration in der setupVars.conf im pihole Verzeichnis.
Das GetHttpFile müsste laut https://wiki.fhem.de/wiki/HTML_Aufruf_senden eigentlich schon so funktionieren.
Hier mein notify:

Pihole.Off:off {
GetHttpFile("pi.hole", "/admin/api.php?disable=3600&auth=2345645634523456345634567345");
sayex("Werbeblocker aus", "SB.Essen");
}


//edit: Denk dran, im ersten Parameter kein HTTP(S) voranzusetzen.
//edit2: oder besser noch nicht blockierend:

HttpUtils_NonblockingGet( { url=>"http://pi.hole/admin/api.php?disable=3600&auth=123456789123456782345678", callback=>sub() { } });


Schönen Sonntag!
Ronny
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Supadone am 03 September 2019, 08:45:09
Zitat von: Gisbert am 01 September 2019, 10:47:38
Bleibt noch die Frage, an welcher Stelle ich GetHttpFile... eintragen muss.
So wie er geschrieben ist, funktioniert er weder in der Fhem-Kommandozeile noch im Webbrowser.

Ich hab mir einfach ein notify erstellt:

defmod Pi_Hole_deaktivieren notify Pi_Hole_dummy:off  { GetHttpFile("pi.hole", "/admin/api.php?disable=3600&auth=XXX") }

Bei XXX natürlich den Passwort Hash aus der Datei eintragen. Der Dummy wird dann durch Alexa getriggert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Mumpitz am 03 September 2019, 19:09:57
Hallo zusammen

Ich habe bei mir einen Dummy "Werbeblocker" definierte. Dieser wird durch folgendes DOIF gesteuert:

defmod di_Werbeblocker DOIF ([Werbeblocker] eq "off") ({GetHttpFile("192.168.17.17", "/admin/api.php?disable=3600&auth=PasswortHash")})(setstate Werbeblocker on) DOELSEIF \
([Werbeblocker] eq "on") ({GetHttpFile("192.168.17.17", "/admin/api.php?enable&auth=PasswortHash")})
attr di_Werbeblocker DbLogExclude .*
attr di_Werbeblocker wait 0,3600


Der Dummy ist Standardmässig auf On und damit der Werbeblocker eingeschaltet. Bei Bedarf kann ich ihn deaktivieren durch den Schalter oder mittels Alexa. Nach einer Stude wird er automatisch wieder aktiviert oder ich stelle ihn vorher wieder auf On.

Gruss
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Christoph Morrison am 03 September 2019, 20:47:49
Zitat von: Mumpitz am 03 September 2019, 19:09:57
Ich habe bei mir einen Dummy "Werbeblocker" definierte. Dieser wird durch folgendes DOIF gesteuert:

Alles was du mit dem Dummy+DOIF machst, kannst du auch mit einem einzeln DOIF erledigen.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: FHEMAN am 03 September 2019, 20:53:25
Zitat von: Christoph Morrison am 03 September 2019, 20:47:49
Alles was du mit dem Dummy+DOIF machst, kannst du auch mit einem einzeln DOIF erledigen.
...und das DOELSEIF kann auch weg, da der Timer (3600 Sek) schon im Aufruflink steckt.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Mumpitz am 03 September 2019, 21:12:01
Zitat von: Christoph Morrison am 03 September 2019, 20:47:49
Alles was du mit dem Dummy+DOIF machst, kannst du auch mit einem einzeln DOIF erledigen.
Hallo

Da bin ich auf deine Lösung gespannt!
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: blixx am 22 Oktober 2020, 14:53:27
Nice2Know: Habe eben einen Button programmiert, damit PiHole für 10 Minuten ausgeschaltet werden kann. Geht per httpmod:

define pihole1 HTTPMOD none 0
attr pihole1 userattr set01URL
attr pihole1 set01Hint 6,100,200,600
attr pihole1 set01Max 600
attr pihole1 set01Min 6
attr pihole1 set01Name PiHoleDisable
attr pihole1 set01URL http://piholeadresse/admin/api.php?disable=$val&auth=hiermussderpasswordstringaus/etc/pihole/setupVars.confhin

Und manuell Enable (zum Beispiel, wenn man es sich anders überlegt) mit:
attr pihole1 set02Name PiHoleEnable
attr pihole1 set02NoArg 1
attr pihole1 set02URL http://piholeadresse/admin/api.php?enable&auth=hiermussderpasswordstringaus/etc/pihole/setupVars.confhin
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: SeriousPat am 29 Januar 2022, 19:26:56
Ich habe das ganze mal abgeleitet, das man auch per alexa-fhem den Pihole für eine stunden aus stellen kann.
Was mir noch fehlt das wenn ich es auf on oder of stelle das device einmal "set PiHole reread macht". Hat da einer eine Idee?

defmod PiHole HTTPMOD http://IP/admin/api.php?summary 300
attr PiHole alexaName Webung
attr PiHole event-on-change-reading state
attr PiHole genericDeviceType switch
attr PiHole homebridgeMapping On=state,valueOn=enabled,valueOff=disabled,cmdOn=on,cmdOff=off
attr PiHole reading01Name state
attr PiHole reading01Regex "status":"(.*?)"
attr PiHole room IT
attr PiHole set01Name off
attr PiHole set01NoArg 1
attr PiHole set01URL http://IP/admin/api.php?disable=3600&auth=hiermussderpasswordstringaus/etc/pihole/setupVars.confhin
attr PiHole set02Name on
attr PiHole set02NoArg 1
attr PiHole set02URL http://IP/admin/api.php?enable&auth=hiermussderpasswordstringaus/etc/pihole/setupVars.confhin
attr PiHole webCmd on:off
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 29 Januar 2022, 19:29:08
notify auf on/off und dann rearead...
Oder als weiteres Kommando bei alexa-fhem...

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: SeriousPat am 30 Januar 2022, 13:10:50
Zitat von: MadMax-FHEM am 29 Januar 2022, 19:29:08
notify auf on/off und dann rearead...
Oder als weiteres Kommando bei alexa-fhem...

Gruß, Joachim

kannst du mir für beides die befehle nennen?
bin noch nicht ganz so fit.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 30 Januar 2022, 13:33:14
Zitat von: SeriousPat am 30 Januar 2022, 13:10:50
kannst du mir für beides die befehle nennen?
bin noch nicht ganz so fit.

Eventmonitor aufmachen (Filter auf das Device setzen), on/off stellen und dann die entsprechende Zeile markieren und notify anlegen lassen und dann anpassen...

sowas in der Art:
define nNotify notify Device:on set httpmod reread

https://wiki.fhem.de/wiki/Event_monitor
https://wiki.fhem.de/wiki/Notify

Oder eben im homebridgeMapping mehrere Kommandos angeben, also:

cmdOn=on+set+reread (geht so nat. nicht! Soll nur zeigen was ich meine)

Konnte allerdings leider nichts finden wie man mehrere Kommandos angibt.
Evtl. mal selber suchen oder vielleicht finde ich noch was...

EDIT: aber ganz generell hat das nichts mit piHole an sich zu tun (außer, dass du ein "alexa-fhem Problem" mit deinem piHole-HTTPMOD hast ;)  ) ! Ist also eigentlich in DIESEM THREAD (total) falsch! Besser (wenn es weiter geht/gehen soll) einen eigenen/neuen Thread aufmachen im PASSENDEN Unterforum (Sprachsteuerung)! Dann gibt es bestimmt auch "bessere" Hilfe ;)

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: draddy am 10 März 2022, 00:40:38
moin

würde gern das ganze als cmdalias machen, damit ich leicht sagen kann 5 min off,  10 min off etc ...


set PiHoleInfo pioff.* AS {GetHttpFile("192.168.177.101", "/admin/api.php?disable=$EVTPART2&auth=pw#gedönse")}; setreading $EVTPART0 status disabled


funktioniert auch problemlos, einzig störend - nach ausführen von set PiHoleInfo pioff 30 bekomme ich eine rückmeldung alla "{"status":"disabled"}" <-- kann ich das irgendwie unterdrücken? so das der befehl einfach ausgeführt wird und ruhe ist (wegen mir darf er ins log spammen, aber sonst will  ich nix) ^^

thx
Jens
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: OdfFhem am 10 März 2022, 10:58:46
@draddy

Wird wohl die Rückgabe von GetHttpFile sein. Weil das Ergebnis "uninteressant" scheint, kann man die Perl-Klammer (ungetestet) mit "return undef;" oder "return '';" (vor dem Semikolon sind 2 einfache Anführungszeichen) verlassen - somit sollte keine Meldung mehr nach außen dringen und "nerven" ...
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Wernieman am 10 März 2022, 11:34:54
Da ein GetHttpFile FHEM blockiert und Dich das Ergebnis nicht interessiert, warum verwendest Du dann nicht ein HttpUtils_NonblockingGet?

Siehe https://wiki.fhem.de/wiki/HttpUtils
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: OdfFhem am 10 März 2022, 12:15:37
 HttpUtils_NonblockingGet erwartet zwanghaft die Angabe einer callback-Routine ... vermutlich zu kompliziert ? ...
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: draddy am 10 März 2022, 12:35:00
danke euch beiden, probier ich aus :)


set PiHoleInfo pioff.* AS {HttpUtils_NonblockingGet({url=>"192.168.177.101/admin/api.php?disable=$EVTPART2&auth=pw#gedönse", callback=>sub() { }})}; setreading $EVTPART0 status disabled


hmmm

also, ich bekomme keine rückgabe ... aber ... es wird auch nix geschaltet ^^ auch wenn ich $EVTPART2 durch feste zahl ersetze ...

gebe ich die url im browser ein, (mit zahl) klappts

also, mit einfach nur ,return gehts ...

set PiHoleInfo pioff.* AS {GetHttpFile("192.168.177.101", "/admin/api.php?disable=$EVTPART2&auth=pw#gedönse"), return}; setreading $EVTPART0 status disabled

Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: draddy am 10 März 2022, 15:18:28
soo, habe da mal etwas gebastelt, vll. kanns wer brauchen ... ;)

Status öffnet Pihole in neuem tab, der switch deaktiviert für 12h, gewohnte Infos wie im Webinterface von Pihole, und 4 Verschiedene Zeiten fürs Disable

raw vom PiInfo

defmod PiHoleInfo HTTPMOD http://192.168.177.101/admin/api.php 30
attr PiHoleInfo extractAllJSON 1
attr PiHoleInfo getURL http://192.168.177.101/admin/api.php
attr PiHoleInfo devStateIcon {my $state = ReadingsVal($name,'status','enabled') eq 'enabled'?'ios-on-green':'ios-off';; $state = FW_makeImage($state);;\
my $tq = '<style>.mysvg {height:15px;;;; width:15px}</style>'.FW_makeImage('it_i-net','','mysvg');; \
my $block =FW_makeImage('time_manual_mode','','mysvg');; \
my $bList = FW_makeImage('edit_delete','','mysvg');; \
my $tquer = ReadingsVal($name,'dns_queries_all_types','0');;\
my $blDay = ReadingsVal($name,'ads_blocked_today','0');;\
my $blDaypct = round(ReadingsVal($name,'ads_percentage_today','0'),1);;\
my $dList =ReadingsVal($name,'domains_being_blocked','0');;\
\
my $stateCMD = ReadingsVal($name,'status','enabled') eq 'enabled'?'<a href="/fhem?cmd.dummy=set '.$name.' pioff 43200">'.$state.'</a>':'<a href="/fhem?cmd.dummy=set '.$name.' pion">'.$state.'</a>';;\
my $dis1 = '<a href="/fhem?cmd.dummy=set '.$name.' pioff 60">1min</a>';;\
my $dis5 = '<a href="/fhem?cmd.dummy=set '.$name.' pioff 300">5min</a>';;\
my $dis15 = '<a href="/fhem?cmd.dummy=set '.$name.' pioff 900">15min</a>';;\
my $dis60 = '<a href="/fhem?cmd.dummy=set '.$name.' pioff 3600">60min</a>';;\
\
qq\
\
(<table border="0">\
  <tr>\
    <th><a style="color: yellow;;" href="http://192.168.177.101/admin" target="_blank">Status</a></th><th>Queries</th><th>Blocked today</th><th>Adlist</th><th><a style="color: yellow;;">Disable for:</a></th> \
  </tr>\
  <tr>\
    <td>${stateCMD} </td><td>${tq} ${tquer}</td><td>${block} ${blDay} | ${blDaypct}%</td><td>${bList} ${dList}</td><td>${dis1} ${dis5} ${dis15} ${dis60}</td>\
  </tr>\
</table>)\
}


dazu 2 cmdAlias für off

defmod caPiholeoff cmdalias set PiHoleInfo pioff.* AS {GetHttpFile("192.168.177.101", "/admin/api.php?disable=$EVTPART2&auth=HIER_DER_PW_HASH"),return };; setreading $EVTPART0 status disabled

setstate caPiholeoff defined

und on

defmod caPiholeon cmdalias set PiHoleInfo pion.* AS {my $nix=GetHttpFile("192.168.177.101", "/admin/api.php?enable&auth=HIER_DER_PW_HASH"), return};; setreading $EVTPART0 status enabled;;\

setstate caPiholeon defined



hf
Jens

p.s. ihr müsste natürlich EURE pihole IP überall eintragen, ist klar :D
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: mumpitzstuff am 10 März 2022, 17:37:19
Wo genau bekomme ich den hash vom Passwort her? Könntest du das bitte auch kurz beschreiben?
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: draddy am 10 März 2022, 18:37:16
moin,

findest du im pihole Installationsverzeichnis.

Standardmäßig unter: /etc/pihole/setupVars.conf in der Datei gibts "WEBPASSWORD=" und daneben eine lange wurscht aus Zahlen und Buchstaben - diese  wurscht brauchst du komplett ;)
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Hackstall am 24 April 2022, 19:46:08
Hi,

Dein Codeextract finde ich echt gut. Ich habe es auch schon nach SmartVisu sortiert.

Eine Frage hätte ich noch:
Gibt es auch ein Reading für die Remaining Non-Blocking Zeit.
Im Dashboard für PiHole wir diese angezeigt.

Danke Andreas
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: draddy am 29 April 2022, 07:35:39
also ich hab wenigstens keins gefunden ^^

kA ob man  eventuell irgendwie nen countdown bauen kann, den man zeitgleich starten könnte, so
"wenn disable 300 sec --> start countdown 300 sec"

eventuell hat da jemand ne idee oder findet gar ein uns unbekanntes reading ^^
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 04 Dezember 2022, 13:54:06
Nachdem ich mir gestern mal kurz 'n Pi-Hole aufgesetzt und in mein Netzwerk integriert habe, wollte der natürlich auch für das statistische Grundbedürfnis in FHEM integriert werden.

Dabei bin ich direkt über diesen Thread hier gestolpert und konnte das damit auch fix umsetzen. Danke dafür!

Ich habe das ganze aber inzwischen noch etwas verfeinert und ein wenig generalisert und stelle das hier mal kurz zur Verfügung:

Das HTTPMOD-Device habe ich so erweitert, das nur an einer Stelle die IP-Adresse des PI-Hole eingetragen werden muss und der Token für die Authentifizierung im Device nicht mehr sichtbar ist.

Die verwendete devStateIcon-Perl-Funktion habe ich in die 99_myUtils.pm ausgelagert und so erweitert, dass keine CommandAlias mehr benötigt um Disable/Enable auszuführen Das geht direkt über set/get am HTTPMOD-Device

Zunächst mal das Raw-Listing meines HTTPMOD-Devices:


defmod pihole HTTPMOD none 60
attr pihole alias Pi-Hole
attr pihole devStateIcon {piholeDevStateIcon($name)}
attr pihole enforceGoodReadingNames 1
attr pihole event-on-change-reading .*
attr pihole extractAllJSON 1
attr pihole get01Name statistics
attr pihole get01Poll 1
attr pihole get01URL %%api_url%%
attr pihole getURL %%api_url%%
attr pihole icon it_raspberry_logo
attr pihole replacement01Mode key
attr pihole replacement01Regex %%pihole-token%%
attr pihole replacement01Value pihole-token
attr pihole replacement02Mode text
attr pihole replacement02Regex %%api_url%%
attr pihole replacement02Value %%base_url%%/api.php
attr pihole replacement03Mode text
attr pihole replacement03Regex %%base_url%%
attr pihole replacement03Value http://%%ip%%/admin
attr pihole replacement04Mode text
attr pihole replacement04Regex %%ip%%
attr pihole replacement04Value 192.168.3.123
attr pihole room Allgemein->Netzwerk
attr pihole set01FollowGet statistics
attr pihole set01Hint 10,60,180,300,600,900
attr pihole set01Max 900
attr pihole set01Min 10
attr pihole set01Name PiHoleDisable
attr pihole set01URL %%api_url%%?disable=$val&auth=%%pihole-token%%
attr pihole set02FollowGet statistics
attr pihole set02Name PiHoleEnable
attr pihole set02NoArg 1
attr pihole set02URL %%api_url%%?enable&auth=%%pihole-token%%
attr pihole stateFormat gravity_last_updated_absolute


Angepasst werden müssen im Device jetzt eigentlich nur 2 Dinge, damit das bei euch funktioniert.

Das ist zum einen die IP-Adresse des Pi-Hole, die muss im Attribut replacement04Value angeben werden:


attr pihole replacement04Value <ip-addresse-des-pihole>


Zum anderen muss der Token (WEBPASSWORD) für die Authentifizierung per set storeKeyValue als pihole-token gespeichert werden:


set pihole storeKeyValue pihole-token <WEBPASSWORD>


Das WEBPASSWORD findet man, wie weiter oben schon beschrieben in der Datei /etc/pihole/setupVars.conf auf dem Pi-Hole Rechner

Damit funktioniert jetzt auf jeden Fall schon mal die Abfrage der aktuellen Daten. Als Intervall habe ich 60 Sekunden gewählt. Das kann man bei Bedarf natürlich auch verlängern.

Die Abfrage kann auch jederzeit mit


get pihole statistics


manuell angestoßen werden.

Damit die Anzeige für devStateIcon auch korrekt funktioniert, braucht es in der 99_myUtils.pm noch folgende Funktion:


sub piholeDevStateIcon
{
my $name = shift;
my $noHeader=shift;

$noHeader=0 if(!defined($noHeader));

#get %%base_url%% replacement from httpmod device (using HTTPMOD method)
# -> this is the url to the web-ui of Pi-Hole
my $baseURL= HTTPMOD::DoReplacement($defs{$name},'get','%%base_url%%');

#get required readings from pihole httpmod device
my $state =ReadingsVal($name,'status','unknown');
my $totalQueries = ReadingsVal($name,'dns_queries_all_types','0');
my $blocked = ReadingsVal($name,'ads_blocked_today','0');
my $blockedPercentage = round(ReadingsVal($name,'ads_percentage_today','0'),1);
my $adListCount =ReadingsVal($name,'domains_being_blocked','0');

#prepare dedicated css
#hint: html of device overview is by default embedded in a <div> container
#      which has id attribute set to device's NAME
my $styleClass ='<style>';
   $styleClass.='#'.$name.' svg {height:15px; width:15px; padding-right:1px;} ';
   $styleClass.='#'.$name.' td {padding-left:10px; padding-right:10px} ';
   $styleClass.='</style>';

#prepare images
my $imgQueries=FW_makeImage('it_i-net@cyan');
my $imgBlocked=FW_makeImage('time_manual_mode@red');
my $imgAdList =FW_makeImage('edit_delete@green');
my $imgState  =FW_makeImage($state eq 'enabled' ? '15px-green' : '15px-red');

#prepare disable/enable command
my $cmd='';
my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name.' PiHole';
if($state eq 'disabled') {
$cmd =$callMe.'Enable">Enable</a>';
} else {
$cmd  =       $callMe.'Disable 60">1min</a>';
$cmd .= ' | '.$callMe.'Disable 300">5min</a>';
$cmd .= ' | '.$callMe.'Disable 600">10min</a>';
}

#finally build the html for device overview
my $ret  = $styleClass;
   $ret .= '<table border=0"><tr>';
    #if second argument of this method call is true (=1)
#then do NOT create a table header. Defaults to false (=0)
if(!$noHeader) {    
    $ret .= '<th>State</th>';
    $ret .= '<th>Queries</th>';
    $ret .= '<th>Blocked</th>';
    $ret .= '<th>'.($state eq 'enabled' ? 'Disable (Minutes)':'Disabled').'</th>';

    $ret .= '</tr><tr>';
}    
   $ret .= '<td><a href="'.$baseURL.'" target="_blank">'.$imgState.'</a></td>';
   $ret .= '<td>'.$imgQueries.' '.$totalQueries.'</td>';
   $ret .= '<td>'.$imgBlocked.' '.$blocked.' ('.$blockedPercentage.' %)'.'</td>';
   $ret .= '<td>'.$cmd.'</td>';
   $ret .= '</tr></table>';

return $ret;
}


(Ja, das ist bewußt etwas ausführlicher ausgestaltet!  ;) )

Das ergibt dann die Anzeige der Device-Overview, wie in den angehängten Screenshots zu sehen.

Wem die Kopfzeile in der generierten Tabelle zu viel ist kann sie bei Bedarf auch per zusätzlichem Parameter beim Funktionsaufruf abschalten:


attr pihole devStateIcon {piholeDevStateIcon($name,1)}


Ach ja, falls die Frage auftaucht, wieso das bei mir so aussieht, wie auf den Screenshots zu sehen: Ich verwende das S18-Theme mit eigenem CSS. (https://forum.fhem.de/index.php/topic,125119.msg1198432.html#msg1198432)
Dementsprechend sind auch die styles, die in der piholeDevStateIcon-Funktion in das html eingebaut werden darauf angepasst.

Die Anzahl der Einträge aus der AdList habe ich bei mir aus der Übersicht rausgeschmissen, das ist keine Information, die ich so präsent brauche. Das schaue ich dann bei Bedarf im entsprechenden Reading oder auf dem Pi-Hole-UI direkt an.

Apropos Pi-Hole-UI: Das kann natürlich auch direkt aus der Device-Overview, per Klick auf das (grüne oder rote) Status-Icon aufgerufen werden.

Viel Spaß damit!

gb#
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: mcp am 27 Dezember 2022, 17:11:11
damit das mit Pi-hole FTL >= v5.20 und Web >= v5.18 funktioniert, ist eine Änderung zum Post 33 (https://forum.fhem.de/index.php/topic,84031.msg1249306.html#msg1249306 (https://forum.fhem.de/index.php/topic,84031.msg1249306.html#msg1249306)) nötig, da die API Zugriffe weiter eingeschränkt wurden:


attr pihole get01URL %%api_url%%?summaryRaw&auth=%%pihole-token%%


Siehe auch:
https://pi-hole.net/blog/2022/12/21/pi-hole-ftl-v5-20-and-web-v5-18-released/ (https://pi-hole.net/blog/2022/12/21/pi-hole-ftl-v5-20-and-web-v5-18-released/)
https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content (https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content)

weiterhin denke ich, daß im Post 33 die Zeile:


attr pihole getURL %%api_url%%


zu viel ist :)
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 28 Dezember 2022, 12:20:05
Ja, das ist beides korrekt und in meiner laufenden Variante auch bereits inkludiert, bzw. bereinigt:


defmod pihole HTTPMOD none 60
attr pihole alias Pi-Hole
attr pihole devStateIcon {piholeDevStateIcon($name)}
attr pihole enforceGoodReadingNames 1
attr pihole event-on-change-reading .*
attr pihole get01ExtractAllJSON 1
attr pihole get01Name summary
attr pihole get01Poll 1
attr pihole get01URL %%api_url%%?summaryRaw&%%auth%%
attr pihole get02ExtractAllJSON 1
attr pihole get02Name versions
attr pihole get02Poll 1
attr pihole get02PollDelay 3600
attr pihole get02URL %%api_url%%?versions&%%auth%%
attr pihole get03JSON status
attr pihole get03Name FTL_status
attr pihole get03URL %%api_url%%?status&%%auth%%
attr pihole get04JSON type
attr pihole get04Name FTL_type
attr pihole get04URL %%api_url%%?type&%%auth%%
attr pihole get05JSON version
attr pihole get05Name FTL_version
attr pihole get05URL %%api_url%%?version&%%auth%%
attr pihole group System
attr pihole icon it_raspberry_logo
attr pihole replacement01Mode text
attr pihole replacement01Regex %%auth%%
attr pihole replacement01Value auth=%%pihole-token%%
attr pihole replacement02Mode key
attr pihole replacement02Regex %%pihole-token%%
attr pihole replacement02Value pihole-token
attr pihole replacement03Mode text
attr pihole replacement03Regex %%api_url%%
attr pihole replacement03Value %%base_url%%/api.php
attr pihole replacement04Mode text
attr pihole replacement04Regex %%base_url%%
attr pihole replacement04Value http://%%ip%%/admin
attr pihole replacement05Mode text
attr pihole replacement05Regex %%ip%%
attr pihole replacement05Value 192.168.3.123
attr pihole set01ExtractAllJSON 1
attr pihole set01Hint 10,60,180,300,600,900
attr pihole set01Max 900
attr pihole set01Min 10
attr pihole set01Name disable
attr pihole set01ParseResponse 1
attr pihole set01URL %%api_url%%?disable=$val&%%auth%%
attr pihole set02ExtractAllJSON 1
attr pihole set02Name enable
attr pihole set02NoArg 1
attr pihole set02ParseResponse 1
attr pihole set02URL %%api_url%%?enable&%%auth%%
attr pihole stateFormat status
attr pihole userReadings gravity_last_updated_abstime:gravity_last_updated_absolute.* {strftime('%Y-%m-%d %H:%M:%S', localtime(ReadingsNum($name,'gravity_last_updated_absolute',0)))}


Weiterhin braucht es die FollowGets in den set-Commands (enable/disable) nicht, da der neue Status direkt als Anttwort zurückgeliefert wird und entsprechend geparsed werden kann.

Ich habe auch noch mit anderen API-Teilen (FTL_.*) experimentiert, weiß aber nicht, ob man das wirklich braucht, bzw. in wie weit das sinnvoll ist. Egal ... es ist jetzt mal drin! :)

gb#
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 03 Januar 2023, 13:31:41
Bin aktuell dabei meine Doku zu vervollständigen (also habe ich schon vollständig aber ich will alles bei entspr. Devices in comment dokumentieren :)  ).

Was mir noch gefehlt hat war piHole (gut unbound fehlt auch noch aber das packe ich bei piHole mit dazu ;)  )...

Habe mich an diesen Thread erinnert :)

@Benni: vielen DANK! Ist echt prima!

ich hatte zunächst das "nackte" HTTPMOD, dann das attrTemplate (spricht etwas dagegen, das von dir, Benni, als attrTemplate zu nehmen? Zugegeben ohne, dass ich auch nur annähernd wüsste wie man das da rein kriegen würde :-\  )...
...und aktuell das von Benni :)

Allerdings haben bei mir die web-cmds zum Deaktivieren nicht funktioniert.

Ich musste folgendes ändern:

# my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name.' PiHole';
my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name . ' ';


Gutes neues Jahr, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 07 Januar 2023, 21:02:30
Hallo zusammen,

ich hab entsprechend dieser Seite: https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content (https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content) die Definition geändert und dieses Attribut gelöscht:
attr PiHoleInfo getURL http://127.0.0.1/admin/api.php

Ich komme aber nicht weiter und bekomme keine neuen Readings.

Hier ein list meines Devices:
define PiHoleInfo HTTPMOD geheim 1800
attr PiHoleInfo event-on-change-reading .*
attr PiHoleInfo extractAllJSON 1
attr PiHoleInfo group Performance
attr PiHoleInfo icon it_internet
attr PiHoleInfo room Network
attr PiHoleInfo stateFormat DNS-Anfragen: dns_queries_today<br/>geblockt: ads_blocked_today (ads_percentage_today_round%)
attr PiHoleInfo userReadings ads_percentage_today_round {round(ReadingsVal('PiHoleInfo','ads_percentage_today',''),1)}
#   BUSY       0
#   CFGFN      ./FHEM/NetzwerkServerTV.cfg
#   DEF        http://127.0.0.1/admin/api.php?status&auth=geheim 1800
#   FUUID      5d3ff28a-f33f-e986-ddb4-c82c89992d7c2681
#   Interval   1800
#   MainURL    http://127.0.0.1/admin/api.php?status&auth=geheim
#   ModuleVersion 4.1.14 - 19.8.2022
#   NAME       PiHoleInfo
#   NOTIFYDEV  global
#   NR         1217
#   NTFY_ORDER 50-PiHoleInfo
#   STATE      DNS-Anfragen: 23721<br/>geblockt: 9436 (39.8%)
#   TYPE       HTTPMOD
#   eventCount 4
#   value     
#   HTTPCookieHash:
#     PHPSESSID;/:
#       Name       PHPSESSID
#       Options    path=/; HttpOnly; SameSite=Strict
#       Path       /
#       Value      uq2bps8pkvdcdnu7sb0u3fq9kl
#   HttpUtils:
#     NAME       
#     addr       http://127.0.0.1:80
#     auth       0
#     buf       
#     code       200
#     compress   1
#     conn       
#     data       
#     displayurl http://127.0.0.1/admin/api.php?status&auth=geheim
#     header     Cookie: PHPSESSID=uq2bps8pkvdcdnu7sb0u3fq9kl
#     host       127.0.0.1
#     httpheader HTTP/1.0 200 OK
#Expires: Thu, 19 Nov 1981 08:52:00 GMT
#Cache-Control: no-store, no-cache, must-revalidate
#Pragma: no-cache
#Set-Cookie: PHPSESSID=uq2bps8pkvdcdnu7sb0u3fq9kl; path=/; HttpOnly; SameSite=Strict
#Content-type: application/json
#X-Pi-hole: The Pi-hole Web interface is working!
#X-Frame-Options: DENY
#X-XSS-Protection: 1; mode=block
#X-Content-Type-Options: nosniff
#Content-Security-Policy: default-src 'self' 'unsafe-inline';
#X-Permitted-Cross-Domain-Policies: none
#Referrer-Policy: same-origin
#Content-Length: 20
#Connection: close
#Date: Sat, 07 Jan 2023 19:52:48 GMT
#Server: lighttpd/1.4.59
#     httpversion 1.0
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    80
#     hu_portSfx
#     ignoreredirects 1
#     loglevel   4
#     path       /admin/api.php?status&auth=geheim
#     protocol   http
#     redirects  0
#     timeout    2
#     url        http://127.0.0.1/admin/api.php?status&auth=geheim
#     sslargs:
#   QUEUE:
#   READINGS:
#     2023-01-04 13:39:45   ads_blocked_today 9436
#     2023-01-04 13:39:45   ads_percentage_today 39.779099
#     2023-01-07 20:52:48   ads_percentage_today_round 39.8
#     2023-01-04 13:39:45   clients_ever_seen 6
#     2023-01-04 13:39:45   dns_queries_all_replies 23721
#     2023-01-04 13:39:45   dns_queries_all_types 23721
#     2023-01-04 13:39:45   dns_queries_today 23721
#     2023-01-04 13:39:45   domains_being_blocked 177450
#     2023-01-04 13:39:45   gravity_last_updated_absolute 1672541109
#     2023-01-04 13:39:45   gravity_last_updated_file_exists 1
#     2023-01-04 13:39:45   gravity_last_updated_relative_days 3
#     2023-01-04 13:39:45   gravity_last_updated_relative_hours 9
#     2023-01-04 13:39:45   gravity_last_updated_relative_minutes 54
#     2023-01-04 13:39:45   privacy_level   0
#     2023-01-04 13:39:45   queries_cached  4333
#     2023-01-04 13:39:45   queries_forwarded 9685
#     2023-01-04 13:39:45   reply_BLOB      81
#     2023-01-04 13:39:45   reply_CNAME     7640
#     2023-01-04 13:39:45   reply_DNSSEC    0
#     2023-01-04 13:39:45   reply_DOMAIN    0
#     2023-01-04 13:39:45   reply_IP        13655
#     2023-01-04 13:39:45   reply_NODATA    1004
#     2023-01-04 13:39:45   reply_NONE      0
#     2023-01-04 13:39:45   reply_NOTIMP    0
#     2023-01-04 13:39:45   reply_NXDOMAIN  1007
#     2023-01-04 13:39:45   reply_OTHER     0
#     2023-01-04 13:39:45   reply_REFUSED   0
#     2023-01-04 13:39:45   reply_RRNAME    24
#     2023-01-04 13:39:45   reply_SERVFAIL  0
#     2023-01-04 13:39:45   reply_UNKNOWN   310
#     2023-01-07 20:52:48   status          enabled
#     2023-01-04 13:39:45   unique_clients  6
#     2023-01-04 13:39:45   unique_domains  3272
#   REQUEST:
#     context    reading
#     data       
#     header     
#     ignoreredirects 0
#     num        unknown
#     retryCount 0
#     type       update
#     url        http://127.0.0.1/admin/api.php?status&auth=geheim
#   defptr:
#     readingBase:
#       status     reading
#     readingNum:
#       status     unknown
#     readingOutdated:
#     requestReadings:
#       update:
#         status     reading unknown
#   helper:
#     bm:
#       CODE(0x559147fa7450):
#         cnt        129
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        07.01. 20:40:13
#         max        0.0275039672851562
#         tot        0.106866836547852
#         mAr:
#           HASH(0x55914fd60ea8)
#           PiHoleInfo
#           attrTemplate
#           ?
#       CODE(0x559147fa8930):
#         cnt        18
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        07.01. 20:53:26
#         max        0.000211000442504883
#         tot        0.00150442123413086
#         mAr:
#           HASH(0x55914fd60ea8)
#           PiHoleInfo
#           ?
#       CODE(0x55914811a870):
#         cnt        6
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        07.01. 20:37:28
#         max        0.00323605537414551
#         tot        0.0158782005310059
#         mAr:
#           HASH(0x55914fd60ea8)
#           PiHoleInfo HTTPMOD http://127.0.0.1/admin/api.php?auth=geheim 1800
#       CODE(0x55914811aa20):
#         cnt        40
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        07.01. 20:42:32
#         max        2.19345092773438e-05
#         tot        0.000459194183349609
#         mAr:
#           HASH(0x55914fd60ea8)
#           HASH(0x559142812940)
#       CODE(0x55914811be88):
#         cnt        24
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        07.01. 20:42:32
#         max        0.00948500633239746
#         tot        0.0834879875183105
#         mAr:
#           set
#           PiHoleInfo
#           group
#           Performance
#
setstate PiHoleInfo DNS-Anfragen: 23721<br/>geblockt: 9436 (39.8%)
setstate PiHoleInfo 2023-01-04 13:39:45 ads_blocked_today 9436
setstate PiHoleInfo 2023-01-04 13:39:45 ads_percentage_today 39.779099
setstate PiHoleInfo 2023-01-07 20:52:48 ads_percentage_today_round 39.8
setstate PiHoleInfo 2023-01-04 13:39:45 clients_ever_seen 6
setstate PiHoleInfo 2023-01-04 13:39:45 dns_queries_all_replies 23721
setstate PiHoleInfo 2023-01-04 13:39:45 dns_queries_all_types 23721
setstate PiHoleInfo 2023-01-04 13:39:45 dns_queries_today 23721
setstate PiHoleInfo 2023-01-04 13:39:45 domains_being_blocked 177450
setstate PiHoleInfo 2023-01-04 13:39:45 gravity_last_updated_absolute 1672541109
setstate PiHoleInfo 2023-01-04 13:39:45 gravity_last_updated_file_exists 1
setstate PiHoleInfo 2023-01-04 13:39:45 gravity_last_updated_relative_days 3
setstate PiHoleInfo 2023-01-04 13:39:45 gravity_last_updated_relative_hours 9
setstate PiHoleInfo 2023-01-04 13:39:45 gravity_last_updated_relative_minutes 54
setstate PiHoleInfo 2023-01-04 13:39:45 privacy_level 0
setstate PiHoleInfo 2023-01-04 13:39:45 queries_cached 4333
setstate PiHoleInfo 2023-01-04 13:39:45 queries_forwarded 9685
setstate PiHoleInfo 2023-01-04 13:39:45 reply_BLOB 81
setstate PiHoleInfo 2023-01-04 13:39:45 reply_CNAME 7640
setstate PiHoleInfo 2023-01-04 13:39:45 reply_DNSSEC 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_DOMAIN 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_IP 13655
setstate PiHoleInfo 2023-01-04 13:39:45 reply_NODATA 1004
setstate PiHoleInfo 2023-01-04 13:39:45 reply_NONE 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_NOTIMP 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_NXDOMAIN 1007
setstate PiHoleInfo 2023-01-04 13:39:45 reply_OTHER 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_REFUSED 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_RRNAME 24
setstate PiHoleInfo 2023-01-04 13:39:45 reply_SERVFAIL 0
setstate PiHoleInfo 2023-01-04 13:39:45 reply_UNKNOWN 310
setstate PiHoleInfo 2023-01-07 20:52:48 status enabled
setstate PiHoleInfo 2023-01-04 13:39:45 unique_clients 6
setstate PiHoleInfo 2023-01-04 13:39:45 unique_domains 3272


Viele Grüße Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 07 Januar 2023, 21:15:02
Also ich habe das hier https://forum.fhem.de/index.php/topic,84031.msg1253950.html#msg1253950 (2 Posts weiter oben ;)  ) laufen mit meiner Änderung von hier https://forum.fhem.de/index.php/topic,84031.msg1255307.html#msg1255307 (1 Post über deinem).
piHole ist aktuell, heute ein Update gemacht und bei mir tut es (zumindest soweit ich das sehen kann)...

Du hast eine relativ simple HTTPMOD-Variante?
(Vom Beginn des Threads?)

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 07 Januar 2023, 21:21:46
Hallo Joachim,

vielen Dank für deine Hilfe.
Ist dein Rat, deine Definition zu benutzen? Das mache ich dann gerne. Ich war nur etwas irritiert über das "none" in deiner Definition. Ist das das WEBPASSWORD"?

Viele Grüße Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 07 Januar 2023, 21:32:06
Ist ja nicht meine DEF ;) sondern die von Benni 8)

Das none wird dann durch das ErsetzteRegex -> IP mit der IP geändert.
PW ist dann ein set Irgendwas...

Steht aber doch alles in meinen Links bzw. in den Links meiner Links ;)

Also ein paar Posts weiter oben ist die erste (neue) DEF von Benni mit Erläuterung: dort die Erläuterungen lesen
EDIT: Erläuterungen und myUtils für devStateIcon https://forum.fhem.de/index.php/topic,84031.msg1249306.html#msg1249306

Dann die DEF aus meinem Link zu Bennis neuester (neuen) DEF: dort dann die DEF nehmen
EDIT: dann von hier die DEF https://forum.fhem.de/index.php/topic,84031.msg1253950.html#msg1253950

Und (wenn du willst ;)  ) dann bei  mir die Korrektur bzgl. der WEB-cmds mit "disable 1min 5min 10min"...
EDIT: und meine Korrektur in der myUtils https://forum.fhem.de/index.php/topic,84031.msg1255307.html#msg1255307

Du brauchst ja auch die myUtils-Sub für das defSateIcon (auch erster Beitrag von Benni ein paar Posts weiter oben)...
EDIT: oben verlinkt... .)

P.S.: kein Rat ;) Aber so läuft es bei mir (immer noch)... 8)

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 07 Januar 2023, 21:38:08
Hallo Joachim,

ich werde die Posts morgen studieren und melde mich dann hoffentlich mit einer Erfolgsmeldung, oder falls nicht, dann mit Fragen - so oder so, melde ich mich.

Viele Grüße Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: GoldenAmerican am 03 März 2023, 21:50:06
Hallo Benny,

nachdem ich aus dem Beitrag #33 die Definition und den myUtils-Teil übernommen habe läuft es auf Anhieb. Super Leistung -> vielen Dank.
Aber: Lässt sich nicht der FTL/WEB/CORE - Status mit in die Übersicht integrieren? Dann muss man nicht immer in das Device oder in die WebUI vom Pihole schauen ob es Updates gibt. Nur als Text in ROT/GRÜN würde ja schon reichen, um zu sehen, ob alles aktuell ist. Leider ist das zu hoch für mich, daher die Frage an dich.

Grüße Ralf
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 10:20:03
Zitat von: GoldenAmerican am 03 März 2023, 21:50:06
Hallo Benny,

nachdem ich aus dem Beitrag #33 die Definition und den myUtils-Teil übernommen habe läuft es auf Anhieb. Super Leistung -> vielen Dank.
Aber: Lässt sich nicht der FTL/WEB/CORE - Status mit in die Übersicht integrieren? Dann muss man nicht immer in das Device oder in die WebUI vom Pihole schauen ob es Updates gibt. Nur als Text in ROT/GRÜN würde ja schon reichen, um zu sehen, ob alles aktuell ist. Leider ist das zu hoch für mich, daher die Frage an dich.

Grüße Ralf

Ich weiß nicht genau was du meinst, habe aber mal was "gebastelt":


sub piholeDevStateIcon
{
my $name = shift;
my $noHeader=shift;

$noHeader = 0 if(!defined($noHeader));

#get %%base_url%% replacement from httpmod device (using HTTPMOD method)
# -> this is the url to the web-ui of Pi-Hole
my $baseURL= HTTPMOD::DoReplacement($defs{$name},'get','%%base_url%%');

#get required readings from pihole httpmod device
my $state = ReadingsVal($name,'status','unknown');
my $totalQueries = ReadingsVal($name,'dns_queries_all_types','0');
my $blocked = ReadingsVal($name,'ads_blocked_today','0');
my $blockedPercentage = round(ReadingsVal($name,'ads_percentage_today','0'),1);
my $adListCount = ReadingsVal($name,'domains_being_blocked','0');
# start extension
my $FTL_latest = ReadingsVal($name,'FTL_latest','0');
my $FTL_current = ReadingsVal($name,'FTL_current','0');
my $core_current = ReadingsVal($name,'core_current','0');
my $core_latest = ReadingsVal($name,'core_latest','0');
my $web_latest = ReadingsVal($name,'web_latest','0');
my $web_current = ReadingsVal($name,'web_current','0');
# end extension

#prepare dedicated css
#hint: html of device overview is by default embedded in a <div> container
#      which has id attribute set to device's NAME
my $styleClass ='<style>';
   $styleClass.='#'.$name.' svg {height:15px; width:15px; padding-right:1px;} ';
   $styleClass.='#'.$name.' td {padding-left:10px; padding-right:10px} ';
   $styleClass.='</style>';

#prepare images
my $imgQueries=FW_makeImage('it_i-net@cyan');
my $imgBlocked=FW_makeImage('time_manual_mode@red');
my $imgAdList =FW_makeImage('edit_delete@green');
my $imgState  =FW_makeImage($state eq 'enabled' ? '15px-green' : '15px-red');

#prepare disable/enable command
my $cmd='';
# start extension
# correction of disable/enable
# my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name.' PiHole';
my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name . ' ';
# end extension
if($state eq 'disabled') {
$cmd =$callMe.'enable">Enable</a>';
} else {
$cmd  =       $callMe.'disable 60">1min</a>';
$cmd .= ' | '.$callMe.'disable 300">5min</a>';
$cmd .= ' | '.$callMe.'disable 600">10min</a>';
}

# start extension
  # check for version mismatch/update
  if($FTL_current ne $FTL_latest)
  {
    $FTL_current = "<span style=\"color:red\">".$FTL_current."</span>";
  }
 
  if($core_current ne $core_latest)
  {
    $core_current = "<span style=\"color:red\">".$core_current."</span>";
  }

  if($web_current ne $web_latest)
  {
    $web_current = "<span style=\"color:red\">".$web_current."</span>";
  }
# end extension

#finally build the html for device overview
my $ret  = $styleClass;
   $ret .= '<table border=0"><tr>';
    #if second argument of this method call is true (=1)
#then do NOT create a table header. Defaults to false (=0)
if(!$noHeader) {    
    $ret .= '<th>State</th>';
    $ret .= '<th>Queries</th>';
    $ret .= '<th>Blocked</th>';
# start extension
    $ret .= '<th>Core versions</th>';
    $ret .= '<th>FTL versions</th>';
    $ret .= '<th>Web versions</th>';
# end extension
    $ret .= '<th>'.($state eq 'enabled' ? 'Disable (Minutes)':'Disabled').'</th>';

    $ret .= '</tr><tr>';
}    
   $ret .= '<td><a href="'.$baseURL.'" target="_blank">'.$imgState.'</a></td>';
   $ret .= '<td>'.$imgQueries.' '.$totalQueries.'</td>';
   $ret .= '<td>'.$imgBlocked.' '.$blocked.' ('.$blockedPercentage.' %)'.'</td>';
# start extension
   $ret .= '<td>current: '.$core_current.' latest: '.$core_latest.'</td>';
   $ret .= '<td>current: '.$FTL_current.' latest: '.$FTL_latest.'</td>';
   $ret .= '<td>current: '.$web_current.' latest: '.$web_latest.'</td>';
# end extension
   $ret .= '<td>'.$cmd.'</td>';
   $ret .= '</tr></table>';

return $ret;
}


Sieht dann aus wie im Anhang...

EDIT: erweitert mit "update-check", wenn aktuelle Version ungleich der latest ist, dann wird die Version in Rot angezeigt...

EDIT: ergänzt mit web_current/web_latest (hatte ich zunächst gar nicht gesehen ;) Danke Benni ) und Reihenfolge an die Anzeige von piHole (unten) angepasst... 8)

EDIT: meine Erweiterungen/Änderungen sind zwischen # start extension und # end extension


Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 04 März 2023, 10:20:34
Versuch's mal damit, das ist der Stand (w.i.p.), so wie er im Moment Läuft:


defmod pihole HTTPMOD none 60
attr pihole alias Pi-Hole
attr pihole devStateIcon {piholeDevStateIcon($name)}
attr pihole enforceGoodReadingNames 1
attr pihole event-on-change-reading .*
attr pihole get01ExtractAllJSON 1
attr pihole get01Name summary
attr pihole get01Poll 1
attr pihole get01URL %%api_url%%?summaryRaw&%%auth%%
attr pihole get02ExtractAllJSON 1
attr pihole get02Name versions
attr pihole get02Poll 1
attr pihole get02PollDelay 3600
attr pihole get02URL %%api_url%%?versions&%%auth%%
attr pihole get03JSON status
attr pihole get03Name FTL_status
attr pihole get03URL %%api_url%%?status&%%auth%%
attr pihole get04JSON type
attr pihole get04Name FTL_type
attr pihole get04URL %%api_url%%?type&%%auth%%
attr pihole get05JSON version
attr pihole get05Name FTL_version
attr pihole get05URL %%api_url%%?version&%%auth%%
attr pihole group System
attr pihole icon it_raspberry_logo
attr pihole replacement01Mode text
attr pihole replacement01Regex %%auth%%
attr pihole replacement01Value auth=%%pihole-token%%
attr pihole replacement02Mode key
attr pihole replacement02Regex %%pihole-token%%
attr pihole replacement02Value pihole-token
attr pihole replacement03Mode text
attr pihole replacement03Regex %%api_url%%
attr pihole replacement03Value %%base_url%%/api.php
attr pihole replacement04Mode text
attr pihole replacement04Regex %%base_url%%
attr pihole replacement04Value http://%%ip%%/admin
attr pihole replacement05Mode text
attr pihole replacement05Regex %%ip%%
attr pihole replacement05Value <IP-ADDRESS-OF-PIHOLE>
attr pihole room Allgemein->Netzwerk,Uebersicht
attr pihole set01ExtractAllJSON 1
attr pihole set01Hint 10,60,180,300,600,900
attr pihole set01Max 900
attr pihole set01Min 10
attr pihole set01Name disable
attr pihole set01ParseResponse 1
attr pihole set01URL %%api_url%%?disable=$val&%%auth%%
attr pihole set02ExtractAllJSON 1
attr pihole set02Name enable
attr pihole set02NoArg 1
attr pihole set02ParseResponse 1
attr pihole set02URL %%api_url%%?enable&%%auth%%
attr pihole stateFormat status
attr pihole userReadings gravity_last_updated_abstime:gravity_last_updated_absolute.* {strftime('%Y-%m-%d %H:%M:%S', localtime(ReadingsNum($name,'gravity_last_updated_absolute',0)))}


Damit gibt es auf alle Fälle folgende Readings:


FTL_current v5.21
FTL_latest v5.21
FTL_update 0
core_current v5.15.5
core_latest v5.15.5
core_update 0
web_current v5.18.4
web_latest v5.18.4
web_update 0


Die .*_update springen jeweils auf 1, wenn ein Update vorhanden ist.

Gruß Benni

Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 04 März 2023, 10:22:22
Zitat von: Gisbert am 07 Januar 2023, 21:38:08
Hallo Joachim,

ich werde die Posts morgen studieren und melde mich dann hoffentlich mit einer Erfolgsmeldung, oder falls nicht, dann mit Fragen - so oder so, melde ich mich.

Viele Grüße Gisbert

Hallo Joachim,

ich hab deine Ratschläge und die Zusammenstellung befolgt - und es läuft auf Anhieb.
Eine Klitzekleinigkeit hätte ich noch.
Kann man in der myUtils-Definition verhindern, dass der Text im Header <th>TEXT</th> nicht fett dargestellt wird? Also State Queries Blocked Disable nicht fett sondern in normaler dünner Schrift.

Wenn ich auf Disable (Minutes) drücke, poppt ein Fenster mit folgendem Inhalt auf:
Unknown argument Disable, choose one of interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue disable:10,60,180,300,600,900 enable:noArg  attrTemplate:?,General_Info_httpmod.template,---DIV---------------------------------,pharmacy_emergency_service_germany,aponet_pharmacy_emergency_service_germany,---FUEL--------------------------------,clever_tanken_single_station,clever_tanken_multi_station,fuel_oil_check_esyoil,fuel_oil_check_heizoel24,---RADAR-------------------------------,blitzer_atudo,---TECH-PRINTER------------------------,hp_printer_config,hp_printer_cartridge_status,hp_printer_statistics,hp_printer_status,epson_printer_cartridge_status,brother_printer_cartridge_status,brother_scanner_ads_status,---TECH-DIV----------------------------,homebridge_videodoorbell,pihole_statistics,resol_solar,hm_fw_check_v2,aculfw_fw_check,tasmota_firmware_updates,zigbee2mqtt_daemon_updates,ESPEasy_firmware_updates,dnscrypt-proxy_updates,---WEATHER-----------------------------,DWD_weather_warnings,pegelonline,ORF_weather,bergfex_weather

Ich hab die sub minimal verändert, aber mit deiner originalen sub erhalte die das gleiche pop-up-Fenster.
sub piholeDevStateIcon
{
my $name = shift;
my $noHeader=shift;

$noHeader=0 if(!defined($noHeader));

#get %%base_url%% replacement from httpmod device (using HTTPMOD method)
# -> this is the url to the web-ui of Pi-Hole
my $baseURL= HTTPMOD::DoReplacement($defs{$name},'get','%%base_url%%');

#get required readings from pihole httpmod device
my $state =ReadingsVal($name,'status','unknown');
my $totalQueries = ReadingsVal($name,'dns_queries_all_types','0');
my $blocked = ReadingsVal($name,'ads_blocked_today','0');
my $blockedPercentage = round(ReadingsVal($name,'ads_percentage_today','0'),0);
my $adListCount =ReadingsVal($name,'domains_being_blocked','0');

#prepare dedicated css
#hint: html of device overview is by default embedded in a <div> container
#      which has id attribute set to device's NAME
my $styleClass ='<style>';
   $styleClass.='#'.$name.' svg {height:15px; width:15px; padding-right:1px;} ';
   $styleClass.='#'.$name.' td {padding-left:10px; padding-right:10px} ';
   $styleClass.='</style>';

#prepare images
my $imgQueries=FW_makeImage('it_i-net@cyan');
my $imgBlocked=FW_makeImage('time_manual_mode@red');
my $imgAdList =FW_makeImage('edit_delete@green');
my $imgState  =FW_makeImage($state eq 'enabled' ? '15px-green' : '15px-red');

#prepare disable/enable command
my $cmd='';
#my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name.' PiHole';
my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name . ' ';
if($state eq 'disabled') {
$cmd =$callMe.'Enable">Enable</a>';
} else {
$cmd  =       $callMe.'Disable 60">1</a>';
$cmd .= ' | '.$callMe.'Disable 300">5</a>';
$cmd .= ' | '.$callMe.'Disable 600">10</a>';
}

#finally build the html for device overview
my $ret  = $styleClass;
   $ret .= '<table border=0"><tr>';
    #if second argument of this method call is true (=1)
#then do NOT create a table header. Defaults to false (=0)
if(!$noHeader) {    
    $ret .= '<th><center>state</center></th>';
    $ret .= '<th><center>queries</center></th>';
    $ret .= '<th><center>blocked</center></th>';
    $ret .= '<th><center>'.($state eq 'enabled' ? 'disable (min)':'Disabled').'</center></th>';

    $ret .= '</tr><tr>';
}    
   $ret .= '<td><center><a href="'.$baseURL.'" target="_blank">'.$imgState.'</a></center></td>';
   $ret .= '<td><center>'.$imgQueries.' '.$totalQueries.'</center></td>';
   $ret .= '<td><center>'.$imgBlocked.' '.$blocked.' ('.$blockedPercentage.'%)'.'</center></td>';
   $ret .= '<td><center>'.$cmd.'</center></td>';
   $ret .= '</tr></table>';

return $ret;
}


Viele Grüße Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: binford6000 am 04 März 2023, 10:46:15
ZitatWenn ich auf Disable (Minutes) drücke, poppt ein Fenster mit folgendem Inhalt auf:

Da musst du 'Disable' auf 'disable' in der der sub piholeDevStateIcon ändern.
Der Setter im HTTPMOD device heißt schließlich auch 'disable':
$cmd  =       $callMe.'disable 60">1min</a>';
$cmd .= ' | '.$callMe.'disable 300">5min</a>';
$cmd .= ' | '.$callMe.'disable 600">10min</a>';


Gleiches gilt fürs Enablen  ;)

VG Sebastian
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Ralli am 04 März 2023, 11:06:37
Danke @fh168 und @Benni. Ich nutze pi-hole schon länger in einem Container, zwischenzeitlich habe ich im Zuge der 2-DNS-Strategie auch noch AdGuard in einem anderen Container laufen. Funktioniert prächtig.

Dank eurer Codeschnipsel habe ich nun zumindest pi-hole auch in FHEM "sichtbarer" gemacht als mit einer einfachen Presence-Definition.
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 11:10:22
@Gisbert: in meiner Variante war aber disable etc. schon immer klein geschrieben? (und hat bei mir funktioniert) ;)

Wenn du die Überschrift nicht dick haben willst, dann folgendes ändern:


if(!$noHeader) {    
    $ret .= '<th>State</th>';
    $ret .= '<th>Queries</th>';
    $ret .= '<th>Blocked</th>';
    $ret .= '<th>FTL versions</th>';
    $ret .= '<th>Core versions</th>';
    $ret .= '<th>'.($state eq 'enabled' ? 'Disable (Minutes)':'Disabled').'</th>';

    $ret .= '</tr><tr>';
}    


in


if(!$noHeader) {    
    $ret .= '<td>State</td>';
    $ret .= '<td>Queries</td>';
    $ret .= '<td>Blocked</td>';
    $ret .= '<td>FTL versions</td>';
    $ret .= '<td>Core versions</td>';
    $ret .= '<td>'.($state eq 'enabled' ? 'Disable (Minutes)':'Disabled').'</td>';

    $ret .= '</tr><tr>';
}    


Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 04 März 2023, 11:28:42
Meine devStateIcon-Funkton hat sich inzwischen natürlich auch etwas wieterentwickelt.

Ich habe jetzt eben noch das Versions/Update-Thema in die Übersicht eingebaut (s. Screenshot im Anhang):


sub piholeDevStateIcon
{
my $name = shift;
my $noHeader=shift;

$noHeader=0 if(!defined($noHeader));

#get %%base_url%% replacement from httpmod device (using HTTPMOD method)
# -> this is the url to the web-ui of Pi-Hole
my $baseURL= HTTPMOD::DoReplacement($defs{$name},'get','%%base_url%%');

#get required readings from pihole httpmod device
my $state =ReadingsVal($name,'status','unknown');
my $totalQueries = ReadingsVal($name,'dns_queries_all_types','0');
my $blocked = ReadingsVal($name,'ads_blocked_today','0');
my $blockedPercentage = round(ReadingsVal($name,'ads_percentage_today','0'),1);
my $adListCount =ReadingsVal($name,'domains_being_blocked','0');
   
    my  $ver_info = 'CORE: '.ReadingsVal($name,'core_current','unknown').' => '.ReadingsVal($name,'core_latest','unknown');
        $ver_info.= "\nFTL: ".ReadingsVal($name,'FTL_current','unknown').' => '.ReadingsVal($name,'FTL_latest','unknown');
        $ver_info.= "\nWEB: ".ReadingsVal($name,'web_current','unknown').' => '.ReadingsVal($name,'web_latest','unknown');
   
    my $ftl_upd=ReadingsNum($name,'FTL_update',0);
    my $core_upd=ReadingsNum($name,'core_update',0);
    my $web_upd=ReadingsNum($name,'web_update',0);

    my $anyUpd=$ftl_upd+$core_upd+$web_upd+0;
   

#prepare dedicated css
#hint: html of device overview is by default embedded in a <div> container
#      which has id attribute set to device's NAME
my  $styleClass ='<style>';
        $styleClass.='#'.$name.' svg {height:15px; width:15px; padding-right:1px;} ';
        $styleClass.='#'.$name.' td {padding-left:10px; padding-right:10px} ';
        $styleClass.='</style>';

#prepare images
my $imgQueries=FW_makeImage('it_i-net@cyan');
my $imgBlocked=FW_makeImage('time_manual_mode@red');
my $imgState  =FW_makeImage($state eq 'enabled' ? '15px-green' : '15px-red');
    my $imgUpdate =FW_makeImage($anyUpd > 0 ? '15px-red' : '15px-green',$ver_info);   

#prepare disable/enable command
my $cmd='';
my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name;
if($state eq 'disabled') {
$callMe .=' enable ';
$cmd =$callMe.'">Enable</a>';
} else {
$callMe .=' disable ';
$cmd  =       $callMe.'60">1</a>';
$cmd .= ' | '.$callMe.'300">5</a>';
$cmd .= ' | '.$callMe.'600">10</a>';
$cmd .= ' | '.$callMe.'900">15</a>';
}

#finally build the html for device overview
my $ret  = $styleClass;
    $ret .= '<table border=0"><tr>';
    #if second argument of this method call is true (=1)
#then do NOT create a table header. Defaults to false (=0)
if(!$noHeader) {    
    $ret .= '<th>State</th>';
    $ret .= '<th>Queries</th>';
    $ret .= '<th>Blocked</th>';
    #$ret .= '<th>Adlist</th>';    
    $ret .= '<th>'.($state eq 'enabled' ? 'Disable [Minutes]':'Disabled').'</th>';
    $ret .= '<th>Upd</th>';           

    $ret .= '</tr><tr>';
}    
        $ret .= '<td><a href="'.$baseURL.'" target="_blank">'.$imgState.'</a></td>';
        $ret .= '<td>'.$imgQueries.' '.$totalQueries.'</td>';
        $ret .= '<td>'.$imgBlocked.' '.$blocked.' ('.$blockedPercentage.' %)'.'</td>';
        #$ret .= '<td>'.$imgAdList.' '.$adListCount.'</td>';
        $ret .= '<td>'.$cmd.'</td>';
        $ret .= '<td>'.$imgUpdate.'</td>';
        $ret .= '</tr></table>';

return $ret;
}


Der Indikator für Upd ist grün, wenn keine Updates vorhanden sind, sonst rot. Beim Hover über dem Update-Indikator werden die aktuellen und die Ausstehenden Versionen als Tooltip angezeigt (s. Screenshot)

gb#



Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 11:33:51
Zitat von: Benni am 04 März 2023, 11:28:42
Meine devStateIcon-Funkton hat sich inzwischen natürlich auch etwas wieterentwickelt.

Ich habe jetzt eben noch das Versions/Update-Thema in die Übersicht eingebaut (s. Screenshot im Anhang):


Der Indikator für Upd ist grün, wenn keine Updates vorhanden sind, sonst rot. Beim Hover über dem Update-Indikator werden die aktuellen und die Ausstehenden Versionen als Tooltip angezeigt (s. Screenshot)

gb#

Das ist nat. schicker als meine Variante...
...von eben: https://forum.fhem.de/index.php/topic,84031.msg1266578.html#msg1266578

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: mumpitzstuff am 04 März 2023, 12:01:48
Top. Die neueste Version funktioniert jetzt auch auf Anhieb. Die aus #35 oder so ging irgendwie gar nicht.

Vielen Dank!
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 04 März 2023, 12:48:24
Hallo Joachim,
hallo Bennie,
hallo Sebastian,

ich hab die neusten Änderungen übernommen, alles funktioniert perfekt.
Mit Disable und disable habe ich mich wohl verheddert.

Die Information über eine neue Version hab ich ausgelagert, da ansonsten der Platz zur Anzeige auf dem Handy nicht ausreicht.
Ich hab ein weiteres userReading definiert:
update_available {if ((ReadingsNum($name,'FTL_update','') + ReadingsNum($name,'core_update','') + ReadingsNum($name,'web_update','')) > 0) {1} else {0}}
Mit einem notify werde ich dann über ein anstehendes update informiert:
defmod pihole_notify notify pihole:update_available: 1 \
{fhem "set Pushover.Nachricht msg 'Pi-hole' 'new version available !!';; \
set PushNotifier.Nachricht message Pi-hole _new version available !!;; \
set Pushbullet.Nachricht message new version available !! | Pi-hole";;}


Wenn so ein ausgelagtere Information per Push-Nachrichten noch eleganter zu lösen ist, dann bin ich slebstverständlich daran interessiert.

Vielen Dank und viele Grüße
Gisbert
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 04 März 2023, 13:07:03
Zitat von: Gisbert am 04 März 2023, 12:48:24
Wenn so ein ausgelagtere Information per Push-Nachrichten noch eleganter zu lösen ist, dann bin ich slebstverständlich daran interessiert.

Na ja, das Userreading kannst du dir auch sparen und direkt auf die Update-Readings triggern:


defmod pihole_notify notify pihole:.*_update:.1 \
{fhem "set Pushover.Nachricht msg 'Pi-hole' 'new version available !!';; \
set PushNotifier.Nachricht message Pi-hole _new version available !!;; \
set Pushbullet.Nachricht message new version available !! | Pi-hole";;}



gb#
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 04 März 2023, 14:04:03
Ich habe übrigens noch folgendes festgestellt:

Wenn man für Pi-Hole kein Passwort gesetzt hat, dann gibt es auch keinen Token, den man übergeben könnte.
Im Web-UI von Pi-Hole bekommt man dann auch statt des Tokens "NO PASSWORD SET" angezeigt.

Das ist nicht schlimm. Wenn man bisher noch keinen pihole-token Wert mit storeKeyValue für das entsprechende HTTPMOD-Device abgelegt hat. Dann wird an das API einfach ein leeres auth="" übergeben. Was in dem Fall auch das korrekte vorgehen ist.

Hatte man allerdings bereits einmal einen pihole-token mit storeKeyValue abgelegt, so lässt sich dieser nicht mehr so einfach löschen oder leeren. Wenn man nun das Passwort für den Pi-Hole rausnimmt (pihole -a -p), dann wird bei den API-Aufrufen der alte pihole-token als auth mitgegeben und da API funktioniert nicht, wg. fehlerhafter Authorization.

Der Schlüssel lässt sich löschen, allerdings nicht über einen einfachen set am HTTPMOD-Device, aber mit der setKeyValue() Funktion, die von fhem.pl bereitgestellt wird.

Dazu braucht man den Schlüssel, unter dem der Token abgelegt wird. Der setzt sich im Falle von HTTPMOD zusammen aus dem Device-Typ (also HTTPMOD), dem Device-Namen (in meinem Fall also pihole) und dem Key (hier pihole-token) in der Form TYPE_NAME_Key .

Daraus ergibt sich dann (bei mir) folgender Schlüsselname:

HTTPMOD_pihole_pihole-token

der lässt sich nun in der FHEM-Kommandozeile durch folgenden Aufruf löschen:


{setKeyValue('HTTPMOD_pihole_pihole-token',undef)}


Die zuvor genannten Methoden funktionieren natürlich auch, aber das Löschen des Schlüssels aus dem Store ist die sauberste Methode.


Möglichkeit 1:
im Attribut, wo der Key aus dem "geheimen" Store gelesen wird, einfach einen Key angeben, den es dort nicht gibt:


attr pihole replacement02Value pihole-token-HAS_NO_PASSWORD

-> hier muss man halt daran denken, dass man das auch wieder zurückändert, falls wieder ein Passwort vergeben wird.

Möglichkeit 2:

Das Pihole-Device umbenennen.
Der Name des Device ist Bestandteil des gespeicherten Keys des Key-Value-Pairs im "geheimen" Store.

Möglichkeit 3:
Den "geheimen" Store direkt bearbeiten ..... ich erklär's mal lieber nicht ;)


gb#


Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: GoldenAmerican am 04 März 2023, 16:08:55
Hallo MadMax,

ja, das war genau das was ich gesucht habe. Eine einfache Anzeige, ob Updates verfügbar sind.
Vielen Dank.

Ralf
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 17:21:00
Zitat von: GoldenAmerican am 04 März 2023, 16:08:55
Hallo MadMax,

ja, das war genau das was ich gesucht habe. Eine einfache Anzeige, ob Updates verfügbar sind.
Vielen Dank.

Ralf

Gerne!

Wobei das hier schicker (und "kürzer") ist: https://forum.fhem.de/index.php/topic,84031.msg1266595.html#msg1266595

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 04 März 2023, 19:45:21
Hallo zusammen,

super Arbeit. Vielen Dank. Ich habe noch eine Fragee zu den Internals "MainURL" und "value". Diese sind bei mir leer. Ist das so ok? Für was sind diese Internals?

Viele Grüße
Jürgen
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: binford6000 am 04 März 2023, 19:50:13
ZitatIst das so ok?
Die Definition enthält keine URL - daher bleibt MainURL auch leer.
value ist bei meinen 12 HTTPMOD-devices überall leer. Gehört wohl so...

VG Sebastian
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 19:51:33
Zitat von: juemuc am 04 März 2023, 19:45:21
Hallo zusammen,

super Arbeit. Vielen Dank. Ich habe noch eine Fragee zu den Internals "MainURL" und "value". Diese sind bei mir leer. Ist das so ok? Für was sind diese Internals?

Viele Grüße
Jürgen

Sind bei mir auch leer.

Verwendet wird ja das Modul HTTPMOD, dieses wird normalerweise mit einer url definiert, dafür sind wohl diese Internals.
Hier wird das Device ja mit "none" also ohne url definiert, daher wohl dann leer...

Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 04 März 2023, 20:15:06
Danke für Eure schnelle Antwort.

Gehe ich korrekt in der Annahme, dass der Zugriff auf die API per http erfolgt? Wenn ja, wo kann ich das auf https ändern?

Hintergrund: Der Pi mit pi-hole ist in einem anderen  VLAN und iich möchte nicht noch einen Port zwischen den VLANs frei geben.

Viele Grüße
Jürgen
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 04 März 2023, 20:22:20
Zitat von: juemuc am 04 März 2023, 20:15:06
Gehe ich korrekt in der Annahme, dass der Zugriff auf die API per http erfolgt? Wenn ja, wo kann ich das auf https ändern?

Ich würde mal schätzen hierrüber:


replacement04Regex %%base_url%%
replacement04Value http://%%ip%%/admin


Gruß, Joachim
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 04 März 2023, 20:37:14
Danke.

Ich sollte mal meine Brille putzen  ::)

Viele Grüße
Jürgen
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Ralli am 05 März 2023, 12:33:18
Für AdGuard habe ich aus den hier geposteten Codeschnipsel eine Adaption gebastelt:

https://forum.fhem.de/index.php/topic,132511.0.html
Titel: Antw:Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 05 März 2023, 17:01:22
Für die FhemApp-User hat binford6000 übrigens noch ein entsprechendes Template erstellt:

https://forum.fhem.de/index.php/topic,132508.msg1266744.html#msg1266744 (https://forum.fhem.de/index.php/topic,132508.msg1266744.html#msg1266744)

Danke dafür! ;)

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 23 März 2023, 16:37:49
Hallo zusammen,

ich habe aktuell eine Fragen zur Darstellung. Bei mir wird aktuell eine neue Version angezeigt, aber der "Update-Botton" ist weiterhin grün. Ausserdem sind die Readings ".._update" auf "0". Das passt aus meiner Sicht nicht. Wo ist der Denkfehler?

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 30 März 2023, 05:51:36
Zitat von: juemuc am 23 März 2023, 16:37:49ich habe aktuell eine Fragen zur Darstellung. Bei mir wird aktuell eine neue Version angezeigt, aber der "Update-Botton" ist weiterhin grün. Ausserdem sind die Readings ".._update" auf "0". Das passt aus meiner Sicht nicht. Wo ist der Denkfehler?

Der Denkfehler ist die Aktualisierungsrate der einzelnen gets.
Wenn du den Code 1:1 übernommen hast (ein list des Device wäre schön gewesen), dann steht bei Versions im get2PollDelay 3600  drin, damit werden die Versionsdaten nicht alle 60 Sekunden abgerufen, wie der rest, sondern frühestens nach 3600 Sekunden, also in etwa jede Stunde.

   get02ExtractAllJSON 1
   get02Name  versions
   get02Poll  1
   get02PollDelay 3600
   get02URL   %%api_url%%?versions&%%auth%%

Du kannst die Versionsinformationen auch jederzeit über get versions am HTTPMOD-Device abrufen und aktualisieren lassen.
Alternativ kannst du auch statt 3600 hier 1 eintragen, dann werden die Versionsinformationen auch alle 60 Sekunden abgerufen .... allerdings ändern die sich eher alle paar Wochen, als alle paar Minuten. ;)

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 30 März 2023, 14:46:20
Hallo Benni,

das ist es leider nicht. Die Werte waren auch am nächsten Tag so. Eventuell liegt es aber an der "Docker-Installation". Bei der "Pi-Installation" war alles ok.
Da ich mittlerweile beide Installationen aktuallisiert habe, ist das Thema erst einmal erledigt.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 30 März 2023, 20:24:57
Hallo Jürgen,

ich nehme an, ein manuelles "get versions" hattest du nicht versucht?

Das kannst du dann das nächste mal machen, damit müssen die Versionsinformationen sofort aktualisiert werden, sonst ist wirklich was faul. Andernfalls liegt es doch am PollDelay. Den kann man wie gesagt auch auf 1 setzen, es ist im Falle von pihole nicht Last-relevant.

Mit der Dockerinstallation kann es eigenltich nichts zu tun haben, die restlichen Informationen kommen auf dem selben "Weg"!

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 30 März 2023, 20:32:02
Hi Benni,

doch. Ich hatte alle "get"-Aufrufe durchgeführt. Ich warte jetzt auf das nächste Update, dann sehen wir weiter.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 01 April 2023, 14:45:56
Hallo Benni,
jetzt gibt es wieder ein Update und das "Problem" tritt wieder auf. core_update steht auf "0".

Hier das list:

Internals:
   BUSY       0
   DEF        none 60
   FUUID      641c69cc-f33f-4885-8c2d-bc4699b620bc05f0
   Interval   60
   MainURL   
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       pihole2
   NOTIFYDEV  global
   NR         388
   NTFY_ORDER 50-pihole2
   STATE      enabled
   TYPE       HTTPMOD
   eventCount 376
   value     
   CompiledRegexes:
   HTTPCookieHash:
     PHPSESSID;/:
       Name       PHPSESSID
       Options    path=/; HttpOnly; SameSite=Strict
       Path       /
       Value      omvqrmgphtrksoccho86odrrs3
   HttpUtils:
     NAME       
     addr       https://ds415:8883
     auth       0
     data       
     displayurl https://ds415:8883/admin/api.php?summaryRaw&auth=14b26dc36b54dc301d95ff0273230c405056cf6cc3e7c252725d827d4315cd7b
     header     Cookie: PHPSESSID=omvqrmgphtrksoccho86odrrs3
     host       ds415
     httpversion 1.0
     ignoreredirects 1
     loglevel   4
     path       /admin/api.php?summaryRaw&auth=14b26dc36b54dc301d95ff0273230c405056cf6cc3e7c252725d827d4315cd7b
     protocol   https
     redirects  0
     timeout    2
     url        https://ds415:8883/admin/api.php?summaryRaw&auth=14b26dc36b54dc301d95ff0273230c405056cf6cc3e7c252725d827d4315cd7b
     sslargs:
   QUEUE:
   READINGS:
     2023-03-31 21:25:29   FTL_branch      master
     2023-03-31 21:25:29   FTL_current     v5.22
     2023-03-31 21:25:29   FTL_latest      v5.22
     2023-03-23 18:33:27   FTL_status      enabled
     2023-03-31 21:25:29   FTL_update      0
     2023-03-31 22:11:29   ads_blocked_today 424
     2023-03-31 22:11:29   ads_percentage_today 3.317424
     2023-03-31 22:11:29   clients_ever_seen 18
     2023-03-31 21:25:29   core_branch     master
     2023-03-31 21:25:29   core_current    v5.16.1
     2023-03-31 21:25:29   core_latest     v5.16.2
     2023-03-31 21:25:29   core_update     0
     2023-03-31 22:11:29   dns_queries_all_replies 12781
     2023-03-31 22:11:29   dns_queries_all_types 12781
     2023-03-31 22:11:29   dns_queries_today 12781
     2023-03-31 22:11:29   domains_being_blocked 194506
     2023-03-31 22:11:29   gravity_last_updated_absolute 1679801531
     2023-03-26 05:32:34   gravity_last_updated_abstime 2023-03-26 05:32:11
     2023-03-31 22:11:29   gravity_last_updated_file_exists 1
     2023-03-31 22:11:29   gravity_last_updated_relative_days 5
     2023-03-31 22:11:29   gravity_last_updated_relative_hours 16
     2023-03-31 22:11:29   gravity_last_updated_relative_minutes 39
     2023-03-31 22:11:29   privacy_level   3
     2023-03-31 22:11:29   queries_cached  1833
     2023-03-31 22:11:29   queries_forwarded 10451
     2023-03-31 22:11:29   reply_BLOB      20
     2023-03-31 22:11:29   reply_CNAME     3931
     2023-03-31 22:11:29   reply_DNSSEC    338
     2023-03-31 22:11:29   reply_DOMAIN    165
     2023-03-31 22:11:29   reply_IP        1495
     2023-03-31 22:11:29   reply_NODATA    970
     2023-03-31 22:11:29   reply_NONE      0
     2023-03-31 22:11:29   reply_NOTIMP    0
     2023-03-31 22:11:29   reply_NXDOMAIN  67
     2023-03-31 22:11:29   reply_OTHER     0
     2023-03-31 22:11:29   reply_REFUSED   0
     2023-03-31 22:11:29   reply_RRNAME    19
     2023-03-31 22:11:29   reply_SERVFAIL  22
     2023-03-31 22:11:29   reply_UNKNOWN   5754
     2023-03-31 22:11:29   status          enabled
     2023-03-31 22:11:29   unique_clients  14
     2023-03-31 22:11:29   unique_domains  4560
     2023-03-31 21:25:29   web_branch      master
     2023-03-31 21:25:29   web_current     v5.19
     2023-03-31 21:25:29   web_latest      v5.19
     2023-03-31 21:25:29   web_update      0
   REQUEST:
     context    get
     data       
     header     
     ignoreredirects 0
     num        01
     retryCount 0
     type       get01
     url        %%api_url%%?summaryRaw&%%auth%%
   defptr:
     readingBase:
       FTL_branch get
       FTL_current get
       FTL_latest get
       FTL_update get
       ads_blocked_today get
       ads_percentage_today get
       clients_ever_seen get
       core_branch get
       core_current get
       core_latest get
       core_update get
       dns_queries_all_replies get
       dns_queries_all_types get
       dns_queries_today get
       domains_being_blocked get
       gravity_last_updated_absolute get
       gravity_last_updated_file_exists get
       gravity_last_updated_relative_days get
       gravity_last_updated_relative_hours get
       gravity_last_updated_relative_minutes get
       privacy_level get
       queries_cached get
       queries_forwarded get
       reply_BLOB get
       reply_CNAME get
       reply_DNSSEC get
       reply_DOMAIN get
       reply_IP   get
       reply_NODATA get
       reply_NONE get
       reply_NOTIMP get
       reply_NXDOMAIN get
       reply_OTHER get
       reply_REFUSED get
       reply_RRNAME get
       reply_SERVFAIL get
       reply_UNKNOWN get
       status     get
       unique_clients get
       unique_domains get
       web_branch get
       web_current get
       web_latest get
       web_update get
     readingNum:
       FTL_branch 02
       FTL_current 02
       FTL_latest 02
       FTL_update 02
       ads_blocked_today 01
       ads_percentage_today 01
       clients_ever_seen 01
       core_branch 02
       core_current 02
       core_latest 02
       core_update 02
       dns_queries_all_replies 01
       dns_queries_all_types 01
       dns_queries_today 01
       domains_being_blocked 01
       gravity_last_updated_absolute 01
       gravity_last_updated_file_exists 01
       gravity_last_updated_relative_days 01
       gravity_last_updated_relative_hours 01
       gravity_last_updated_relative_minutes 01
       privacy_level 01
       queries_cached 01
       queries_forwarded 01
       reply_BLOB 01
       reply_CNAME 01
       reply_DNSSEC 01
       reply_DOMAIN 01
       reply_IP   01
       reply_NODATA 01
       reply_NONE 01
       reply_NOTIMP 01
       reply_NXDOMAIN 01
       reply_OTHER 01
       reply_REFUSED 01
       reply_RRNAME 01
       reply_SERVFAIL 01
       reply_UNKNOWN 01
       status     01
       unique_clients 01
       unique_domains 01
       web_branch 02
       web_current 02
       web_latest 02
       web_update 02
     readingOutdated:
     requestReadings:
       get01:
         FTL_branch get 01
         FTL_current get 01
         FTL_latest get 01
         FTL_update get 01
         ads_blocked_today get 01
         ads_percentage_today get 01
         clients_ever_seen get 01
         core_branch get 01
         core_current get 01
         core_latest get 01
         core_update get 01
         dns_queries_all_replies get 01
         dns_queries_all_types get 01
         dns_queries_today get 01
         domains_being_blocked get 01
         gravity_last_updated_absolute get 01
         gravity_last_updated_file_exists get 01
         gravity_last_updated_relative_days get 01
         gravity_last_updated_relative_hours get 01
         gravity_last_updated_relative_minutes get 01
         privacy_level get 01
         queries_cached get 01
         queries_forwarded get 01
         reply_BLOB get 01
         reply_CNAME get 01
         reply_DNSSEC get 01
         reply_DOMAIN get 01
         reply_IP   get 01
         reply_NODATA get 01
         reply_NONE get 01
         reply_NOTIMP get 01
         reply_NXDOMAIN get 01
         reply_OTHER get 01
         reply_REFUSED get 01
         reply_RRNAME get 01
         reply_SERVFAIL get 01
         reply_UNKNOWN get 01
         status     get 01
         unique_clients get 01
         unique_domains get 01
         web_branch get 01
         web_current get 01
         web_latest get 01
         web_update get 01
       get02:
         FTL_branch get 02
         FTL_current get 02
         FTL_latest get 02
         FTL_update get 02
         core_branch get 02
         core_current get 02
         core_latest get 02
         core_update get 02
         web_branch get 02
         web_current get 02
         web_latest get 02
         web_update get 02
   lastpoll:
     summary    1680352953.57898
     versions   1680351933.51767
Attributes:
   alias      Pi-Hole-2
   devStateIcon {piholeDevStateIcon($name)}
   enforceGoodReadingNames 1
   event-on-change-reading .*
   get01ExtractAllJSON 1
   get01Name  summary
   get01Poll  1
   get01URL   %%api_url%%?summaryRaw&%%auth%%
   get02ExtractAllJSON 1
   get02Name  versions
   get02Poll  1
   get02PollDelay 3600
   get02URL   %%api_url%%?versions&%%auth%%
   get03JSON  status
   get03Name  FTL_status
   get03URL   %%api_url%%?status&%%auth%%
   get04JSON  type
   get04Name  FTL_type
   get04URL   %%api_url%%?type&%%auth%%
   get05JSON  version
   get05Name  FTL_version
   get05URL   %%api_url%%?version&%%auth%%
   group      pi-hole
   icon       it_raspberry_logo@black
   replacement01Mode text
   replacement01Regex %%auth%%
   replacement01Value auth=%%pihole-token%%
   replacement02Mode key
   replacement02Regex %%pihole-token%%
   replacement02Value pihole-token
   replacement03Mode text
   replacement03Regex %%api_url%%
   replacement03Value %%base_url%%/api.php
   replacement04Mode text
   replacement04Regex %%base_url%%
   replacement04Value https://%%ip%%/admin
   replacement05Mode text
   replacement05Regex %%ip%%
   replacement05Value ds415:8883
   room       Systemdaten
   set01ExtractAllJSON 1
   set01Hint  10,60,180,300,600,900
   set01Max   900
   set01Min   10
   set01Name  disable
   set01ParseResponse 1
   set01URL   %%api_url%%?disable=$val&%%auth%%
   set02ExtractAllJSON 1
   set02Name  enable
   set02NoArg 1
   set02ParseResponse 1
   set02URL   %%api_url%%?enable&%%auth%%
   stateFormat status
   userReadings gravity_last_updated_abstime:gravity_last_updated_absolute.* {strftime('%Y-%m-%d %H:%M:%S', localtime(ReadingsNum($name,'gravity_last_updated_absolute',0)))}

Hast Du eine Idee. Bei der Pi-Installation ist alles ok. Hier sind alle Werte korrekt vorhanden.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Ralli am 01 April 2023, 15:25:17
Das Reading core_update wird doch durch den entsprechenden von pihole abgefragten Wert von pihole gefüllt. Das "Problem" liegt hier m.E. nicht in der Def oder in der myUtils-Funktion sondern in einem "fehlerhaften" Wert seitens pihole.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 01 April 2023, 16:10:23
Zitat von: juemuc am 01 April 2023, 14:45:56Hast Du eine Idee. Bei der Pi-Installation ist alles ok. Hier sind alle Werte korrekt vorhanden.

Bist du sicher?
Mein pihole weiß aktuell nix von einem update:

Bildschirm�foto 2023-04-01 um 16.05.30.png

Wenn da keine aktuellen Werte stehen, können sie in FHEM natürlich auch nicht besser sein. ;)

Bildschirm�foto 2023-04-01 um 16.09.34.png

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 01 April 2023, 16:14:34
Ja  8)

Hier die Info aus der "API"

core_update false
web_update false
FTL_update false
core_current "v5.16.1"
web_current "v5.19"
FTL_current "v5.22"
core_latest "v5.16.2"
web_latest "v5.19"
FTL_latest "v5.22"
core_branch "master"
web_branch "master"
FTL_branch "master"

Die API scheint wirklich im Docker einen falschen Wert zu liefern.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 01 April 2023, 16:23:30
Zitat von: juemuc am 01 April 2023, 16:14:34Die API scheint wirklich im Docker einen falschen Wert zu liefern.

Da kann ich dir leider nicht weiterhelfen. Ich habe pihole "nativ" unter debian in einem LXC-Container auf proxmox laufen.

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 01 April 2023, 16:52:01
Ich habe nun im "pihole"-Forum eine Anfrage gestellt und werden dann hier über das Ergebnis informieren.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Wernieman am 02 April 2023, 10:21:51
Da ich pihole auch im Docker laufen habe, aber nicht mit FHEM verbunden, hast Du auf die schnelle den Code, um die Werte so abzufragen wie bei FHEM? Dann würde ich es bei mir nachstellen ...

Wenn, dann liegt es nicht an Docker, sondern das der Container von PiHole etwas komisch gebaut wurde ... teoretisch dürfte es kein Unterschied geben (abgesehen vom genannten bauen)
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Benni am 02 April 2023, 10:29:22
Der letzte Stand des HTTPMOD-Device findet sich hier:

https://forum.fhem.de/index.php?topic=84031.msg1266579#msg1266579

Die aktuellste Funktion für das devStateIcon findet sich hier:

https://forum.fhem.de/index.php?topic=84031.msg1266595#msg1266595

Und die grundsätzlichen Infos zur Einrichtung, v.a. bzgl. Passwort finden sich hier:

https://forum.fhem.de/index.php?topic=84031.msg1266595#msg1266595
und hier:
https://forum.fhem.de/index.php?topic=84031.msg1266622#msg1266622

(... könnte man eigentlich auch mal in einen Wiki-Eintrag gießen)

gb#
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 02 April 2023, 10:31:53
Hallo Wernieman,

was liefert bei Dir im Browser "https://DNS:PORT/admin/api.php?versions"? "DNS:PORT" musst Du durch Deine Daten ersetzen und Du musst mit "admin" angemeldet sein.

Ich bekomme dann ein fehlerhaftes Ergebnis:

core_update    false
web_update    false
FTL_update    false
core_current    "v5.16.1"
web_current    "v5.19"
FTL_current    "v5.22"
core_latest    "v5.16.2"
web_latest    "v5.19"
FTL_latest    "v5.22"
core_branch    "master"
web_branch    "master"
FTL_branch    "master"


Hier meine Definition:
defmod pihole2 HTTPMOD none 60
attr pihole2 alias Pi-Hole-2
attr pihole2 devStateIcon {piholeDevStateIcon($name)}
attr pihole2 enforceGoodReadingNames 1
attr pihole2 event-on-change-reading .*
attr pihole2 get01ExtractAllJSON 1
attr pihole2 get01Name summary
attr pihole2 get01Poll 1
attr pihole2 get01URL %%api_url%%?summaryRaw&%%auth%%
attr pihole2 get02ExtractAllJSON 1
attr pihole2 get02Name versions
attr pihole2 get02Poll 1
attr pihole2 get02PollDelay 3600
attr pihole2 get02URL %%api_url%%?versions&%%auth%%
attr pihole2 get03JSON status
attr pihole2 get03Name FTL_status
attr pihole2 get03URL %%api_url%%?status&%%auth%%
attr pihole2 get04JSON type
attr pihole2 get04Name FTL_type
attr pihole2 get04URL %%api_url%%?type&%%auth%%
attr pihole2 get05JSON version
attr pihole2 get05Name FTL_version
attr pihole2 get05URL %%api_url%%?version&%%auth%%
attr pihole2 group pi-hole
attr pihole2 icon it_raspberry_logo@black
attr pihole2 replacement01Mode text
attr pihole2 replacement01Regex %%auth%%
attr pihole2 replacement01Value auth=%%pihole-token%%
attr pihole2 replacement02Mode key
attr pihole2 replacement02Regex %%pihole-token%%
attr pihole2 replacement02Value pihole-token
attr pihole2 replacement03Mode text
attr pihole2 replacement03Regex %%api_url%%
attr pihole2 replacement03Value %%base_url%%/api.php
attr pihole2 replacement04Mode text
attr pihole2 replacement04Regex %%base_url%%
attr pihole2 replacement04Value https://%%ip%%/admin
attr pihole2 replacement05Mode text
attr pihole2 replacement05Regex %%ip%%
attr pihole2 replacement05Value DNS:PORT
attr pihole2 room Systemdaten
attr pihole2 set01ExtractAllJSON 1
attr pihole2 set01Hint 10,60,180,300,600,900
attr pihole2 set01Max 900
attr pihole2 set01Min 10
attr pihole2 set01Name disable
attr pihole2 set01ParseResponse 1
attr pihole2 set01URL %%api_url%%?disable=$val&%%auth%%
attr pihole2 set02ExtractAllJSON 1
attr pihole2 set02Name enable
attr pihole2 set02NoArg 1
attr pihole2 set02ParseResponse 1
attr pihole2 set02URL %%api_url%%?enable&%%auth%%
attr pihole2 stateFormat status
attr pihole2 userReadings gravity_last_updated_abstime:gravity_last_updated_absolute.* {strftime('%Y-%m-%d %H:%M:%S', localtime(ReadingsNum($name,'gravity_last_updated_absolute',0)))}

Du musst hier Deine Daten eintragen: "attr pihole2 replacement05Value DNS:PORT" und natürlich die anderen Punkte hier aus dem Forum beachten.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Wernieman am 02 April 2023, 11:49:09
Ich möchte es eben nicht in FHEM direkt eintragen, deshalb hatte ich nach dem Web-Link gefragt ....

core_update false
web_update false
FTL_update false
core_current "v5.16.2"
web_current "v5.19"
FTL_current "v5.22"
core_latest "v5.16.2"
web_latest "v5.19"
FTL_latest "v5.22"
core_branch "master"
web_branch "master"
FTL_branch "master"
Scheinbar ist im Offiziellen Container wirklich etwas "komisch" gebaut. Welches Image verwendest Du?

Ich habe bei mir in der docker-compose.yml
image: pihole/pihole:latest
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 02 April 2023, 11:55:03
Ich nutze auch image: pihole/pihole:latest auf einem Synology-NAS. Allerdings habe ich noch "Docker Tag 2023.03.0"

Bei Dir sind die Werte ja ok. Du hast wahrscheinlich in den letzten Tagen ein Update durchgeführt.

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Wernieman am 02 April 2023, 12:01:11
Es läuft bei mir ein WatchTower ... ja, es sollte aktuell sein ...
Und nein, es ist keine Standard Installation. Sitzt z.B. hinter einem http-Proxy ....
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 03 April 2023, 16:16:59
Laut pi-hole-Forum liefert die pi-hole-API für die Docker-Installation keine korrekten Werte. Dies sei auch nicht sinnvoll. pi-hole-Forum (https://discourse.pi-hole.net/t/wrong-api-information-versions/62215/4)

@Wernieman: wie fragst Du ab, ob es eine neue Docker-Version gibt?

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Wernieman am 03 April 2023, 17:27:45
s.o. WatchTower .... macht gleich die Aktuallisierungen.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 21 Juni 2023, 12:37:17
Hallo zusammen,

ich bin dabei einen neuen Server mit Proxmox aufzusetzen. Ich hab für Pi-hole einen Container erstellt, Pi-hole installiert. Es läuft, d.h. ich kann mich auf die Weboberfläche einloggen.

In Fhem habe die URL des neuen Pi-hole-Servers eingetragen:
attr pihole replacement05Value 192.168.1.70sowie das Passwort mit
set pihole storeKeyValue <Webpasswort>geändert.
Ich bekomme aber keine Updates in Fhem. Irgendwo muss ich mich wohl verheddert haben, nur wo?

Im LX-Container, den ich für Pi-hole nutze, ist nur ein root-User vorhanden. Kann es daran liegen. Wie gesagt komme ich auf die Weboberfläche und kann dort alles sehen, auch kann ich disablen oder enablen.

Viele Grüße
Gisbert

Hier noch ein list, die ganzen Readings stammen noch von Pi-hole auf dem vorherigen Server:
define pihole HTTPMOD none 60
attr pihole userattr
attr pihole alias Pi-Hole
attr pihole comment Neue IP-Adresse: 192.168.1.70\
Update Pi-hole: pihole -up
attr pihole devStateIcon {piholeDevStateIcon($name)}
attr pihole enforceGoodReadingNames 1
attr pihole event-on-change-reading .*
attr pihole get01ExtractAllJSON 1
attr pihole get01Name summary
attr pihole get01Poll 1
attr pihole get01URL %%api_url%%?summaryRaw&%%auth%%
attr pihole get02ExtractAllJSON 1
attr pihole get02Name versions
attr pihole get02Poll 1
attr pihole get02PollDelay 3600
attr pihole get02URL %%api_url%%?versions&%%auth%%
attr pihole get03JSON status
attr pihole get03Name FTL_status
attr pihole get03URL %%api_url%%?status&%%auth%%
attr pihole get04JSON type
attr pihole get04Name FTL_type
attr pihole get04URL %%api_url%%?type&%%auth%%
attr pihole get05JSON version
attr pihole get05Name FTL_version
attr pihole get05URL %%api_url%%?version&%%auth%%
attr pihole group Performance
attr pihole icon it_internet
attr pihole replacement01Mode text
attr pihole replacement01Regex %%auth%%
attr pihole replacement01Value auth=%%pihole-token%%
attr pihole replacement02Mode key
attr pihole replacement02Regex %%pihole-token%%
attr pihole replacement02Value pihole-token
attr pihole replacement03Mode text
attr pihole replacement03Regex %%api_url%%
attr pihole replacement03Value %%base_url%%/api.php
attr pihole replacement04Mode text
attr pihole replacement04Regex %%base_url%%
attr pihole replacement04Value http://%%ip%%/admin
attr pihole replacement05Mode text
attr pihole replacement05Regex %%ip%%
attr pihole replacement05Value 192.168.1.70
attr pihole room Network
attr pihole set01ExtractAllJSON 1
attr pihole set01Hint 10,60,180,300,600,900
attr pihole set01Max 900
attr pihole set01Min 10
attr pihole set01Name disable
attr pihole set01ParseResponse 1
attr pihole set01URL %%api_url%%?disable=$val&%%auth%%
attr pihole set02ExtractAllJSON 1
attr pihole set02Name enable
attr pihole set02NoArg 1
attr pihole set02ParseResponse 1
attr pihole set02URL %%api_url%%?enable&%%auth%%
attr pihole stateFormat status
attr pihole userReadings gravity_last_updated_abstime:gravity_last_updated_absolute.* {strftime('%Y-%m-%d %H:%M:%S', localtime(ReadingsNum($name,'gravity_last_updated_absolute',0)))}
#   BUSY       0
#   CFGFN      ./FHEM/NetzwerkServerTV.cfg
#   DEF        none 60
#   FUUID      64030a7d-f33f-e986-ee58-2856209bf6c10a9b
#   Interval   60
#   MainURL   
#   ModuleVersion 4.1.15 - 17.12.2022
#   NAME       pihole
#   NOTIFYDEV  global
#   NR         1194
#   NTFY_ORDER 50-pihole
#   STATE      enabled
#   TYPE       HTTPMOD
#   eventCount 1591
#   value     
#   CompiledRegexes:
#   HTTPCookieHash:
#     PHPSESSID;/:
#       Name       PHPSESSID
#       Options    path=/; HttpOnly; SameSite=Strict
#       Path       /
#       Value      gob67lbesi66df0o86ceini4vf
#   HttpUtils:
#     NAME       
#     addr       http://192.168.1.70:80
#     auth       0
#     buf       
#     code       200
#     compress   1
#     conn       
#     data       
#     displayurl http://192.168.1.70/admin/api.php?summaryRaw&auth=7IjQB_6D
#     header     Cookie: PHPSESSID=gob67lbesi66df0o86ceini4vf
#     host       192.168.1.70
#     httpheader HTTP/1.0 200 OK
#Expires: Thu, 19 Nov 1981 08:52:00 GMT
#Cache-Control: no-store, no-cache, must-revalidate
#Pragma: no-cache
#Set-Cookie: PHPSESSID=gob67lbesi66df0o86ceini4vf; path=/; HttpOnly; SameSite=Strict
#Content-type: application/json
#X-Pi-hole: The Pi-hole Web interface is working!
#X-Frame-Options: DENY
#X-XSS-Protection: 0
#X-Content-Type-Options: nosniff
#Content-Security-Policy: default-src 'self' 'unsafe-inline';
#X-Permitted-Cross-Domain-Policies: none
#Referrer-Policy: same-origin
#Content-Length: 2
#Connection: close
#Date: Wed, 21 Jun 2023 10:23:55 GMT
#Server: lighttpd/1.4.69
#     httpversion 1.0
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    80
#     hu_portSfx
#     ignoreredirects 1
#     loglevel   4
#     path       /admin/api.php?summaryRaw&auth=7IjQB_6D
#     protocol   http
#     redirects  0
#     timeout    2
#     url        http://192.168.1.70/admin/api.php?summaryRaw&auth=7IjQB_6D
#     sslargs:
#   QUEUE:
#   READINGS:
#     2023-06-21 11:51:26   FTL_branch      master
#     2023-06-21 11:51:26   FTL_current     v5.23
#     2023-06-21 11:51:26   FTL_latest      v5.23
#     2023-03-04 10:12:39   FTL_status      enabled
#     2023-06-21 11:51:26   FTL_update      0
#     2023-03-04 10:12:35   FTL_version     3
#     2023-06-21 11:48:50   ads_blocked_today 10753
#     2023-06-21 11:48:50   ads_percentage_today 54.37949
#     2023-06-21 11:48:50   clients_ever_seen 6
#     2023-06-21 11:51:26   core_branch     master
#     2023-06-21 11:51:26   core_current    v5.17.1
#     2023-06-21 11:51:26   core_latest     v5.17.1
#     2023-06-21 11:51:26   core_update     0
#     2023-06-21 11:48:50   dns_queries_all_replies 19774
#     2023-06-21 11:48:50   dns_queries_all_types 19774
#     2023-06-21 11:48:50   dns_queries_today 19774
#     2023-06-21 11:48:50   domains_being_blocked 205771
#     2023-06-21 11:48:50   gravity_last_updated_absolute 1687054748
#     2023-06-18 04:19:22   gravity_last_updated_abstime 2023-06-18 04:19:08
#     2023-06-21 11:48:50   gravity_last_updated_file_exists 1
#     2023-06-21 11:48:50   gravity_last_updated_relative_days 3
#     2023-06-21 11:48:50   gravity_last_updated_relative_hours 7
#     2023-06-21 11:48:50   gravity_last_updated_relative_minutes 29
#     2023-06-21 11:48:50   privacy_level   0
#     2023-06-21 11:48:50   queries_cached  2204
#     2023-06-21 11:48:50   queries_forwarded 6679
#     2023-06-21 11:48:50   reply_BLOB      64
#     2023-06-21 11:48:50   reply_CNAME     3370
#     2023-06-21 11:48:50   reply_DNSSEC    0
#     2023-06-21 11:48:50   reply_DOMAIN    0
#     2023-06-21 11:48:50   reply_IP        14138
#     2023-06-21 11:48:50   reply_NODATA    667
#     2023-06-21 11:48:50   reply_NONE      0
#     2023-06-21 11:48:50   reply_NOTIMP    0
#     2023-06-21 11:48:50   reply_NXDOMAIN  1349
#     2023-06-21 11:48:50   reply_OTHER     0
#     2023-06-21 11:48:50   reply_REFUSED   0
#     2023-06-21 11:48:50   reply_RRNAME    25
#     2023-06-21 11:48:50   reply_SERVFAIL  25
#     2023-06-21 11:48:50   reply_UNKNOWN   136
#     2023-06-21 11:48:50   status          enabled
#     2023-06-21 11:48:50   unique_clients  6
#     2023-06-21 11:48:50   unique_domains  3092
#     2023-06-21 11:51:26   web_branch      master
#     2023-06-21 11:51:26   web_current     v5.20.1
#     2023-06-21 11:51:26   web_latest      v5.20.1
#     2023-06-21 11:51:26   web_update      0
#   REQUEST:
#     context    get
#     data       
#     header     
#     ignoreredirects 0
#     num        01
#     retryCount 0
#     type       get01
#     url        %%api_url%%?summaryRaw&%%auth%%
#   defptr:
#     readingBase:
#       FTL_branch get
#       FTL_current get
#       FTL_latest get
#       FTL_update get
#       ads_blocked_today get
#       ads_percentage_today get
#       clients_ever_seen get
#       core_branch get
#       core_current get
#       core_latest get
#       core_update get
#       dns_queries_all_replies get
#       dns_queries_all_types get
#       dns_queries_today get
#       domains_being_blocked get
#       gravity_last_updated_absolute get
#       gravity_last_updated_file_exists get
#       gravity_last_updated_relative_days get
#       gravity_last_updated_relative_hours get
#       gravity_last_updated_relative_minutes get
#       privacy_level get
#       queries_cached get
#       queries_forwarded get
#       reply_BLOB get
#       reply_CNAME get
#       reply_DNSSEC get
#       reply_DOMAIN get
#       reply_IP   get
#       reply_NODATA get
#       reply_NONE get
#       reply_NOTIMP get
#       reply_NXDOMAIN get
#       reply_OTHER get
#       reply_REFUSED get
#       reply_RRNAME get
#       reply_SERVFAIL get
#       reply_UNKNOWN get
#       status     get
#       unique_clients get
#       unique_domains get
#       web_branch get
#       web_current get
#       web_latest get
#       web_update get
#     readingNum:
#       FTL_branch 02
#       FTL_current 02
#       FTL_latest 02
#       FTL_update 02
#       ads_blocked_today 01
#       ads_percentage_today 01
#       clients_ever_seen 01
#       core_branch 02
#       core_current 02
#       core_latest 02
#       core_update 02
#       dns_queries_all_replies 01
#       dns_queries_all_types 01
#       dns_queries_today 01
#       domains_being_blocked 01
#       gravity_last_updated_absolute 01
#       gravity_last_updated_file_exists 01
#       gravity_last_updated_relative_days 01
#       gravity_last_updated_relative_hours 01
#       gravity_last_updated_relative_minutes 01
#       privacy_level 01
#       queries_cached 01
#       queries_forwarded 01
#       reply_BLOB 01
#       reply_CNAME 01
#       reply_DNSSEC 01
#       reply_DOMAIN 01
#       reply_IP   01
#       reply_NODATA 01
#       reply_NONE 01
#       reply_NOTIMP 01
#       reply_NXDOMAIN 01
#       reply_OTHER 01
#       reply_REFUSED 01
#       reply_RRNAME 01
#       reply_SERVFAIL 01
#       reply_UNKNOWN 01
#       status     01
#       unique_clients 01
#       unique_domains 01
#       web_branch 02
#       web_current 02
#       web_latest 02
#       web_update 02
#     readingOutdated:
#     requestReadings:
#       get01:
#         ads_blocked_today get 01
#         ads_percentage_today get 01
#         clients_ever_seen get 01
#         dns_queries_all_replies get 01
#         dns_queries_all_types get 01
#         dns_queries_today get 01
#         domains_being_blocked get 01
#         gravity_last_updated_absolute get 01
#         gravity_last_updated_file_exists get 01
#         gravity_last_updated_relative_days get 01
#         gravity_last_updated_relative_hours get 01
#         gravity_last_updated_relative_minutes get 01
#         privacy_level get 01
#         queries_cached get 01
#         queries_forwarded get 01
#         reply_BLOB get 01
#         reply_CNAME get 01
#         reply_DNSSEC get 01
#         reply_DOMAIN get 01
#         reply_IP   get 01
#         reply_NODATA get 01
#         reply_NONE get 01
#         reply_NOTIMP get 01
#         reply_NXDOMAIN get 01
#         reply_OTHER get 01
#         reply_REFUSED get 01
#         reply_RRNAME get 01
#         reply_SERVFAIL get 01
#         reply_UNKNOWN get 01
#         status     get 01
#         unique_clients get 01
#         unique_domains get 01
#       get02:
#         FTL_branch get 02
#         FTL_current get 02
#         FTL_latest get 02
#         FTL_update get 02
#         core_branch get 02
#         core_current get 02
#         core_latest get 02
#         core_update get 02
#         web_branch get 02
#         web_current get 02
#         web_latest get 02
#         web_update get 02
#   helper:
#     bm:
#       CODE(0x5583ce7df4b0):
#         cnt        187
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        20.06. 09:48:16
#         max        0.0160360336303711
#         tot        0.270743131637573
#         mAr:
#           HASH(0x5583d4c0e568)
#           pihole
#           ?
#       CODE(0x5583ce8c2700):
#         cnt        1
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        21.06. 11:48:49
#         max        0.00338411331176758
#         tot        0.00338411331176758
#         mAr:
#           HASH(0x5583d4c0e568)
#           pihole HTTPMOD none 60
#       CODE(0x5583ce8c28b0):
#         cnt        71
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        21.06. 11:48:50
#         max        3.09944152832031e-05
#         tot        0.00143766403198242
#         mAr:
#           HASH(0x5583d4c0e568)
#           HASH(0x5583c8fc5168)
#       CODE(0x5583ce8c4af8):
#         cnt        58
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        21.06. 11:48:50
#         max        0.0158441066741943
#         tot        0.28801965713501
#         mAr:
#           set
#           pihole
#           devStateIcon
#           {piholeDevStateIcon($name)}
#       CODE(0x5583ce8c4bd0):
#         cnt        31
#         dmx        -1000
#         dtot       0
#         dtotcnt    0
#         mTS        21.06. 11:51:26
#         max        0.0112020969390869
#         tot        0.0244996547698975
#         mAr:
#           HASH(0x5583d4c0e568)
#           pihole
#           versions
#   lastpoll:
#     summary    1687343035.76795
#     versions   1687340929.92065
#
setstate pihole enabled
setstate pihole 2023-06-21 11:51:26 FTL_branch master
setstate pihole 2023-06-21 11:51:26 FTL_current v5.23
setstate pihole 2023-06-21 11:51:26 FTL_latest v5.23
setstate pihole 2023-03-04 10:12:39 FTL_status enabled
setstate pihole 2023-06-21 11:51:26 FTL_update 0
setstate pihole 2023-03-04 10:12:35 FTL_version 3
setstate pihole 2023-06-21 11:48:50 ads_blocked_today 10753
setstate pihole 2023-06-21 11:48:50 ads_percentage_today 54.37949
setstate pihole 2023-06-21 11:48:50 clients_ever_seen 6
setstate pihole 2023-06-21 11:51:26 core_branch master
setstate pihole 2023-06-21 11:51:26 core_current v5.17.1
setstate pihole 2023-06-21 11:51:26 core_latest v5.17.1
setstate pihole 2023-06-21 11:51:26 core_update 0
setstate pihole 2023-06-21 11:48:50 dns_queries_all_replies 19774
setstate pihole 2023-06-21 11:48:50 dns_queries_all_types 19774
setstate pihole 2023-06-21 11:48:50 dns_queries_today 19774
setstate pihole 2023-06-21 11:48:50 domains_being_blocked 205771
setstate pihole 2023-06-21 11:48:50 gravity_last_updated_absolute 1687054748
setstate pihole 2023-06-18 04:19:22 gravity_last_updated_abstime 2023-06-18 04:19:08
setstate pihole 2023-06-21 11:48:50 gravity_last_updated_file_exists 1
setstate pihole 2023-06-21 11:48:50 gravity_last_updated_relative_days 3
setstate pihole 2023-06-21 11:48:50 gravity_last_updated_relative_hours 7
setstate pihole 2023-06-21 11:48:50 gravity_last_updated_relative_minutes 29
setstate pihole 2023-06-21 11:48:50 privacy_level 0
setstate pihole 2023-06-21 11:48:50 queries_cached 2204
setstate pihole 2023-06-21 11:48:50 queries_forwarded 6679
setstate pihole 2023-06-21 11:48:50 reply_BLOB 64
setstate pihole 2023-06-21 11:48:50 reply_CNAME 3370
setstate pihole 2023-06-21 11:48:50 reply_DNSSEC 0
setstate pihole 2023-06-21 11:48:50 reply_DOMAIN 0
setstate pihole 2023-06-21 11:48:50 reply_IP 14138
setstate pihole 2023-06-21 11:48:50 reply_NODATA 667
setstate pihole 2023-06-21 11:48:50 reply_NONE 0
setstate pihole 2023-06-21 11:48:50 reply_NOTIMP 0
setstate pihole 2023-06-21 11:48:50 reply_NXDOMAIN 1349
setstate pihole 2023-06-21 11:48:50 reply_OTHER 0
setstate pihole 2023-06-21 11:48:50 reply_REFUSED 0
setstate pihole 2023-06-21 11:48:50 reply_RRNAME 25
setstate pihole 2023-06-21 11:48:50 reply_SERVFAIL 25
setstate pihole 2023-06-21 11:48:50 reply_UNKNOWN 136
setstate pihole 2023-06-21 11:48:50 status enabled
setstate pihole 2023-06-21 11:48:50 unique_clients 6
setstate pihole 2023-06-21 11:48:50 unique_domains 3092
setstate pihole 2023-06-21 11:51:26 web_branch master
setstate pihole 2023-06-21 11:51:26 web_current v5.20.1
setstate pihole 2023-06-21 11:51:26 web_latest v5.20.1
setstate pihole 2023-06-21 11:51:26 web_update 0
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: binford6000 am 21 Juni 2023, 12:54:02
Hast du das Passwort oder das API-Token gestezt. Letzteres ist dasd richtige.
Zu finden unter Settings -> API -> Show API Token

VG Sebastian
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 21 Juni 2023, 13:29:51
Hallo binford6000,

bingo - das war's. Ich hatte das Webpasswort eingetragen, nicht aber den (sehr langen) API Token.
Jetzt läuft es wieder.

Vielen Dank
Gisbert
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 22 Juni 2023, 08:44:46
Hallo binford6000,

ich hab Pi-hole in Proxmox auf einem Fujitsu Futro S740 installiert. Fhem läuft derzeit noch auf einem HP T610. Ich hab Pi-hole und unbound vom HP T610 deinstalliert.

Zeitgleich sehe ich, dass folgende Module nicht mehr funktionieren, d.h. keine Readings erneuert werden.
Pushover
Signal -> funktioniert wieder nach Perl-Update (sudo cpan install Protocol::DBus)
HTTPMOD
Netatmo

Im log-file gibt es viele Einträge von verschiedenen Devices in der Art:
http request error: DNS: short DNS answer
Was kann denn hier schief gelaufen sein? Ich bin ratlos.

Viele Grüße Gisbert
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 22 Juni 2023, 09:38:28
Evtl. hilft das hier: https://forum.fhem.de/index.php?topic=108266.0

Nutzt du piHole als DNS (vermutlich ja)...

Evtl. da was "verkonfiguriert"?

Hat aber nur bedingt mit diesem Thread zu tun? 8)

Gruß, Joachim
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Gisbert am 22 Juni 2023, 12:18:57
Hallo Joachim,
ich halte mich kurz, da es in diesem Thread off-topic ist; den Link hatte ich auch noch gefunden, wollte aber keinen Doppel-Post machen.
Das Problem war, dass Pi-hole und Fhem jetzt auf unterschiedlichen Servern laufen, aber das Attribut dnsServer in global 127.0.0.1 war. Nachdem ich dort die IP-Adresse des neuen Pi-hole-Servers eingetragen hab, läuft alles wieder wie am Schnürchen. Das ganze hat mich 3 Stunden gekostet, war nahe am Rand der Verzweifelung ::) >:(
Viele Grüße Gisbert
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Solala0815 am 04 Juli 2023, 09:51:37
Bei mir wurde die Eingabe des Passwortes im Device nicht angezeigt.
Durch zusätzliche Eintrag von
attr <NAME> enableControlSet 1konnte ich nun den Token eingeben.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 20 September 2023, 20:37:28
Hallo zusammen,

ich benötige Eure Hilfe. Ich habe mein FHEM komplett neu aufgebaut und wollte nun auch die pi-hole-Daten wieder integrieren. Allerdings bekomme ich diesen Fehler:

2023.09.20 20:22:04 5: pihole: Replace called for type get, regex (?^:%%auth%%), mode text, value auth=%%pihole-token%% input: %%base_url%%
2023.09.20 20:22:04 5: pihole: Replace called for type get, regex (?^:%%pihole-token%%), mode key, value pihole-token input: %%base_url%%
2023.09.20 20:22:04 5: pihole: ReadKeyValue tries to read value for pihole-token from file
2023.09.20 20:22:04 4: pihole: ReadKeyValue could not find key pihole-token in file

Ich habe schon gefühlt 1000-mal den Key abgespeichert. Es ist auch der richtige, da es im Browser mit
https://pi-hole.lan/admin/api.php?summary&auth=xxxxxxxxxxx funktioniert. Auch löschen und neu anlegen funktioniert nicht. FHEM ist auf dem aktuellesten Stand. Als Betriebssystem nutze ich Ubuntu.

Wer kann helfen?

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 22 September 2023, 17:14:19
Hallo zusammen,

ich habe herausgefunden, dass aktuell keine "pihole-token" mehr in die Datei "u..." geschrieben werden. Wer hat eine Idee? Ich vermute, dass das Problem mit "setKeyValue" zusammenhängt. 

Viele Grüße
Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: juemuc am 24 Oktober 2023, 21:47:09
Hallo,

In der JSON-Liste werden nun auch die Docker-Versionen übergeben.
core_update    false
web_update    false
FTL_update    false
docker_update    true
core_current    "v5.17.1"
web_current    "v5.20.1"
FTL_current    "v5.23"
docker_current    "2023.05.2"
core_latest    "v5.17.2"
web_latest    ""
FTL_latest    "v5.23"
docker_latest    "2023.10.0"
core_branch    "master"
web_branch    "master"
FTL_branch    "master"

Ich habe nun die Anzeige wie folgt angepasst:
    my $docker_jn = ReadingsVal($name,'docker_current','unknown');
    my  $ver_info = 'unknown';

    if($docker_jn eq 'unknown') {
        $ver_info = 'CORE: '.ReadingsVal($name,'core_current','unknown').' => '.ReadingsVal($name,'core_latest','unknown');
        $ver_info.= "\nFTL: ".ReadingsVal($name,'FTL_current','unknown').' => '.ReadingsVal($name,'FTL_latest','unknown');
        $ver_info.= "\nWEB: ".ReadingsVal($name,'web_current','unknown').' => '.ReadingsVal($name,'web_latest','unknown');
      }else{
        $ver_info = "Docker: ".ReadingsVal($name,'docker_current','unknown').' => '.ReadingsVal($name,'docker_latest','unknown');
      }
   
    my $ftl_upd=ReadingsNum($name,'FTL_update',0);
    my $core_upd=ReadingsNum($name,'core_update',0);
    my $web_upd=ReadingsNum($name,'web_update',0);
    my $docker_upd=ReadingsNum($name,'docker_update',0);

    my $anyUpd=$ftl_upd+$core_upd+$web_upd+$docker_upd+0;

Handelt es sich um eine Docker-Version, wird nur diese angezeigt. Ansonsten die Werte für FTL, Core und Web.

Jürgen
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 15 November 2023, 12:57:29
Guten Tag

Bekomme das mit den Pihole in fhem anzeigen nicht hin.

[code]  Internals:
  CFGFN     
  DEF        none 60 attr pihole alias Pi-Hole attr pihole devStateIcon {piholeDevStateIcon($name)} attr pihole enforceGoodReadingNames 1 attr pihole event-on-change-reading .* attr pihole extractAllJSON 1 attr pihole get01Name statistics attr pihole get01Poll 1 attr pihole get01URL %%api_url%% attr pihole getURL %%api_url%% attr pihole icon it_raspberry_logo attr pihole replacement01Mode key attr pihole replacement01Regex %%pihole-token%% attr pihole replacement01Value pihole-token attr pihole replacement02Mode text attr pihole replacement02Regex %%api_url%% attr pihole replacement02Value %%base_url%%/api.php attr pihole replacement03Mode text attr pihole replacement03Regex %%base_url%% attr pihole replacement03Value http://%%ip%%/admin attr pihole replacement04Mode text attr pihole replacement04Regex %%ip%% attr pihole replacement04Value 192.168.3.123 attr pihole room Allgemein->Netzwerk attr pihole set01FollowGet statistics attr pihole set01Hint 10,60,180,300,600,900 attr pihole set01Max 900 attr pihole set01Min 10 attr pihole set01Name PiHoleDisable attr pihole set01URL %%api_url%%?disable=$val&auth=%%pihole-token%% attr pihole set02FollowGet statistics attr pihole set02Name PiHoleEnable attr pihole set02NoArg 1 attr pihole set02URL %%api_url%%?enable&auth=%%pihole-token%% attr pihole stateFormat gravity_last_updated_absolute
  FUUID      6554afd4-f33f-cdd4-7255-4ae072aed851b70b
  Interval  60
  MainURL   
  ModuleVersion 4.1.12 - 19.4.2022
  NAME      pihole
  NOTIFYDEV  global
  NR        154697
  NTFY_ORDER 50-pihole
  STATE      ???
  TYPE      HTTPMOD
  eventCount 1
Attributes:
  replacement04Value 192.168.0.115
[/code]

Habe auch in device set storeKeyValue pihole-token und dann das lange Passwort aus der setup vras.conf eingeben.
Über den Explorer ist Pihol über http://192.168.0.115/admin/index.php mit Passwort ereichbar.
Aber trotzdem wird nix in fhem angezeigt.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 15 November 2023, 14:41:40
Wie hast du denn das Device definiert?

Deine DEF ist doch "Müll"?

Die Attribute, die bei dir in DEF stehen ghören doch als Attribute INS/ANS Device NICHT in DEF des Devices!?

Diese Sub "piholeDevStateIcon" hast du auch "angelegt" (in deiner myUtils o.ä.)?

Gruß, Joachim
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 15 November 2023, 17:04:40
Oh ja

Ich hab das jetzt ordentlich gemacht ;D

ZitatInternals:
   BUSY       0
   CFGFN     
   DEF        http://192.168.0.115/admin/api.php?summary 60
   FUUID      6554e0eb-f33f-cdd4-5bc1-a5a6eeb6437c5de9
   Interval   60
   MainURL    http://192.168.0.115/admin/api.php?summary
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       pihole
   NOTIFYDEV  global
   NR         162452
   NTFY_ORDER 50-pihole
   STATE      <p align="left"><b>DNS Anfragen:</b> &emsp;;&emsp;;&emsp;;&emsp;; dns_queries_today <br> <b>Geblockte Seiten:</b> &emsp;; ads_blocked_today (ads_percentage_today %)
   TYPE       HTTPMOD
   eventCount 1
   value     
   HTTPCookieHash:
     PHPSESSID;/:
       Name       PHPSESSID
       Options    path=/; HttpOnly; SameSite=Strict
       Path       /
       Value      hmlq7u1im8lqarpiu7dhqt6ge8
   HttpUtils:
     NAME       
     addr       http://192.168.0.115:80
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl http://192.168.0.115/admin/api.php?summary
     header     Cookie: PHPSESSID=hmlq7u1im8lqarpiu7dhqt6ge8
     host       192.168.0.115
     httpheader HTTP/1.0 200 OK
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: PHPSESSID=hmlq7u1im8lqarpiu7dhqt6ge8; path=/; HttpOnly; SameSite=Strict
Content-type: application/json
X-Pi-hole: The Pi-hole Web interface is working!
X-Frame-Options: DENY
X-XSS-Protection: 0
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self' 'unsafe-inline';
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: same-origin
Content-Length: 2
Connection: close
Date: Wed, 15 Nov 2023 16:02:00 GMT
Server: lighttpd/1.4.53
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /admin/api.php?summary
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.0.115/admin/api.php?summary
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://192.168.0.115/admin/api.php?summary
Attributes:
   extractAllJSON 1
   getURL     http://192.168.0.115/admin/api.php
   stateFormat <p align="left"><b>DNS Anfragen:</b> &emsp;;&emsp;;&emsp;;&emsp;; dns_queries_today <br> <b>Geblockte Seiten:</b> &emsp;; ads_blocked_today (ads_percentage_today %)
 

Das passwort habe ich über set pihole storeKeyValue pihole-token und dann das lange Passwort aus der setup vras.conf eingeben.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Ralli am 15 November 2023, 17:14:48
Nein, das ist noch nicht ordentlich. Da fehlen immer noch alle Attribute.
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 15 November 2023, 17:33:43
Die DEF ist doch auch falsch!

Bei mir: none 60

Weil die Abfrage geht doch über die Attribute...

Warum fügst du nicht einfach eines der letzten Raw-Defs aus dem Thread per Raw-Def ein und gut!?

Nicht vergessen die Sub piholeDevStateIcon in die myUtils einzufügen...

Gruß, Joachim
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 15 November 2023, 20:41:26
Danke hat super geklappt
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 15 November 2023, 23:19:42
Bei mir klappt soweit alles auser das upd wird nicht angezeigt.
Owohl ich

Zitatsub piholeDevStateIcon
{
    my $name = shift;
    my $noHeader=shift;
   
    $noHeader=0 if(!defined($noHeader));
   
    #get %%base_url%% replacement from httpmod device (using HTTPMOD method)
    # -> this is the url to the web-ui of Pi-Hole
    my $baseURL= HTTPMOD::DoReplacement($defs{$name},'get','%%base_url%%');

    #get required readings from pihole httpmod device
    my $state =ReadingsVal($name,'status','unknown');
    my $totalQueries = ReadingsVal($name,'dns_queries_all_types','0');
    my $blocked = ReadingsVal($name,'ads_blocked_today','0');
    my $blockedPercentage = round(ReadingsVal($name,'ads_percentage_today','0'),1);
    my $adListCount =ReadingsVal($name,'domains_being_blocked','0');
 
    my  $ver_info = 'CORE: '.ReadingsVal($name,'core_current','unknown').' => '.ReadingsVal($name,'core_latest','unknown');
        $ver_info.= "\nFTL: ".ReadingsVal($name,'FTL_current','unknown').' => '.ReadingsVal($name,'FTL_latest','unknown');
        $ver_info.= "\nWEB: ".ReadingsVal($name,'web_current','unknown').' => '.ReadingsVal($name,'web_latest','unknown');
 
    my $ftl_upd=ReadingsNum($name,'FTL_update',0);
    my $core_upd=ReadingsNum($name,'core_update',0);
    my $web_upd=ReadingsNum($name,'web_update',0);

    my $anyUpd=$ftl_upd+$core_upd+$web_upd+0;
 

    #prepare dedicated css
    #hint: html of device overview is by default embedded in a <div> container
    #      which has id attribute set to device's NAME
    my  $styleClass ='<style>';
        $styleClass.='#'.$name.' svg {height:15px; width:15px; padding-right:1px;} ';
        $styleClass.='#'.$name.' td {padding-left:10px; padding-right:10px} ';
        $styleClass.='</style>';
   
    #prepare images
    my $imgQueries=FW_makeImage('it_i-net@cyan');
    my $imgBlocked=FW_makeImage('time_manual_mode@red');
    my $imgState  =FW_makeImage($state eq 'enabled' ? '15px-green' : '15px-red');
    my $imgUpdate =FW_makeImage($anyUpd > 0 ? '15px-red' : '15px-green',$ver_info); 

    #prepare disable/enable command
    my $cmd='';
    my $callMe='<a href="/fhem?cmd.'.$name.'=set '.$name;
    if($state eq 'disabled') {
        $callMe .=' enable ';
        $cmd =$callMe.'">Enable</a>';   
    } else {
        $callMe .=' disable ';
        $cmd  =      $callMe.'60">1</a>';
        $cmd .= ' | '.$callMe.'300">5</a>';
        $cmd .= ' | '.$callMe.'600">10</a>';
        $cmd .= ' | '.$callMe.'900">15</a>';
    }
   
    #finally build the html for device overview
    my $ret  = $styleClass;
        $ret .= '<table border=0"><tr>';
        #if second argument of this method call is true (=1)
        #then do NOT create a table header. Defaults to false (=0)
        if(!$noHeader) {     
              $ret .= '<th>State</th>';
              $ret .= '<th>Queries</th>';
              $ret .= '<th>Blocked</th>';
              #$ret .= '<th>Adlist</th>';     
              $ret .= '<th>'.($state eq 'enabled' ? 'Disable [Minutes]':'Disabled').'</th>';
              $ret .= '<th>Upd</th>';         

              $ret .= '</tr><tr>';
        }     
        $ret .= '<td><a href="'.$baseURL.'" target="_blank">'.$imgState.'</a></td>';
        $ret .= '<td>'.$imgQueries.' '.$totalQueries.'</td>';
        $ret .= '<td>'.$imgBlocked.' '.$blocked.' ('.$blockedPercentage.' %)'.'</td>';
        #$ret .= '<td>'.$imgAdList.' '.$adListCount.'</td>';
        $ret .= '<td>'.$cmd.'</td>';
        $ret .= '<td>'.$imgUpdate.'</td>';
        $ret .= '</tr></table>';

    return $ret;
}

 
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 15 November 2023, 23:33:58
ZitatSave config
anyViews
 0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
 6_Heizung
 7_Muelltonne
 8_Zuhause
            
                                               
         9_Batterie
 FBDECT
 Garten
HUEDevice
ge_wht_steckdose Keller
 Plots
 Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   BUSY       0
   DEF        none 60
   FUUID      65551717-f33f-cdd4-92ce-9186b03dde4b4b6d
   Interval   60
   MainURL   
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       pihole
   NOTIFYDEV  global
   NR         460
   NTFY_ORDER 50-pihole
   STATE      1699758585
   TYPE       HTTPMOD
   eventCount 38
   value     
   CompiledRegexes:
   HTTPCookieHash:
     PHPSESSID;/:
       Name       PHPSESSID
       Options    path=/; HttpOnly; SameSite=Strict
       Path       /
       Value      1b74aecqmi6q5ptddp1mipg20g
   HttpUtils:
     NAME       
     addr       http://192.168.0.115:80
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl http://192.168.0.115/admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     header     Cookie: PHPSESSID=1b74aecqmi6q5ptddp1mipg20g
     host       192.168.0.115
     httpheader HTTP/1.0 200 OK
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: PHPSESSID=1b74aecqmi6q5ptddp1mipg20g; path=/; HttpOnly; SameSite=Strict
Content-type: application/json
X-Pi-hole: The Pi-hole Web interface is working!
X-Frame-Options: DENY
X-XSS-Protection: 0
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self' 'unsafe-inline';
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: same-origin
Content-Length: 686
Connection: close
Date: Wed, 15 Nov 2023 22:33:09 GMT
Server: lighttpd/1.4.53
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.0.115/admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     sslargs:
   QUEUE:
   READINGS:
     2023-11-15 23:33:09   ads_blocked_today 4144
     2023-11-15 23:33:09   ads_percentage_today 30.888491
     2023-11-15 23:33:09   clients_ever_seen 2
     2023-11-15 23:33:09   dns_queries_all_replies 13416
     2023-11-15 23:33:09   dns_queries_all_types 13416
     2023-11-15 23:33:09   dns_queries_today 13416
     2023-11-15 23:33:09   domains_being_blocked 1563469
     2023-11-15 23:33:09   gravity_last_updated_absolute 1699758585
     2023-11-15 23:33:09   gravity_last_updated_file_exists 1
     2023-11-15 23:33:09   gravity_last_updated_relative_days 3
     2023-11-15 23:33:09   gravity_last_updated_relative_hours 19
     2023-11-15 23:33:09   gravity_last_updated_relative_minutes 23
     2023-11-15 23:33:09   privacy_level   0
     2023-11-15 23:33:09   queries_cached  263
     2023-11-15 23:33:09   queries_forwarded 8642
     2023-11-15 23:33:09   reply_BLOB      43
     2023-11-15 23:33:09   reply_CNAME     3449
     2023-11-15 23:33:09   reply_DNSSEC    0
     2023-11-15 23:33:09   reply_DOMAIN    106
     2023-11-15 23:33:09   reply_IP        7234
     2023-11-15 23:33:09   reply_NODATA    2189
     2023-11-15 23:33:09   reply_NONE      0
     2023-11-15 23:33:09   reply_NOTIMP    0
     2023-11-15 23:33:09   reply_NXDOMAIN  49
     2023-11-15 23:33:09   reply_OTHER     0
     2023-11-15 23:33:09   reply_REFUSED   0
     2023-11-15 23:33:09   reply_RRNAME    0
     2023-11-15 23:33:09   reply_SERVFAIL  0
     2023-11-15 23:33:09   reply_UNKNOWN   346
     2023-11-15 23:33:09   status          enabled
     2023-11-15 23:33:09   unique_clients  2
     2023-11-15 23:33:09   unique_domains  1426
   REQUEST:
     context    get
     data       
     header     
     ignoreredirects 0
     num        01
     retryCount 0
     type       get01
     url        %%api_url%%?summaryRaw&auth=%%pihole-token%%
   defptr:
     readingBase:
       ads_blocked_today get
       ads_percentage_today get
       clients_ever_seen get
       dns_queries_all_replies get
       dns_queries_all_types get
       dns_queries_today get
       domains_being_blocked get
       gravity_last_updated_absolute get
       gravity_last_updated_file_exists get
       gravity_last_updated_relative_days get
       gravity_last_updated_relative_hours get
       gravity_last_updated_relative_minutes get
       privacy_level get
       queries_cached get
       queries_forwarded get
       reply_BLOB get
       reply_CNAME get
       reply_DNSSEC get
       reply_DOMAIN get
       reply_IP   get
       reply_NODATA get
       reply_NONE get
       reply_NOTIMP get
       reply_NXDOMAIN get
       reply_OTHER get
       reply_REFUSED get
       reply_RRNAME get
       reply_SERVFAIL get
       reply_UNKNOWN get
       status     get
       unique_clients get
       unique_domains get
     readingNum:
       ads_blocked_today 01
       ads_percentage_today 01
       clients_ever_seen 01
       dns_queries_all_replies 01
       dns_queries_all_types 01
       dns_queries_today 01
       domains_being_blocked 01
       gravity_last_updated_absolute 01
       gravity_last_updated_file_exists 01
       gravity_last_updated_relative_days 01
       gravity_last_updated_relative_hours 01
       gravity_last_updated_relative_minutes 01
       privacy_level 01
       queries_cached 01
       queries_forwarded 01
       reply_BLOB 01
       reply_CNAME 01
       reply_DNSSEC 01
       reply_DOMAIN 01
       reply_IP   01
       reply_NODATA 01
       reply_NONE 01
       reply_NOTIMP 01
       reply_NXDOMAIN 01
       reply_OTHER 01
       reply_REFUSED 01
       reply_RRNAME 01
       reply_SERVFAIL 01
       reply_UNKNOWN 01
       status     01
       unique_clients 01
       unique_domains 01
     readingOutdated:
     requestReadings:
       get01:
         ads_blocked_today get 01
         ads_percentage_today get 01
         clients_ever_seen get 01
         dns_queries_all_replies get 01
         dns_queries_all_types get 01
         dns_queries_today get 01
         domains_being_blocked get 01
         gravity_last_updated_absolute get 01
         gravity_last_updated_file_exists get 01
         gravity_last_updated_relative_days get 01
         gravity_last_updated_relative_hours get 01
         gravity_last_updated_relative_minutes get 01
         privacy_level get 01
         queries_cached get 01
         queries_forwarded get 01
         reply_BLOB get 01
         reply_CNAME get 01
         reply_DNSSEC get 01
         reply_DOMAIN get 01
         reply_IP   get 01
         reply_NODATA get 01
         reply_NONE get 01
         reply_NOTIMP get 01
         reply_NXDOMAIN get 01
         reply_OTHER get 01
         reply_REFUSED get 01
         reply_RRNAME get 01
         reply_SERVFAIL get 01
         reply_UNKNOWN get 01
         status     get 01
         unique_clients get 01
         unique_domains get 01
   lastpoll:
     statistics 1700087589.78745
Attributes:
   alias      Pi-Hole
   devStateIcon {piholeDevStateIcon($name)}
   enforceGoodReadingNames 1
   event-on-change-reading .*
   extractAllJSON 1
   get01Name  statistics
   get01Poll  1
   get01URL   %%api_url%%?summaryRaw&auth=%%pihole-token%%
   getURL     %%api_url%%
   group      Pi-Hole
   icon       it_raspberry_logo
   replacement01Mode key
   replacement01Regex %%pihole-token%%
   replacement01Value pihole-token
   replacement02Mode text
   replacement02Regex %%api_url%%
   replacement02Value %%base_url%%/api.php
   replacement03Mode text
   replacement03Regex %%base_url%%
   replacement03Value http://%%ip%%/admin
   replacement04Mode text
   replacement04Regex %%ip%%
   replacement04Value 192.168.0.115
   room       0_System
   set01FollowGet statistics
   set01Hint  10,60,180,300,600,900
   set01Max   900
   set01Min   10
   set01Name  PiHoleDisable
   set01URL   %%api_url%%?disable=$val&auth=%%pihole-token%%
   set02FollowGet statistics
   set02Name  PiHoleEnable
   set02NoArg 1
   set02URL   %%api_url%%?enable&auth=%%pihole-token%%
   stateFormat gravity_last_updated_absolute

 :-* 
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 16 November 2023, 00:16:23
Welche Version hast du denn genommen?
Du hast keine Readings bzgl. Version...

Z.B. FTL_version usw.

Es fehlen (so ich das überflogen habe / auf dem Handy nicht so einfach) die Reading-Attribute dafür...

EDIT: hier sind diese z.B. enthalten https://forum.fhem.de/index.php?topic=84031.msg1270613#msg1270613

Gruß, Joachim
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 16 November 2023, 03:21:50
Habe die von Benni aus Beitrag 49 gennommen. Wo sind denn die readings dafür?
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: Sebastian84 am 16 November 2023, 06:56:26
Die Version hab ich jetzt. Qird aber nicht über upd mint grünen Punkt angezeigt.

ZitatSave config
anyViews
 0_System
1_UG
2_EG
3_1.OG
4_2.OG
Wecker.Aus 5_Klingel
 6_Heizung
 7_Muelltonne
 8_Zuhause
            
                                               
         9_Batterie
 FBDECT
 Garten
HUEDevice
ge_wht_steckdose Keller
 Plots
 Unsorted
icoEverything Everything
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   BUSY       0
   DEF        none 60
   FUUID      65551717-f33f-cdd4-92ce-9186b03dde4b4b6d
   Interval   60
   MainURL   
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       pihole
   NOTIFYDEV  global
   NR         460
   NTFY_ORDER 50-pihole
   STATE      1699758585
   TYPE       HTTPMOD
   eventCount 480
   value     
   CompiledRegexes:
   HTTPCookieHash:
     PHPSESSID;/:
       Name       PHPSESSID
       Options    path=/; HttpOnly; SameSite=Strict
       Path       /
       Value      1b74aecqmi6q5ptddp1mipg20g
   HttpUtils:
     NAME       
     addr       http://192.168.0.115:80
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl http://192.168.0.115/admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     header     Cookie: PHPSESSID=1b74aecqmi6q5ptddp1mipg20g
     host       192.168.0.115
     httpheader HTTP/1.0 200 OK
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: PHPSESSID=1b74aecqmi6q5ptddp1mipg20g; path=/; HttpOnly; SameSite=Strict
Content-type: application/json
X-Pi-hole: The Pi-hole Web interface is working!
X-Frame-Options: DENY
X-XSS-Protection: 0
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self' 'unsafe-inline';
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: same-origin
Content-Length: 685
Connection: close
Date: Thu, 16 Nov 2023 05:54:14 GMT
Server: lighttpd/1.4.53
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    80
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     protocol   http
     redirects  0
     timeout    2
     url        http://192.168.0.115/admin/api.php?summaryRaw&auth=c5946a8f72cb3c3b4458732d6776bd39516e5be00f611e86916ff169cf61600b
     sslargs:
   QUEUE:
   READINGS:
     2023-11-16 06:41:15   FTL_branch      master
     2023-11-16 06:41:15   FTL_current     v5.23
     2023-11-16 06:41:15   FTL_latest      v5.23
     2023-11-16 06:41:15   FTL_update      0
     2023-11-16 06:54:14   ads_blocked_today 4728
     2023-11-16 06:54:14   ads_percentage_today 31.543131
     2023-11-16 06:54:14   clients_ever_seen 2
     2023-11-16 06:41:15   core_branch     master
     2023-11-16 06:41:15   core_current    v5.17.2
     2023-11-16 06:41:15   core_latest     v5.17.2
     2023-11-16 06:41:15   core_update     0
     2023-11-16 06:54:14   dns_queries_all_replies 14989
     2023-11-16 06:54:14   dns_queries_all_types 14989
     2023-11-16 06:54:14   dns_queries_today 14989
     2023-11-16 06:54:14   domains_being_blocked 1563469
     2023-11-16 06:54:14   gravity_last_updated_absolute 1699758585
     2023-11-16 06:54:14   gravity_last_updated_file_exists 1
     2023-11-16 06:54:14   gravity_last_updated_relative_days 4
     2023-11-16 06:54:14   gravity_last_updated_relative_hours 2
     2023-11-16 06:54:14   gravity_last_updated_relative_minutes 44
     2023-11-16 06:54:14   privacy_level   0
     2023-11-16 06:54:14   queries_cached  262
     2023-11-16 06:54:14   queries_forwarded 9579
     2023-11-16 06:54:14   reply_BLOB      46
     2023-11-16 06:54:14   reply_CNAME     3925
     2023-11-16 06:54:14   reply_DNSSEC    0
     2023-11-16 06:54:14   reply_DOMAIN    106
     2023-11-16 06:54:14   reply_IP        8204
     2023-11-16 06:54:14   reply_NODATA    2275
     2023-11-16 06:54:14   reply_NONE      0
     2023-11-16 06:54:14   reply_NOTIMP    0
     2023-11-16 06:54:14   reply_NXDOMAIN  49
     2023-11-16 06:54:14   reply_OTHER     0
     2023-11-16 06:54:14   reply_REFUSED   0
     2023-11-16 06:54:14   reply_RRNAME    0
     2023-11-16 06:54:14   reply_SERVFAIL  0
     2023-11-16 06:54:14   reply_UNKNOWN   384
     2023-11-16 06:54:14   status          enabled
     2023-11-16 06:54:14   unique_clients  2
     2023-11-16 06:54:14   unique_domains  1595
     2023-11-16 06:41:15   web_branch      master
     2023-11-16 06:41:15   web_current     v5.20.2
     2023-11-16 06:41:15   web_latest      v5.20.2
     2023-11-16 06:41:15   web_update      0
   REQUEST:
     context    get
     data       
     header     
     ignoreredirects 0
     num        01
     retryCount 0
     type       get01
     url        %%api_url%%?summaryRaw&auth=%%pihole-token%%
   defptr:
     readingBase:
       FTL_branch get
       FTL_current get
       FTL_latest get
       FTL_update get
       ads_blocked_today get
       ads_percentage_today get
       clients_ever_seen get
       core_branch get
       core_current get
       core_latest get
       core_update get
       dns_queries_all_replies get
       dns_queries_all_types get
       dns_queries_today get
       domains_being_blocked get
       gravity_last_updated_absolute get
       gravity_last_updated_file_exists get
       gravity_last_updated_relative_days get
       gravity_last_updated_relative_hours get
       gravity_last_updated_relative_minutes get
       privacy_level get
       queries_cached get
       queries_forwarded get
       reply_BLOB get
       reply_CNAME get
       reply_DNSSEC get
       reply_DOMAIN get
       reply_IP   get
       reply_NODATA get
       reply_NONE get
       reply_NOTIMP get
       reply_NXDOMAIN get
       reply_OTHER get
       reply_REFUSED get
       reply_RRNAME get
       reply_SERVFAIL get
       reply_UNKNOWN get
       status     get
       unique_clients get
       unique_domains get
       web_branch get
       web_current get
       web_latest get
       web_update get
     readingNum:
       FTL_branch 02
       FTL_current 02
       FTL_latest 02
       FTL_update 02
       ads_blocked_today 01
       ads_percentage_today 01
       clients_ever_seen 01
       core_branch 02
       core_current 02
       core_latest 02
       core_update 02
       dns_queries_all_replies 01
       dns_queries_all_types 01
       dns_queries_today 01
       domains_being_blocked 01
       gravity_last_updated_absolute 01
       gravity_last_updated_file_exists 01
       gravity_last_updated_relative_days 01
       gravity_last_updated_relative_hours 01
       gravity_last_updated_relative_minutes 01
       privacy_level 01
       queries_cached 01
       queries_forwarded 01
       reply_BLOB 01
       reply_CNAME 01
       reply_DNSSEC 01
       reply_DOMAIN 01
       reply_IP   01
       reply_NODATA 01
       reply_NONE 01
       reply_NOTIMP 01
       reply_NXDOMAIN 01
       reply_OTHER 01
       reply_REFUSED 01
       reply_RRNAME 01
       reply_SERVFAIL 01
       reply_UNKNOWN 01
       status     01
       unique_clients 01
       unique_domains 01
       web_branch 02
       web_current 02
       web_latest 02
       web_update 02
     readingOutdated:
     requestReadings:
       get01:
         ads_blocked_today get 01
         ads_percentage_today get 01
         clients_ever_seen get 01
         dns_queries_all_replies get 01
         dns_queries_all_types get 01
         dns_queries_today get 01
         domains_being_blocked get 01
         gravity_last_updated_absolute get 01
         gravity_last_updated_file_exists get 01
         gravity_last_updated_relative_days get 01
         gravity_last_updated_relative_hours get 01
         gravity_last_updated_relative_minutes get 01
         privacy_level get 01
         queries_cached get 01
         queries_forwarded get 01
         reply_BLOB get 01
         reply_CNAME get 01
         reply_DNSSEC get 01
         reply_DOMAIN get 01
         reply_IP   get 01
         reply_NODATA get 01
         reply_NONE get 01
         reply_NOTIMP get 01
         reply_NXDOMAIN get 01
         reply_OTHER get 01
         reply_REFUSED get 01
         reply_RRNAME get 01
         reply_SERVFAIL get 01
         reply_UNKNOWN get 01
         status     get 01
         unique_clients get 01
         unique_domains get 01
       get02:
         FTL_branch get 02
         FTL_current get 02
         FTL_latest get 02
         FTL_update get 02
         core_branch get 02
         core_current get 02
         core_latest get 02
         core_update get 02
         web_branch get 02
         web_current get 02
         web_latest get 02
         web_update get 02
   lastpoll:
     statistics 1700114054.32762
     versions   1700113274.30733
Attributes:
   alias      Pi-Hole
   devStateIcon {piholeDevStateIcon($name)}
   enforceGoodReadingNames 1
   event-on-change-reading .*
   extractAllJSON 1
   get01Name  statistics
   get01Poll  1
   get01URL   %%api_url%%?summaryRaw&auth=%%pihole-token%%
   get02ExtractAllJSON 1
   get02Name  versions
   get02Poll  1
   get02PollDelay 3600
   get02URL   %%api_url%%?versions&%%auth%%
   get03JSON  status
   get03Name  FTL_status
   get03URL   %%api_url%%?status&%%auth%%
   get04JSON  type
   get04Name  FTL_type
   get04URL   %%api_url%%?type&%%auth%%
   get05JSON  version
   get05Name  FTL_version
   get05URL   %%api_url%%?version&%%auth%%
   getURL     %%api_url%%
   group      Pi-Hole
   icon       it_raspberry_logo
   replacement01Mode key
   replacement01Regex %%pihole-token%%
   replacement01Value pihole-token
   replacement02Mode text
   replacement02Regex %%api_url%%
   replacement02Value %%base_url%%/api.php
   replacement03Mode text
   replacement03Regex %%base_url%%
   replacement03Value http://%%ip%%/admin
   replacement04Mode text
   replacement04Regex %%ip%%
   replacement04Value 192.168.0.115
   room       0_System
   set01FollowGet statistics
   set01Hint  10,60,180,300,600,900
   set01Max   900
   set01Min   10
   set01Name  PiHoleDisable
   set01URL   %%api_url%%?disable=$val&auth=%%pihole-token%%
   set02FollowGet statistics
   set02Name  PiHoleEnable
   set02NoArg 1
   set02URL   %%api_url%%?enable&auth=%%pihole-token%%
   stateFormat gravity_last_updated_absolute

   
Titel: Aw: Pi-Hole : Statistiken in Fhem anzeigen
Beitrag von: MadMax-FHEM am 16 November 2023, 07:40:31
Vergleiche doch mal was du hast mit dem wo ich verlinkt habe...

Das passt doch immer noch nicht...

EDIT:
Zitat von: Sebastian84 am 16 November 2023, 03:21:50Habe die von Benni aus Beitrag 49 gennommen. Wo sind denn die readings dafür?
-> das ist doch nur die erweiterte Sub...

EDIT: evtl. mal hier einsteigen?
https://forum.fhem.de/index.php?topic=84031.msg1270612#msg1270612
Und dann mal lesen, ob es seit dem Anpassungen gegeben hat (die dich betreffen/interessieren)...

EDIT: ich weiß ja nicht mit was du arbeitest (sieht nach Tablet aus so wie deine lists aussehen?) aber evtl. passieren da bei copy&paste von RAW etc. auch "komische Dinge"...
Und besser lists etc. in code-Tags...

Gruß, Joachim