Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst] Pi-Hole Daten auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst] Pi-Hole Daten auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • kmxak
      kmxak Most Active last edited by

      Hey, vielleicht hat ja von euch einer https://pi-hole.net/ am laufen.

      Ist es möglich die Daten darauf in ioBroker einzufügen?

      Load Memory usw?

      Hier steht was mit über Json können die Daten abgegriffen werden:

      http://blog.bubux.de/werbung-blockieren-mit-pi-hole/

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

        Interessantes Thema… habe auch Pi-Hole vor kurzem auf meinem Raspi installiert. Wäre natürlich cool wenn ich das direkt über ioBroker auf meinem Tablet einsehen kann 😄

        Mfg

        1 Reply Last reply Reply Quote 0
        • P
          pix last edited by

          Hallo,

          auf diesen Hinweis hin habe ich mir meinenersten Raspi gekauft 😄

          Die Anleitung klappt einwandfrei (unter OS X), Raspi eingerichtet und pi-hole gestartet.

          Hier das neueste Skript zum Auslesen der Daten (24.4.2017):

          ! ````
          /* Pi-hole
          pi-hole JSON Leser
          ! erstellt: 23.04.2017 von Pix
          /
          var logging = false;
          var pfad = '.Pi-hole.';
          var zeitplan = '
          /5 * * * *';
          var url = 'http://192.168.178.20/admin/api.php';
          ! // ab hier nix mehr ändern
          ! // Instanz des Javascript-Adapters ermitteln
          var instanz = 'javascript.' + instance;
          if (logging) log(instanz);
          ! // ID definieren
          var idJSON = instanz + pfad + 'JSON',
          idDomains = instanz + pfad + 'Domains_blocked',
          idDNSQueries = instanz + pfad + 'DNS_queries',
          idAdsBlocked = instanz + pfad + 'Ads_blocked',
          idAdsPercentage = instanz + pfad + 'Ads_percentage',
          idActive = instanz + pfad + 'aktiv',
          idTabelle = instanz + pfad + 'Tabelle';
          ! // States erstellen
          createState(idJSON, '', {
          name: 'JSON Datei vom Pi-hole Server',
          desc: 'Kopie der JSON Datei',
          type: 'string',
          read: true,
          write: true,
          role: 'json'
          });
          createState(idDomains, {
          name: 'Pi-hole Domains blocked today',
          desc: 'Heute blockierte Domains',
          type: 'number',
          def: 0,
          read: true,
          write: true,
          role: 'value'
          });
          createState(idDNSQueries, {
          name: 'Pi-hole DNS Queries today',
          desc: 'Heutige DOmain Name Server Anfragen',
          type: 'number',
          def: 0,
          read: true,
          write: true,
          role: 'value'
          });
          createState(idAdsBlocked, {
          name: 'Pi-hole Ads blocked today',
          desc: 'Heute blockierte Werbungen',
          type: 'number',
          def: 0,
          read: true,
          write: true,
          role: 'value'
          });
          createState(idAdsPercentage, {
          name: 'Pi-hole Ads percentage today',
          desc: 'Anteil heute blockierter Werbungen an allen Werbungen', // weiß nicht, ob das korrekt übersetzt ist
          type: 'number',
          def: 0,
          read: true,
          write: true,
          role: 'value'
          });
          createState(idActive, false, {
          name: 'Ist der Pi-hole Server aktiv?',
          desc: 'Liefert das Webinterface pi.hole/admin/api.php Daten?',
          type: 'boolean',
          read: true,
          write: true,
          role: 'indicator'
          });
          createState(idTabelle, '', {
          name: 'Pi-hole HTML Tabelle',
          desc: 'HMTL Tabelle mit den Daten der JSON-Datei',
          type: 'string',
          read: true,
          write: true,
          role: 'html'
          });
          ! // weitere Datenpunkte möglich (Abfragen des PI und dessen Zustands)
          ! var request = require('request');
          ! function readPihole() {
          if (logging) log('Pi-hole: URL "' + url + '" wird abgefragt ...');
          request(url, function (error, response, body) {
          if (!error && response.statusCode == 200) {
          var result;
          try{
          result = JSON.parse(body);
          var data = JSON.stringify(result, null, 2);
          if (logging) log(data);
          if (logging) log(body);
          setState(idJSON, data);
          if (logging) log('JSON: '+ getState(idJSON).val);
          } catch (fehler_try) {
          log('Pi-hole - Parse Fehler: ' + fehler_try, 'error');
          }
          var tabelle ='';
          var dnsblocked,
          dnsqueries,
          adsblocked,
          adspercentage;

                  if (result) { // CHECK
          
                      setState(idActive, true);
                      if (logging) log('Pi-hole liefert Daten und ist aktiv');
          
                      dnsblocked = (result.domains_being_blocked).replace(/,/, "");
                      dnsqueries = (result.dns_queries_today).replace(/,/, "");
                      adsblocked = result.ads_blocked_today;
                      adspercentage = result.ads_percentage_today;
          
                      setState(idDomains, parseFloat(dnsblocked));
                      setState(idDNSQueries, parseFloat(dnsqueries));
                      setState(idAdsBlocked, parseFloat(adsblocked));
                      setState(idAdsPercentage, parseFloat(adspercentage));
          
                      // Eintrag anfügen
                      tabelle += ''
                              +  ''
          
                              +  ''
                              +  ''
          
                              +  ''
                              +  ''
          
                              +  ''
                              +  '';
          
                  } else tabelle += '';
                  tabelle += '
          

          ! <caption>Pi-hole</caption>
          | Admin Service: ' + url + ' |
          | --- |
          | Anzahl blockierter Domains: | ' + dnsblocked + ' |
          | DNS-Abfragen (heute): | ' + dnsqueries + ' |
          | Blockierte Werbung (heute): | ' + adsblocked + ' |
          | Werbeanteil (heute in Prozent): | ' + adspercentage + ' |
          | Pi-hole nicht gefunden! |
          ! ';
          setState(idTabelle, tabelle);
          if (logging) log('HTML-Tabelle: ' + tabelle);
          } else {
          log('Pi-hole - Fehler: ' + error);
          }
          }); // Ende request
          }
          ! schedule(zeitplan, readPihole);
          setTimeout(readPihole, 500);

          
          Hier das erste Skript zum Auslesen der Daten (alt):
          
          >! ````
          /* Pi-hole
          pi-hole JSON Leser
          >! erstellt: 23.04.2017 von Pix
          */
          var logging = false;
          var pfad = '.Pi-hole.';
          var zeitplan = '*/30 * * * *';
          var url = 'http://192.168.178.20/admin/api.php';
          >! // ab hier nix mehr ändern
          >! // Instanz des Javascript-Adapters ermitteln
          var instanz = 'javascript.' + instance;
          if (logging) log(instanz);
          >! // ID definieren
          var idJSON          = instanz + pfad + 'JSON',
              idDomains       = instanz + pfad + 'Domains_blocked',
              idDNSQueries    = instanz + pfad + 'DNS_queries',
              idAdsBlocked    = instanz + pfad + 'Ads_blocked',
              idAdsPercentage = instanz + pfad + 'Ads_percentage',
              idActive        = instanz + pfad + 'aktiv',
              idTabelle       = instanz + pfad + 'Tabelle';
          >! // States erstellen
          createState(idJSON, '', {
              name: 'JSON Datei vom Pi-hole Server',
              desc: 'Kopie der JSON Datei',
              type: 'string',
              read: true,
              write: true,
              role: 'json'
          });
          createState(idDomains, {
              name: 'Pi-hole Domains blocked today', 
              desc: 'Heute blockierte Domains',
              type: 'number', 
              def:  0,
              read: true,
              write: true,
              role: 'value'
          });
          createState(idDNSQueries, {
              name: 'Pi-hole DNS Queries today', 
              desc: 'Heutige DOmain Name Server Anfragen',
              type: 'number', 
              def:  0,
              read: true,
              write: true,
              role: 'value'
          });
          createState(idAdsBlocked, {
              name: 'Pi-hole Ads blocked today', 
              desc: 'Heute blockierte Werbungen',
              type: 'number', 
              def:  0,
              read: true,
              write: true,
              role: 'value'
          });
          createState(idAdsPercentage, {
              name: 'Pi-hole Ads percentage today', 
              desc: 'Anteil heute blockierter Werbungen an allen Werbungen', // weiß nicht, ob das korrekt übersetzt ist
              type: 'number', 
              def:  0,
              read: true,
              write: true,
              role: 'value'
          });
          createState(idActive, false, {
              name: 'Ist der Pi-hole Server aktiv?', 
              desc: 'Liefert das Webinterface pi.hole/admin/api.php Daten?',
              type: 'boolean', 
              read: true,
              write: true,
              role: 'indicator'
          });
          createState(idTabelle, '', {
              name: 'Pi-hole HTML Tabelle',
              desc: 'HMTL Tabelle mit den Daten der JSON-Datei',
              type: 'string',
              read: true,
              write: true,
              role: 'html'    
          });
          >! // weitere Datenpunkte möglich (Abfragen des PI und dessen Zustands)
          >! var request = require('request');
          >! function readPihole() {
              if (logging) log('Pi-hole: URL "' + url + '" wird abgefragt ...');
              request(url, function (error, response, body) {
                  if (!error && response.statusCode == 200) {
                      var result;
                      try{
                          result = JSON.parse(body);
                          var data = JSON.stringify(result, null, 2);
                          if (logging) log(data);
                          if (logging) log(body);
                          setState(idJSON, data);
                          if (logging) log('JSON: '+ getState(idJSON).val);
                      } catch (fehler_try) {
                          log('Pi-hole - Parse Fehler: ' + fehler_try, 'error');
                      }    
                      var tabelle ='';
                      var dnsblocked,
                          dnsqueries,
                          adsblocked,
                          adspercentage;  
          
                      if (result) { // CHECK
          
                          setState(idActive, true);
                          if (logging) log('Pi-hole liefert Daten und ist aktiv');
          
                          dnsblocked = result.domains_being_blocked;
                          dnsqueries = result.dns_queries_today;
                          adsblocked = result.ads_blocked_today;
                          adspercentage = result.ads_percentage_today;
          
                          setState(idDomains, dnsblocked);
                          setState(idDNSQueries, dnsqueries);
                          setState(idAdsBlocked, adsblocked);
                          setState(idAdsPercentage, adspercentage);
          
                          // Eintrag anfügen
                          tabelle += ''
                                  +  ''
          
                                  +  ''
                                  +  ''
          
                                  +  ''
                                  +  ''
          
                                  +  ''
                                  +  '';
          
                      } else tabelle += '';
                      tabelle += '
          >! <caption>Pi-hole</caption>
          | Admin Service: ' + url + ' |
          | --- |
          | Anzahl blockierter Domains: | ' + dnsblocked + ' |
          | DNS-Abfragen (heute): | ' + dnsqueries + ' |
          | Blockierte Werbung (heute): | ' + adsblocked + ' |
          | Werbeanteil (heute in Prozent): | ' + adspercentage + ' |
          | Pi-hole nicht gefunden! |
          >! ';  
                      setState(idTabelle, tabelle);                     
                      if (logging) log('HTML-Tabelle: ' + tabelle);
                  } else {
                      log('Pi-hole - Fehler: ' + error);
                  }
              });   // Ende request 
          }
          >! schedule(zeitplan, readPihole);
          setTimeout(readPihole, 500);
          

          Hier ein Widget mit etwas CSS Formatierung. Es nutzt die HTML-tabelle, die im Skript zusammengebaut wird.

          [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html":"{javascript.2.Pi-hole.Tabelle}"},"style":{"left":"197px","top":"588px","z-index":"25","font-size":"60%","width":"231px","height":"130px"},"widgetSet":"basic"}]
          

          So siehts aus: 261_bildschirmfoto_2017-04-23_um_13.39.28.jpg

          Viel Spaß beim Nachbauen.

          More to come…

          Gruß

          Pix

          1 Reply Last reply Reply Quote 0
          • kmxak
            kmxak Most Active last edited by

            Hi pix.

            Toll das du sowas gebaut hast.

            Leider kann ich aktuell nichts mit dem Script anfangen da ich nicht weiß wo ich es ausführen soll. In ioBroker unter Scripte dann javascript/js oder direkt auf dem Pi?

            Anmerkung zum Pi-Hole.

            Habe mit ein paar Filterlisten Probleme da sie google und web.de geblockt haben.

            Das waren die Easylist Filter

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Ich habe mir jetzt endlich die Seite mal genauer angesehen.

              Klingt Gut, aber…

              Was passiert mit Seiten, die einen Adblocker-Blocker haben und dann nichts mehr anzeigen?

              Kann man die dann lokal ausnehmen, oder muss man das zentral im piHole machen oder geht das gar nicht?

              Bevor ich das netzwerkweit einrichte und mir anschließend der Rest der Familie aufs Dach steigt 😉

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • kmxak
                kmxak Most Active last edited by

                Falls eine Seite von pi-hole geblockt wird bekommst du folgende Meldung:
                2343_pihole.png

                Diese kannst du dann direkt Whitelisten.

                Du musst die DNS abfragen ja nicht über PI Hole laufen lassen.

                Ich hatte bis eben nur den einen Rechner darüber laufen zum Testen.

                Habe nun da alles lief die Fritzbox angewieden den DNS an die DHCP Clients raus zu geben.

                Edit:

                Habe es eben mal auf Bild.de getestet. Adblock Plus erkennt Bild.de und blockiert den Inhalt. Pi-Hole erkennt Bild.de nicht.

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  Hallo,

                  für mich war der Raspi ja schon ein böhmisches Dorf. Ganz stolz, dass das gleich geklappt hat.

                  Pi-hole ist bei mir noch in der Testphase. Ich habe in der Fritzbox den Pi-hole als lokalen DNS-Server angegeben. Mehr noch nicht.

                  Allerdings wird zB Bild.de geblockt (kein AdBlocker im Browser, sondern Pi-hole). Dafür muss ich irgendwo eine Ausnahme einstellen, aber? :roll:

                  Das oben geteilte Skript muss im Javascript-Adapter von ioBroker erstellt werden. Wie das geht, steht auf der Webseite iobroker.net hier: http://www.iobroker.net/docu/?page_id=6818&lang=de

                  Hier eine Einführung in die Sprache: http://www.iobroker.net/docu/?page_id=5385&lang=de

                  Das Skript legt die Datenpunkte an, die in VIS verwendet werden können. Es wird auch ein Datenpunkt Tabelle angelegt und mit einem HTML-Code gefüllt, der die Daten abbildet (siehe Widget oben). Alternativ lassen sich die einzelnen Daten natürlich auch in anderen Widgets anzeigen. Ein Datenpunkt "Aktiv" zeigt nur an, ob der pi-hole-Server die Daten in JSON geliefert hat.

                  Gruß

                  Pix

                  1 Reply Last reply Reply Quote 0
                  • kmxak
                    kmxak Most Active last edited by

                    ok

                    das script ist drin und läuft allerdings weiß ich nicht was:````
                    var pfad = '.Pi-hole.';

                    
                    Die IP ist klar.
                    
                    So das Script rennt schon mal 8-)
                    
                    Musste nur im Widget````
                    javascript.2.Pi-hole.Tabelle
                    ````anpassen du hast wohl mehrere js adapter am laufen?!
                    
                    Jetzt geht alles.
                    
                    In wiefern wird Bild.de bei dir geblockt?
                    
                    Welche Filter hast du aktiv?
                    1 Reply Last reply Reply Quote 0
                    • P
                      pix last edited by

                      Hallo kmxak,

                      ja, ich habe für Testzwecke mehrere Javascript Adapter. Habe das im Widget nicht angepasst, mein Fehler.

                      var pfad = '.Pi-hole.';
                      ````ist tatsächlich nur der Pfad zum Objekt im Objektreiter. Es sollen ja nicht alle Datenpunkte im Hauptverzeichnis liegen.
                      
                      Hier nochmal eine andere Variante für die VIS-Darstellung. Daten werden einzeln dargestellt (nicht HTML-Datenpunkt). Bitte Javascript-Instanz ggf. anpassen (steht auf 2). Es sind 5 einzelne Widgets, die sich natürlich auch gut gruppieren lassen. Der Hintergrund wird rot dargestellt, wenn das Skript nicht aktiv ist (übers Objekt __javascript.2.scriptEnabled.Test.Test_pihole__)
                      

                      [{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.DNS_queries","visibility-cond":"==","visibility-val":1,"name":"Elevation Anzeige","html_prepend":"

                      DNS-Abfragen (heute)

                      ","html_append":"","test_html":"","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"label_true":"Hauptschalter
                      Beschattung aktiviert Automatische Erkennung, ob Beschattung notwendig ist","visibility-groups-action":"hide"},"style":{"left":"91px","top":"901px","z-index":"21","width":"140px","color":"rgba(250,250,250,1)","font-size":"25px","height":"45px","text-align":"right","padding":"10px","background":"rgba(150,150,150,0.5)"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Ads_blocked","visibility-cond":"==","visibility-val":1,"name":"Anzeige Sonnenuntergang","html_prepend":"

                      Blockierte Werbung (heute)

                      ","html_append":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide"},"style":{"left":"91px","top":"972px","z-index":"21","width":"140px","height":"45px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"10"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Ads_percentage","visibility-cond":"==","visibility-val":1,"name":"Anzeige Sonnenaufgang","html_prepend":"

                      Werbeanteil (heute)

                      ","html_append":" %","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide"},"style":{"left":"91px","top":"1043px","z-index":"21","width":"140px","height":"45px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"10"},"widgetSet":"basic"}]

                      
                      Ich habe diese Domain Name Server verwendet:
                      ~~@[url=https://www.kuketz-blog.de/pi-hole-schwarzes-loch-fuer-werbung-raspberry-pi-teil1/:~~ 
                      
                      > ~~www.kuketz-blog.de"]~~Custom: 85.214.20.141, 213.73.91.35 [Ergänzung: DNS: Unzensierte und freie DNS-Server ohne Protokollierung] `  und die Standard Gravity Liste.
                      
                      Welche Domain müsste ich zB für Bild.de in die Whitelist eintragen? Die Werbung kommt ja wohl nicht von bild.de..
                      
                      Eintrag in die Whitelist:````
                      pihole -w domainname.de
                      

                      Gruß

                      Pix

                      1 Reply Last reply Reply Quote 0
                      • kmxak
                        kmxak Most Active last edited by

                        mit

                        nano /etc/pihole/adlists.list
                        

                        kannst du ja die ADListen bearbeiten

                        Und mir pihole -g neu einlesen.

                        Habe die ersten 6

                        die w10 telemetry

                        die erste untestet list url

                        aktiv

                        Bild.de habe ich nicht whitelisted.

                        Wird bei mir nicht geblockt

                        1 Reply Last reply Reply Quote 0
                        • P
                          pix last edited by

                          @kmxak:

                          mit

                          nano /etc/pihole/adlists.list
                          

                          kannst du ja die ADListen bearbeiten `
                          Die ist bei mir leer.

                          @kmxak:

                          Habe die ersten 6

                          die w10 telemetry

                          die erste untestet list url

                          aktiv `
                          Kannst du das nochmal genauer beschreiben?

                          Danke

                          Pix

                          1 Reply Last reply Reply Quote 0
                          • kmxak
                            kmxak Most Active last edited by

                            ach wahrscheinlich musst du noch die Befehle ausführen.

                            Siehe Bild.

                            Aber warum er per default bei dir Bild.de blockt weiß ich jetzt nicht.

                            Kommt bei aufruf bild.de gleich site was blocked by pi hole?

                            Du kannst im pi-hole admin ja auch schauen was er aktuell geblockt hat und dann gleich whitelisten oder blacklisten.
                            2343_pi-hole.png

                            1 Reply Last reply Reply Quote 0
                            • P
                              pix last edited by

                              Danke, sehe mir das morgen nochmal an.

                              Ich habe das Javascript nochmal leicht optimiert. Die Zahlen sind nicht ganz sauber. Da werden Kommas als Tausendertrennzeichen verwendet, deshalb gab es Mecker im Log. Das neue Skript ist oben eingestellt.

                              Gruß

                              Pix

                              1 Reply Last reply Reply Quote 0
                              • kmxak
                                kmxak Most Active last edited by

                                Hab in den Logs folgende Ausgabe:

                                javascript.0	2017-05-17 19:33:51.239	warn	Wrong type of javascript.0.Pi-hole.Ads_percentage: "string". Please fix, while deprecated and will not work in next versions.
                                javascript.0	2017-05-17 19:33:51.239	warn	Wrong type of javascript.0.Pi-hole.Ads_blocked: "string". Please fix, while deprecated and will not work in next versions.
                                javascript.0	2017-05-17 19:33:51.238	warn	Wrong type of javascript.0.Pi-hole.DNS_queries: "string". Please fix, while deprecated and will not work in next versions.
                                javascript.0	2017-05-17 19:33:51.237	warn	Wrong type of javascript.0.Pi-hole.Domains_blocked: "string". Please fix, while deprecated and will not work in next versions.
                                

                                Kannst du damit was anfangen? Sollten wir was fixen oder irgnorieren?

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

                                  @kmxak:

                                  Sollten wir was fixen oder irgnorieren? `
                                  Das ist in der letzten Version von Pix schon gefixed:

                                                  dnsblocked = (result.domains_being_blocked).replace(/,/, "");
                                                  dnsqueries = (result.dns_queries_today).replace(/,/, "");
                                                  adsblocked = result.ads_blocked_today;
                                                  adspercentage = result.ads_percentage_today;
                                  
                                                  setState(idDomains, parseFloat(dnsblocked));
                                                  setState(idDNSQueries, parseFloat(dnsqueries));
                                                  setState(idAdsBlocked, parseFloat(adsblocked));
                                                  setState(idAdsPercentage, parseFloat(adspercentage));
                                  
                                  

                                  parseFloat() macht den Unterschied.

                                  1 Reply Last reply Reply Quote 0
                                  • kmxak
                                    kmxak Most Active last edited by

                                    Ok danke hatte die Änderung nicht bemerkt :roll:

                                    1 Reply Last reply Reply Quote 0
                                    • kmxak
                                      kmxak Most Active last edited by

                                      Habe heute Pi-Hole geupdatet.

                                      Seitdem bekomme ich folgende Fehlermeldung:

                                      host.FHEM	2017-05-25 18:12:33.021	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                                      javascript.0	2017-05-25 18:12:32.972	error	TypeError: result.domains_being_blocked.replace is not a function at Request._callback (script.js.Test.pi-hole:118:61) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/
                                      javascript.0	2017-05-25 18:12:32.971	error	uncaught exception: result.domains_being_blocked.replace is not a function
                                      
                                      18:13:02.679	[error]	javascript.0 TypeError: result.domains_being_blocked.replace is not a function at Request._callback (script.js.Test.pi-hole:118:61) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:188:22) at emitTwo (events.js:87:13) at Request.emit (events.js:172:7) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1171:10) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1091:12) at IncomingMessage.g (events.js:260:16) at emitNone (events.js:72:20)
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        pix last edited by

                                        Hallo,

                                        den Fehler kann ich nicht bestätigen. Habe über das Dashboard mit Tools/Lists ein update ausgeführt. Danach keine Probleme mit dem Skript.

                                        Werden die anderen Werte gefüllt?

                                        Kannst du die API mit````
                                        http://IPPIHOLE/admin/api.php

                                        
                                        Pix
                                        1 Reply Last reply Reply Quote 0
                                        • kmxak
                                          kmxak Most Active last edited by

                                          Ja die Api wird geladen.

                                          Habe aber nicht nur die Listen geupdatet sondern das ganze Programm.

                                          der befehl war pihole -up

                                          Pi-hole Version v3.0.1 Web Interface Version v3.0.1 FTL Version v2.7.
                                          

                                          Finde es auch komisch das es jedes mal gleich die JS Instanz mit zum absturz bringt:

                                          host.FHEM	2017-05-26 16:46:28.570	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                                          

                                          Edit: Was ich gerade bemerkt habe ist das irgendwie mein FTL immer crashed. Ist schon wieder offline

                                          Edit: Gerade nochmal PiHole neu aufgesetzt… immer noch gleicher Fehler. :?

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

                                            @kmxak:

                                            Habe heute Pi-Hole geupdatet.

                                            Seitdem bekomme ich folgende Fehlermeldung:

                                            host.FHEM	2017-05-25 18:12:33.021	error	instance system.adapter.javascript.0 terminated with code 0 (OK)
                                            javascript.0	2017-05-25 18:12:32.972	error	TypeError: result.domains_being_blocked.replace is not a function at Request._callback (script.js.Test.pi-hole:118:61) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/
                                            javascript.0	2017-05-25 18:12:32.971	error	uncaught exception: result.domains_being_blocked.replace is not a function
                                            ```` `  
                                            

                                            Probier mal den Block hier auszutauschen:

                                                            dnsblocked = JSON.stringify(result.domains_being_blocked).replace(/,/, "");
                                                            dnsqueries = JSON.stringify(result.dns_queries_today).replace(/,/, "");
                                                            adsblocked = JSON.stringify(result.ads_blocked_today);
                                                            adspercentage = JSON.stringify(result.ads_percentage_today);
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            13
                                            47
                                            11507
                                            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