Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. PiHole Adapter ohne Funktion nach Pi-Hole Update auf V6

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    PiHole Adapter ohne Funktion nach Pi-Hole Update auf V6

    This topic has been deleted. Only users with topic management privileges can see it.
    • Lucifor1976
      Lucifor1976 @Dr. Bakterius last edited by

      ich fürchte den dev interessiert das nicht weiter.
      Letztes Update vor zwei Jahren, Bugs seit 2020 offen.

      Könnte den Adapter vielleicht jemand in Betreuung übernehmen?

      mcm1957 1 Reply Last reply Reply Quote 0
      • Winni
        Winni last edited by

        Und weiter geht's...
        Core version is v6.0.4 (Latest: v6.0.4)
        Web version is v6.0.1 (Latest: v6.0.1)
        FTL version is v6.0.2 (Latest: v6.0.2)

        1 Reply Last reply Reply Quote 0
        • mcm1957
          mcm1957 @Lucifor1976 last edited by

          @lucifor1976
          Wenns sonst niemand macht kann ich mir das mal ansehen. Aber frühestens in sagen wir mal 2 Wochen.

          Bitte triggert mich ggF in 2 bis 3 Wochen wenn ich nichts sage / schreibe.

          Lucifor1976 N 2 Replies Last reply Reply Quote 2
          • Lucifor1976
            Lucifor1976 @mcm1957 last edited by

            @mcm1957
            Wer ich machen 🙂

            Das wäre toll, meine JS Kenntnisse reichen leider bei weiten nicht für sowas.

            Vielleicht sollte ich das auf meine alten Tage nochmal angehen...

            mcm1957 1 Reply Last reply Reply Quote 0
            • mcm1957
              mcm1957 @Lucifor1976 last edited by

              @lucifor1976
              Wenn du jemals einen Adapter warten / entwickeln willst bist du gern gesehen. Meld dich ggef auf Telegram / Discord - gibt nen eigene "Starters Channel". Invite Links auf https://www.iobroker.dev. Aber auch Tester helfen extrem bei der Entwicklung eines Adapters.

              1 Reply Last reply Reply Quote 0
              • Meister Mopper
                Meister Mopper @Dr. Bakterius last edited by

                @dr-bakterius
                Ich habe jetzt auch die neueste Version aufgespielt.
                f223103e-96dc-4ecd-99c9-2863716db06a-grafik.png

                Da ich nur einen Kern vergeben habe, ist das so in Ordnung. RAM wurde bei
                5b9804b9-ed26-4824-affe-e58f6b5350c5-grafik.png

                knapp über 1G benötigt.

                Aktuell läuft der Container unter anderer IP nur sporadisch, da

                • es offenbar noch Probleme gibt (ich habe mich mal in die github watchlist für releases eingetragen)

                • der Adapter die Version noch nicht unterstützt

                1 Reply Last reply Reply Quote 0
                • N
                  neunteufels @mcm1957 last edited by

                  @mcm1957
                  Super, dass du übernimmst.
                  Ich teste gerne.
                  Bitte um Info wenn es so weit ist.

                  mfg

                  1 Reply Last reply Reply Quote 0
                  • Ro75
                    Ro75 last edited by

                    Testet doch mal mein Skript

                    https://forum.iobroker.net/topic/77096/skript-pihole?_=1742074119093

                    Das kann als 100% Alternative zum Adapter betrachtet werden. Sollte theoretisch auch mit piHole 6 gehen.

                    Ro75.

                    Meister Mopper 1 Reply Last reply Reply Quote 0
                    • Meister Mopper
                      Meister Mopper @Ro75 last edited by

                      @ro75 sagte in PiHole Adapter ohne Funktion nach Pi-Hole Update auf V6:

                      Testet doch mal mein Skript

                      https://forum.iobroker.net/topic/77096/skript-pihole?_=1742074119093

                      Das kann als 100% Alternative zum Adapter betrachtet werden. Sollte theoretisch auch mit piHole 6 gehen.

                      Ro75.

                      Ab Version 6.x gibt es keinen API-Token mehr. Es werden sogenannte Session ID verwendet.

                      1 Reply Last reply Reply Quote 1
                      • F
                        fzuern last edited by

                        Hier der Link, wie es der Entwickler von Homepage gelöst hat;
                        [https://github.com/gethomepage/homepage/discussions/4901](link url)
                        oder auch die Diskussion in der PI-Hole Community
                        [https://discourse.pi-hole.net/t/authenticating-to-v6-api/66010](link url)

                        Vielleicht hilft es...

                        1 Reply Last reply Reply Quote 0
                        • Meister Mopper
                          Meister Mopper last edited by Homoran

                          @fzuern sagte in PiHole Adapter ohne Funktion nach Pi-Hole Update auf V6:

                          Hier der Link, wie es der Entwickler von Homepage gelöst hat;
                          [https://github.com/gethomepage/homepage/discussions/4901](link url)
                          oder auch die Diskussion in der PI-Hole Community
                          [https://discourse.pi-hole.net/t/authenticating-to-v6-api/66010](link url)

                          Vielleicht hilft es...

                          @mcm1957

                          Siehst du da eine Chance, den Adapter wieder für Pihole v6.x lauffähig zu bekommen?

                          Problemtisch ist wohl derzeit der API-Zugang, wie es von einem Dev hier (https://discourse.pi-hole.net/t/authenticating-to-v6-api/66010/5) beschrieben wird.

                          mcm1957 1 Reply Last reply Reply Quote 0
                          • mcm1957
                            mcm1957 @Meister Mopper last edited by

                            @meister-mopper

                            Ich habe nach wie vor einen Adapter für pi-hole 6 zu machen. Wahrscheinlich wird es eher ein neuer Adapter werden - allerdings mit dem Ziel möglichst idente States anzubieten - da eine "Enteignung" immer nur die letzte Möglichkeit wäre und der Adapter sowieso einen größeren Review bräuchte.

                            ABER die Tage laufen schneller vorbei als ich es gerne hätte.

                            Sorry, mehr kann ich im Moment nicht sagen / versprechen.

                            ceng G 2 Replies Last reply Reply Quote 4
                            • ceng
                              ceng @mcm1957 last edited by ceng

                              @mcm1957 Das wäre super, wenn der alte Adapter neues Leben eingeflösst bekäme, aber ich weiß selbst wie wertvoll Zeit ist...

                              Ich habe mir vorübergehend, solange bis jemand mit Ahnung etwas besseres baut, folgendes Script gebaut:

                              // 🛠️ Konfiguration
                              const userPath = '0_userdata.0.Lokal.Statistics.PiHole';
                              const piholeUrl = 'https://MEINPIHOLE';
                              const password = 'AUS DER OBERFLÄCHE'; // App-Passwort, nicht GUI-Passwort
                              const debug = getState("0_userdata.0.Global.Debug")?.val || false;
                              const sillydebug = getState("0_userdata.0.Global.SillyDebug")?.val || false;
                              
                              // 📊 Datenpunkte mit Beschreibung für den ioBroker
                              const datapoints = {
                                  total: 'Anzahl aller angefragen Domains',
                                  blocked: 'Zahl der blockierten Domains',
                                  percent_blocked: 'Blockierte Domains in %',
                                  unique_domains: 'Eindeutige Domains',
                                  queries_forwarded: 'Weitergeleitete Anfragen',
                                  queries_cached: 'Gecachte Anfragen',
                              };
                              
                              // 🔁 Axios einbinden (funktioniert ab js-controller 3.x)
                              const axios = require('axios').default;
                              
                              // Hilfsfunktion für Logs, gibt nur aus wenn SillyDebug=true ist
                              function debugLog(msg) {
                                  const sillyDebug = getState('0_userdata.0.Global.SillyDebug')?.val || false;
                                  if (sillyDebug) {
                                      log(msg);
                                  }
                              }
                              
                              // Hauptfunktion: Authentifizieren, Daten holen und Datenpunkte schreiben
                              async function loginAndFetchPiHole() {
                                  if (debug) console.log('🔐 Authentifiziere Pi-hole…');
                              
                                  try {
                                      // Login an Pi-hole API, um Session-ID und CSRF-Token zu erhalten
                                      const authResponse = await axios.post(
                                          `${piholeUrl}/api/auth`,
                                          { password: password },
                                          { httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }) }
                                      );
                              
                                      // Session-Daten extrahieren
                                      const { sid, csrf } = authResponse.data.session || {};
                                      if (!sid || !csrf) throw new Error('SID oder CSRF fehlt in Antwort');
                              
                                      if (debug) console.log('✅ Authentifizierung erfolgreich');
                              
                                      // Zusammenfassung der Pi-hole Statistiken abfragen
                                      const summaryResponse = await axios.get(
                                          `${piholeUrl}/api/stats/summary`,
                                          {
                                              headers: {
                                                  Cookie: `sid=${sid}`,
                                                  'x-csrf-token': csrf
                                              },
                                              httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
                                          }
                                      );
                              
                                      const data = summaryResponse.data;
                                      debugLog('Pi-hole API Rohdaten: ' + JSON.stringify(data));
                              
                                      // Datenpunkte erstellen und mit Werten aus Pi-hole füllen
                                      for (const key in datapoints) {
                                          const dp = `${userPath}.${key}`;
                                          await createStateAsync(dp, 0, { name: datapoints[key], type: 'number', read: true, write: false });
                              
                                          // Wert je Datenpunkt aus der API Antwort zuordnen
                                          let value = 0;
                                          switch (key) {
                                              case 'total': value = data.queries.total; break;
                                              case 'blocked': value = data.queries.blocked; break;
                                              case 'percent_blocked': value = Math.round(data.queries.percent_blocked); break;
                                              case 'unique_domains': value = data.queries.unique_domains; break;
                                              case 'queries_forwarded': value = data.queries.forwarded; break;
                                              case 'queries_cached': value = data.queries.cached; break;
                                              default: value = 666;
                                          }
                              
                                          debugLog(`${dp}: ${value}`);
                                          setState(dp, value || 0, true);
                                      }
                              
                                      if (debug) console.log('✅ Pi-hole Daten aktualisiert');
                              
                                  } catch (err) {
                                      log('❌ Fehler bei Pi-hole API Zugriff: ' + err.message, 'error');
                                  }
                              }
                              
                              // ⏰ Intervall: alle 5 Minuten ausführen
                              schedule('*/5 * * * *', loginAndFetchPiHole);
                              // Direkt beim Start einmal ausführen
                              loginAndFetchPiHole();
                              
                              

                              Ich will hier keine Grundsatzdiskussion über Arten der Programmierung oder gar die Adapterentwicklung in Frage stellen. Das Script läuft bei mir, wenn es jemanden hilft, gut, wenn nicht, auch gut.

                              CU

                              1 Reply Last reply Reply Quote 1
                              • G
                                Galen @mcm1957 last edited by

                                @mcm1957 Gibts inzwischen ein Update deinerseits oder brauchst du noch Tester?

                                mcm1957 1 Reply Last reply Reply Quote 0
                                • mcm1957
                                  mcm1957 @Galen last edited by

                                  @galen
                                  Danke füe dein Angebot.

                                  Leider keine Neuigkeiten meinerseits. Da ich noch bis Mitte Juli auf Urlsub / nicht daheim bin schauts nach wie vor schlecht aus.

                                  OliverIO 1 Reply Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @mcm1957 last edited by

                                    @mcm1957 ich hoffe ich nehme dir da jetzt nix weg.

                                    da es ja noch ein wenig dauert und mein Fahrrad diese Woche in Reparatur ist,
                                    dachte ich mir ich bereite da mal was vor.

                                    https://github.com/oweitman/ioBroker.pi-hole2

                                    Allerdings gibt es einige Anmerkungen:

                                    • da der bisherige Adapter noch in einer etwas älteren Struktur war und auch die API die Daten nicht so liefert wie heute, habe ich einen komplett neuen Adapter erstellt.
                                    • Auch habe ich keine pi-hole V5 Installation verfügbar, so das ich nicht nachschauen kann, wie die Daten bisher aussahen.
                                    • Ich habe mich mal grob an den Bezeichungen orientiert und habe dazu mal Daten von den wichtigsten (aus meiner Sicht) API-Endpunkten in Datenpunkten bereitgestellt:
                                      b71588ae-8adf-498f-b114-c0aaeb36efbf-image.png
                                    • Wer weitere Vorschläge machen möchte, kann gerne in seiner piholev6 installation die folgende Seite aufrufen: http://pi.hole/api/docs/, trägt dann oben sein Passwort ein und kann dann alle API-Endpunkte durchprobieren.
                                    • Alle API-Endpunkte welche Parameter benötigen würde ich nicht über Datenpunkte umsetzen wollen, sondern nur über sendTo-Befehle, bei denen man ordentlich die Parameter übergeben kann und auch strukturierte Ergebnisse erhält. Das ist aus meiner Sicht die flexibelste Lösung und auch im javascript (oder anderen Adapter) verwendbar.
                                    • ich habe nicht vor jeden einzelnen API Endpunkt umzusetzen. ggfs wird es mit sendTo einen generellen Befehl geben, mit dem man dann an jeden Endpoint herankommt und sich aber nicht um Authentifizierung und Session-Management kümmern muss.

                                    gerne kann der adapter direkt von github zum test mal installiert werden.

                                    Testerthread
                                    https://forum.iobroker.net/topic/81472/neuer-adapter-pi-hole2-für-pihole-v6

                                    mcm1957 1 Reply Last reply Reply Quote 1
                                    • mcm1957
                                      mcm1957 @OliverIO last edited by

                                      @oliverio
                                      Kein Problem - darfst gerne was abliefern :-). Mir ist nicht fad.

                                      Ich würde nur anregen den Adapter dann gleich pi-hole6 zu nennen.

                                      OliverIO 1 Reply Last reply Reply Quote 0
                                      • OliverIO
                                        OliverIO @mcm1957 last edited by

                                        @mcm1957 sagte in PiHole Adapter ohne Funktion nach Pi-Hole Update auf V6:

                                        pi-hole6

                                        wird halt dann schwierig wenn es ein pihole 7 gibt.
                                        ich gehe davon aus das die api erst mal stabil ist und nicht gleich wieder über den haufen geschmissen wird

                                        mcm1957 1 Reply Last reply Reply Quote 0
                                        • mcm1957
                                          mcm1957 @OliverIO last edited by

                                          @oliverio
                                          Na ja- wenn das api sich massiv ändert kann man dann eh einen pi-hole7 forken. Macht ja ev. mehr Sinn als ewig inkompatible Apis in EINEM Adapter mitzuschleppen.

                                          Ev. schreib in den eadme / Umstiegsguide gleich nen Hinweis: "Da sich states durch die umstellun ändern ist es ein gute Zeitpukt Alias einzuführen wenn noch nichht getan" oder so. Dann sollte auch keiner Probleme haben wenn es später nen pi-hole7 gibt.

                                          Aber im Kern kannst es machen wie DU willst. Bin halt kein Freund er 2, 3, 4, 5 Durchnummerieungen 🙂 und 6 hat noch irgendeinen Sinn. Lies es halt AB V6 ...

                                          Und nochmals DANKE. Tut mir leid dass ich User so lang warten lie0 aber ich komm einfach nicht dazu alles was ich will umzusetzen ...

                                          1 Reply Last reply Reply Quote 2
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          673
                                          Online

                                          31.8k
                                          Users

                                          80.0k
                                          Topics

                                          1.3m
                                          Posts

                                          18
                                          53
                                          3494
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo