Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. [Aufruf] Neuer Adapter ioBroker.pi-hole

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

[Aufruf] Neuer Adapter ioBroker.pi-hole

Geplant Angeheftet Gesperrt Verschoben Tester
adaptertestpi-hole
97 Beiträge 16 Kommentatoren 20.8k Aufrufe 25 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • unltdnetworxU unltdnetworx

    @sol21
    Ich habe 60 als Wert.

    Kommen sonst Werte an? In allen Unterpunkten? Es müssten10 Channels (Ordnersymbole) auf der ersten Ebene sein. Manche Werte brauchen den Token, manche nicht. Evtl. kommen nur Bestimmte an, dann stimmt etwas mit dem Token nicht.

    S Offline
    S Offline
    sol21
    schrieb am zuletzt editiert von
    #57

    @unltdnetworx sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

    Kommen sonst Werte an?

    Für mich sieht es so aus wie alle ankommen. Die [Object object] müssen vermutlich so sein?objekt.JPG :

    unltdnetworxU 1 Antwort Letzte Antwort
    0
    • S sol21

      @unltdnetworx sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

      Kommen sonst Werte an?

      Für mich sieht es so aus wie alle ankommen. Die [Object object] müssen vermutlich so sein?objekt.JPG :

      unltdnetworxU Offline
      unltdnetworxU Offline
      unltdnetworx
      Developer
      schrieb am zuletzt editiert von unltdnetworx
      #58

      @sol21 sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

      Die [Object object] müssen vermutlich so sein?

      Das hab ich vorhin gerade abgeändert. Ist jetzt ein String und kann dann in JSON-Tabellen in VIS ausgegeben werden. Bitte Update über die Github-Katze machen.

      Kommen 10 Ordner-Symbole als direkte Unterpunkte zu pi-hole.0 und sind alle befüllt mit Werten?
      Unbenannt-1.jpg

      Falls ja, hab ich momentan auch keine Ahnung, warum es den pi-hole nicht startet.

      Gib auch mal in einem Browser folgende Zeile ein und ruf die Seite auf:
      http://IP-ADRESSE/admin/api.php?topItems&auth=TOKEN

      IP-ADRESSE und TOKEN natürlich anpassen.

      Gruß, Michael
      Weitere Infos im Profil.
      Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

      S A 2 Antworten Letzte Antwort
      0
      • unltdnetworxU unltdnetworx

        @sol21 sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

        Die [Object object] müssen vermutlich so sein?

        Das hab ich vorhin gerade abgeändert. Ist jetzt ein String und kann dann in JSON-Tabellen in VIS ausgegeben werden. Bitte Update über die Github-Katze machen.

        Kommen 10 Ordner-Symbole als direkte Unterpunkte zu pi-hole.0 und sind alle befüllt mit Werten?
        Unbenannt-1.jpg

        Falls ja, hab ich momentan auch keine Ahnung, warum es den pi-hole nicht startet.

        Gib auch mal in einem Browser folgende Zeile ein und ruf die Seite auf:
        http://IP-ADRESSE/admin/api.php?topItems&auth=TOKEN

        IP-ADRESSE und TOKEN natürlich anpassen.

        S Offline
        S Offline
        sol21
        schrieb am zuletzt editiert von
        #59

        @unltdnetworx sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

        Kommen 10 Ordner-Symbole als direkte Unterpunkte zu pi-hole.0 und sind alle befüllt mit Werten?

        Ja, kaommen alle

        Gib auch mal in einem Browser folgende Zeile ein und ruf die Seite auf:
        http://IP-ADRESSE/admin/api.php?topItems&auth=TOKEN
        Scheint auch zu laufen:antwort1.JPG
        antwort2.JPG

        unltdnetworxU 1 Antwort Letzte Antwort
        0
        • S sol21

          @unltdnetworx sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

          Kommen 10 Ordner-Symbole als direkte Unterpunkte zu pi-hole.0 und sind alle befüllt mit Werten?

          Ja, kaommen alle

          Gib auch mal in einem Browser folgende Zeile ein und ruf die Seite auf:
          http://IP-ADRESSE/admin/api.php?topItems&auth=TOKEN
          Scheint auch zu laufen:antwort1.JPG
          antwort2.JPG

          unltdnetworxU Offline
          unltdnetworxU Offline
          unltdnetworx
          Developer
          schrieb am zuletzt editiert von
          #60

          @sol21
          dann habe ich momentan auch keine Idee mehr, warum es nicht klappt mit starten und stoppen. Was anderes macht der Adapter nämlich auch nicht.

          Adapter vllt. nochmal neuinstallieren. Aber sonst ...

          Gruß, Michael
          Weitere Infos im Profil.
          Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

          S 1 Antwort Letzte Antwort
          0
          • unltdnetworxU unltdnetworx

            @sol21
            dann habe ich momentan auch keine Idee mehr, warum es nicht klappt mit starten und stoppen. Was anderes macht der Adapter nämlich auch nicht.

            Adapter vllt. nochmal neuinstallieren. Aber sonst ...

            S Offline
            S Offline
            sol21
            schrieb am zuletzt editiert von
            #61

            @unltdnetworx sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

            Adapter vllt. nochmal neuinstallieren. Aber sonst ...

            Habe ich gerade gemacht... Und schwups funktioniert von Anfang an!?!

            Auf alle Fälle nochmals ein riesen Danke schön an Dich!

            1 Antwort Letzte Antwort
            0
            • unltdnetworxU unltdnetworx

              @sol21 sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

              Die [Object object] müssen vermutlich so sein?

              Das hab ich vorhin gerade abgeändert. Ist jetzt ein String und kann dann in JSON-Tabellen in VIS ausgegeben werden. Bitte Update über die Github-Katze machen.

              Kommen 10 Ordner-Symbole als direkte Unterpunkte zu pi-hole.0 und sind alle befüllt mit Werten?
              Unbenannt-1.jpg

              Falls ja, hab ich momentan auch keine Ahnung, warum es den pi-hole nicht startet.

              Gib auch mal in einem Browser folgende Zeile ein und ruf die Seite auf:
              http://IP-ADRESSE/admin/api.php?topItems&auth=TOKEN

              IP-ADRESSE und TOKEN natürlich anpassen.

              A Offline
              A Offline
              Adnim
              schrieb am zuletzt editiert von
              #62

              @unltdnetworx said in [Aufruf] Neuer Adapter ioBroker.pi-hole:

              Das hab ich vorhin gerade abgeändert. Ist jetzt ein String und kann dann in JSON-Tabellen in VIS ausgegeben werden. Bitte Update über die Github-Katze machen.

              YEAH, Danke!

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                Adnim
                schrieb am zuletzt editiert von
                #63

                Guten Morgen!
                habe nun paar Tage getestet funzt soweit echt genial.Der Adapter hat noch gefehlt

                Hatte noch folgende erweiterungs Ideen:
                -Whitelist Blacklist anzeigen ggf über vis etwas ändern/ etwas hinzufügen
                -Querry LOG um zu sehen was geblockt wird
                -Queries answered by

                Evtl kann man ja noch einfach was davon umsetzen.

                LG
                Admin

                unltdnetworxU 1 Antwort Letzte Antwort
                0
                • A Adnim

                  Guten Morgen!
                  habe nun paar Tage getestet funzt soweit echt genial.Der Adapter hat noch gefehlt

                  Hatte noch folgende erweiterungs Ideen:
                  -Whitelist Blacklist anzeigen ggf über vis etwas ändern/ etwas hinzufügen
                  -Querry LOG um zu sehen was geblockt wird
                  -Queries answered by

                  Evtl kann man ja noch einfach was davon umsetzen.

                  LG
                  Admin

                  unltdnetworxU Offline
                  unltdnetworxU Offline
                  unltdnetworx
                  Developer
                  schrieb am zuletzt editiert von
                  #64

                  @Adnim
                  Guten Morgen.
                  Die Ideen sind grundsätzlich gut. Aber wie ich weiter oben schon geschrieben hatte, soll wohl eine neue API von pi-hole kommen welche viel mehr kann. Denke es ist also nicht sehr zielführend, jetzt noch Arbeit für neue Funktionen in diese Version zu stecken.

                  Sobald die neue API stabil fertig ist, werde ich mich mal an einer Version 2.x des Adapters versuchen.

                  Gruß, Michael
                  Weitere Infos im Profil.
                  Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    Adnim
                    schrieb am zuletzt editiert von
                    #65

                    Ok verstehe, Danke für die Info!

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      sol21
                      schrieb am zuletzt editiert von
                      #66

                      Bin gerade an meiner minimalen Visu für den Pi-hole Adapter. Als Rückmeldung in der Visu, ob der Pi-hole läuft möchte ich den Status anzeigen. Ich verwende dazu den Status:
                      status.JPG

                      Wenn ich es richtig verstanden habe kann dieser einfach "enabled"/"disabled" annehmen. Das kann ich in der Visu auch problemlos als Text anzeigen.
                      Aber eigenlich hätte ich lieber ein "true"/"false". Das könnte man in der Visu einfacher verwenden z.B. einen Text ein- oder ausblenden:
                      text.JPG

                      Als Input für die zukünftige Weiterentwicklung (irgendwann): könnte man dazu nicht ein Boolean Wert zur Verfügung stellen? Den könnte man dann einfacher direkt in der Visu verwenden.

                      Aber sie gesagt, nur als Idee und auch nicht dringend. Bin schon mal oberglücklich, dass es den Adapter gibt und dieser auch so gut läuft!

                      unltdnetworxU 1 Antwort Letzte Antwort
                      0
                      • S sol21

                        Bin gerade an meiner minimalen Visu für den Pi-hole Adapter. Als Rückmeldung in der Visu, ob der Pi-hole läuft möchte ich den Status anzeigen. Ich verwende dazu den Status:
                        status.JPG

                        Wenn ich es richtig verstanden habe kann dieser einfach "enabled"/"disabled" annehmen. Das kann ich in der Visu auch problemlos als Text anzeigen.
                        Aber eigenlich hätte ich lieber ein "true"/"false". Das könnte man in der Visu einfacher verwenden z.B. einen Text ein- oder ausblenden:
                        text.JPG

                        Als Input für die zukünftige Weiterentwicklung (irgendwann): könnte man dazu nicht ein Boolean Wert zur Verfügung stellen? Den könnte man dann einfacher direkt in der Visu verwenden.

                        Aber sie gesagt, nur als Idee und auch nicht dringend. Bin schon mal oberglücklich, dass es den Adapter gibt und dieser auch so gut läuft!

                        unltdnetworxU Offline
                        unltdnetworxU Offline
                        unltdnetworx
                        Developer
                        schrieb am zuletzt editiert von
                        #67

                        @sol21
                        Du kannst gerne bei Github einen Issue fpr die geplante Version 2.x hinterlassen. Dann ist das hinterlegt und geht nicht unter.

                        Gruß, Michael
                        Weitere Infos im Profil.
                        Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                        1 Antwort Letzte Antwort
                        0
                        • SBorgS SBorg

                          Danke und schade.
                          Ich frage nur mal (sonst schreibe ich mir bei Gelegenheit ein kleines Bash-Skript dafür) wie es bei dir mit parsen von Webseiten aussieht, bzw. ob du es dir später vorstellen kannst.
                          PI_Hole-IP/admin/index.php:
                          Nach <!-- Version Infos --> oder <div class="pull-right hidden-xs hidden-sm"> kommen die Versions-Infos. Die könnte man speichern oder einfach nach Update (denke ich, bei mir steht gerade keins an) durchsuchen.

                          P Offline
                          P Offline
                          pix
                          schrieb am zuletzt editiert von
                          #68

                          Hallo,

                          habe heute den Adapter installiert und bin sehr zufrieden. Tolle Arbeit.
                          Bis nutze ich eine Skript:

                          /* Pi-hole
                          pi-hole JSON Leser und Statusseiten Parser
                          InfluxDB Vorbereitung
                          
                          23.04.2017 von Pix erstellt
                          28.05.2017 var tabelle umgestellt
                          31.05.2017 forceCreation und common/influx
                          11.02.2018 Parse Temperatur, LOAD, Mem, Aktivitität; jeweils mit Farbe
                                     Code optimiert
                                     Ablauf optimiert
                          26.02.2018 Update der Serversoftware wird abgefragt
                          01.03.2018 Muster zur Temperaturerkennung optimiert
                                     
                          todo: Reaktionen mit Optin und telegram bei Serverausfall, Temperatur zu hoch, etc.           
                                     
                          */
                          
                          const fC = false; // forceCreation
                          const logging = false;
                          const pfad = ".Pi-hole.";
                          const zeitplan = "*/5 * * * *"; // alle 5 Minuten
                          const zeitplan_parse = "*/1 * * * *"; // minütlich
                          const ip_pihole = "192.168.XXX.XXX"; // IP eintragen
                          
                          
                          // #############################################################################
                          // ab hier nix mehr ändern
                          
                          const url = "http://" + ip_pihole + "/admin/api.php";
                          const url_parse = "http://" + ip_pihole + "/admin/index.php";
                          
                          // Instanz des Javascript-Adapters ermitteln
                          var instanz = "javascript." + instance;
                          if (logging) log(instanz);
                          
                          // ID definieren
                          const 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",
                                idTemp             = instanz + pfad + "Temperatur",
                                idTempFarbe        = instanz + pfad + "Farbe.Temperatur",
                                idMemory           = instanz + pfad + "Speicher",
                                idMemoryFarbe      = instanz + pfad + "Farbe.Speicher",
                                idVersionFTL       = instanz + pfad + "Version.FTL",
                                idVersionPihole    = instanz + pfad + "Version.Pihole",
                                idVersionInterface = instanz + pfad + "Version.Interface",
                                idLoad             = instanz + pfad + "Load",
                                idLoadFarbe        = instanz + pfad + "Farbe.Load",
                                idAktiv            = instanz + pfad + "aktiv_parse",
                                idAktivFarbe       = instanz + pfad + "Farbe.aktiv_parse",
                                idTabelle          = instanz + pfad + "Tabelle",
                                idUpdate           = instanz + pfad + "Update";
                          
                          // States erstellen
                          createState(idJSON, "", fC, {
                              name: "JSON Datei vom Pi-hole Server",
                              desc: "Kopie der JSON Datei",
                              type: "string",
                              read: true,
                              write: true,
                              role: "json",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": false,
                                      "changesOnly": false,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idDomains, 0, fC, {
                              name: "Pi-hole Domains blocked today", 
                              desc: "Heute blockierte Domains (API)",
                              type: "number", 
                              def:  0,
                              read: true,
                              write: true,
                              role: "value",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idDNSQueries, 0, fC, {
                              name: "Pi-hole DNS Queries today", 
                              desc: "Heutige DOmain Name Server Anfragen (API)",
                              type: "number", 
                              def:  0,
                              read: true,
                              write: true,
                              role: "value",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idAdsBlocked, 0, fC, {
                              name: "Pi-hole Ads blocked today", 
                              desc: "Heute blockierte Werbungen (API)",
                              type: "number", 
                              def:  0,
                              read: true,
                              write: true,
                              role: "value",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idAdsPercentage, 0, fC, {
                              name: "Pi-hole Ads percentage today", 
                              desc: "Anteil heute blockierter Werbungen an allen Werbungen (API)", // weiß nicht, ob das korrekt übersetzt ist
                              type: "number", 
                              def:  0,
                              read: true,
                              write: true,
                              min: 0,
                              max: 100,
                              role: "value",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 63072000 // 2 Jahre
                                  }
                              }
                          });
                          createState(idActive, false, fC, {
                              name: "Ist der Pi-hole Server aktiv?", 
                              desc: "Liefert das Webinterface pi.hole/admin/api.php Daten? (API)",
                              type: "boolean", 
                              read: true,
                              write: true,
                              role: "indicator",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": false,
                                      "changesOnly": false,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idAktiv, false, fC, {
                              name: "Ist der Pi-hole Server aktiv?", 
                              desc: "Läuft der Server (Webseite)",
                              type: "boolean", 
                              read: true,
                              write: true,
                              role: "indicator",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": false,
                                      "changesOnly": false,
                                      "debounce": "",
                                      "retention": 657000 // 1 Monat
                                  }
                              }
                          });
                          createState(idAktivFarbe, "#FFFFFFF", fC, {
                              name: "Pi-hole Aktivität HEX-Farbwert", 
                              desc: "Indikator Farbwert Aktivität des Pi-Hole Servers (Webseite)",
                              type: "string",
                              def:  "#FFFFFF",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idLoad, "0", fC, {
                              name: "Pi-hole CPU Load", 
                              desc: "CPU Belastung (Load) des Pi-Hole Servers (Webseite)",
                              type: "string",
                              def:  "0",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idLoadFarbe, "#FFFFFFF", fC, {
                              name: "Pi-hole Load HEX-Farbwert", 
                              desc: "Indikator Farbwert LOAD des Pi-Hole Servers (Webseite)",
                              type: "string",
                              def:  "#FFFFFF",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idTemp, 0, fC, {
                              name: "Pi-hole Temperatur", 
                              desc: "Wärmeentwicklung des Pi-Hole Servers (Webseite)",
                              type: "number",
                              unit: "°C",
                              def:  0,
                              read: true,
                              write: true,
                              role: "value.temperature",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 63072000 // 2 Jahre
                                  }
                              }
                          });
                          createState(idTempFarbe, "#FFFFFFF", fC, {
                              name: "Pi-hole Temperatur HEX-Farbwert", 
                              desc: "Indikator Farbwert des Pi-Hole Servers (Webseite)",
                              type: "string",
                              def:  "#FFFFFF",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idVersionPihole, "", fC, {
                              name: "Pi-hole Version", 
                              desc: "Software Version Pi-hole (Webseite)",
                              type: "string",
                              def:  "",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idVersionFTL, "", fC, {
                              name: "FTL Version", 
                              desc: "Software Version FTL (Webseite)",
                              type: "string",
                              def:  "",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idVersionInterface, "", fC, {
                              name: "Web Interface Version", 
                              desc: "Software Version Web Interface (Webseite)",
                              type: "string",
                              def:  "",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idMemory, 0, fC, {
                              name: "Pi-hole Speichernutzung", 
                              desc: "von Pi-Hole belegter Hauptspeicher (Webseite)",
                              type: "number",
                              unit: "%",
                              def:  0,
                              read: true,
                              write: true,
                              min: 0,
                              max: 100,
                              role: "value",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": "",
                                      "retention": 63072000 // 2 Jahre
                                  }
                              }
                          });
                          createState(idMemoryFarbe, "#FFFFFFF", fC, {
                              name: "Pi-hole Speichernutzung HEX-Farbwert", 
                              desc: "Indikator Farbwert Speichernutzung des Pi-Hole Servers (Webseite)",
                              type: "string",
                              def:  "#FFFFFF",
                              read: true,
                              write: true,
                              role: "text"
                          });
                          createState(idTabelle, "", true, {
                              name: "Pi-hole HTML Tabelle",
                              desc: "HMTL Tabelle mit den Daten der JSON-Datei",
                              type: "string",
                              read: true,
                              write: true,
                              role: "html",
                              custom: {
                                  "influxdb.0": {
                                      "enabled": false,
                                      "changesOnly": false,
                                      "debounce": "",
                                      "retention": 63072000 // 2 Jahre
                                  }
                              }
                          });
                          createState(idUpdate, false, fC, {
                              name: "Ist ein Pi-hole Softwareupdate möglich?", 
                              desc: "Gibt es eine neue Version der Serversoftware? (Webseite)",
                              type: "boolean", 
                              read: true,
                              write: true,
                              role: "indicator"
                          });
                           
                          
                          var request = require("request");
                          
                          function parseWebsite() { // für Version 3.3
                              var options = {
                                  url: url_parse,
                                  headers: {
                                      'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
                                  }
                              }; 
                              try {
                                  request(options, function (error, response, body) {
                                      if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                                          // Temperatur Zahl
                                          const temp_pattern = /\d{1,2}\.?\d*(?=&nbsp;&deg;C)/;
                                          if (body.match(temp_pattern) === null) log('gesuchter Quellcode (Temperatur Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var temp_arr =  body.match(temp_pattern);
                                              var temp = parseFloat(temp_arr[0]);
                                              if (logging) log("Temperatur: " + temp + "°C");
                                              setState(idTemp, temp);        
                                          }
                                          // Temperatur Farbe String
                                          const tempfarbe_pattern = /.{7}(?="><\/i> Temp)/;
                                          if (body.match(tempfarbe_pattern) === null) log('gesuchter Quellcode (Temperatur Farbe Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var tempfarbe_arr =  body.match(tempfarbe_pattern);
                                              if (logging) log("Temperatur-Farbe (HEX-Wert): " + tempfarbe_arr[0]);
                                              setState(idTempFarbe, tempfarbe_arr[0]);        
                                          }
                                          // Speicherbelegung Zahl
                                          const mem_pattern = /\d{1,2}\.\d{1}(?=&thinsp;%<\/a>)/;
                                          if (body.match(mem_pattern) === null) log('gesuchter Quellcode (Speicherbelegung Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var mem_arr =  body.match(mem_pattern);
                                              var mem = parseFloat(mem_arr[0]);
                                              if (logging) log("Speicherbelegung: " + mem + "%");
                                              setState(idMemory, mem);        
                                          }
                                          // Farbe Speicherbelegung String / HEX-Wert
                                          const memfarbe_pattern = /.{7}(?="><\/i> Memory)/;
                                          if (body.match(memfarbe_pattern) === null) log('gesuchter Quellcode (Farbe Speicherbelegung Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var memfarbe_arr =  body.match(memfarbe_pattern);
                                              if (logging) log("Speicherbelegung Farbe: " + memfarbe_arr[0]);
                                              setState(idMemoryFarbe, memfarbe_arr[0]);        
                                          }
                                          // LOAD String zB 0 0 0 oder 10.4 1.45 0
                                          const load_pattern = /Load:&nbsp;&nbsp;(\d*|\d*\.\d*)&nbsp;&nbsp;(\d*|\d*\.\d*)&nbsp;&nbsp;(\d*|\d*\.\d*)/;
                                          if (body.match(load_pattern) === null) log('gesuchter Quellcode (LOAD Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var load_arr =  body.match(load_pattern);
                                              var load0 = load_arr[0].replace(/Load:/i,"");
                                              var load = load0.replace(/&nbsp;/g,"  ");
                                              if (logging) log("CPU LOAD Server: " + load);
                                              setState(idLoad, load);        
                                          }
                                          // Farbe LOAD String / HEX-Wert
                                          const loadfarbe_pattern = /.{7}(?="><\/i>.*Load:)/;
                                          if (body.match(loadfarbe_pattern) === null) log('gesuchter Quellcode (Farbe LOAD Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var loadfarbe_arr =  body.match(loadfarbe_pattern);
                                              if (logging) log("LOAD Farbe: " + loadfarbe_arr[0]);
                                              setState(idLoadFarbe, loadfarbe_arr[0]);        
                                          }
                                          // Version Pihole zB 3.2.1 String
                                          const versionpi_pattern = /<b>Pi-hole Version \s*<\/b>\s*v\d*(\.\d*)*\.\d*/; // x.x.x oder x.x
                                          if (body.match(versionpi_pattern) === null) log('gesuchter Quellcode (Pi-Hole Version) nicht gefunden', 'error');
                                          else {
                                              var versionpi_arr =  body.match(versionpi_pattern);
                                              var versionpi = versionpi_arr[0].replace(/<b>Pi-hole Version <\/b> v/,"");
                                              if (logging) log("Version Pihole Server: " + versionpi);
                                              setState(idVersionPihole, versionpi);        
                                          }
                                          // Version FTL zB 3.2.1 String
                                          const versionftl_pattern = /<b>FTL Version.*v\d*(\.\d*)*\.\d*/;
                                          if (body.match(versionftl_pattern) === null) log('gesuchter Quellcode (FTL Version) nicht gefunden', 'error');
                                          else {
                                              var versionftl_arr =  body.match(versionftl_pattern);
                                              var versionftl = versionftl_arr[0].replace(/<b>FTL Version.*v/,"");
                                              if (logging) log("FTL Version Pihole Server: " + versionftl);
                                              setState(idVersionFTL, versionftl);        
                                          }
                                          // Version Web Interface zB 3.2.1 String
                                          const versioninterface_pattern = /<b>Web Interface Version.*<\/b>v\d*(\.\d*)*\.\d*/;
                                          if (body.match(versioninterface_pattern) === null) log('gesuchter Quellcode (Web Interface Version) nicht gefunden', 'error');
                                          else {
                                              var versioninterface_arr =  body.match(versioninterface_pattern);
                                              var versioninterface = versioninterface_arr[0].replace(/<b>Web Interface Version.*<\/b>v/,"");
                                              if (logging) log("Web Interface Version Pihole Server: " + versioninterface);
                                              setState(idVersionInterface, versioninterface);        
                                          }
                                          // Aktiv zB true/false boolean holt das aus String
                                          const aktiv_pattern = /i>.*(?=<\/a><a id="temperature">)/;
                                          if (body.match(aktiv_pattern) === null) log('gesuchter Quellcode (Pi-hole aktiv) nicht gefunden', 'error');
                                          else {
                                              var aktiv_arr =  body.match(aktiv_pattern);
                                              var aktiv = aktiv_arr[0].replace(/i>\s*/,"");
                                              var aktiv_bool = (aktiv === "Active") ? true : false;
                                              if (logging) log("Pihole Server aktiv? " + aktiv + "(" + aktiv_bool + ")");
                                              setState(idAktiv, aktiv_bool);     
                                          }
                                          // Farbe Aktiv String / HEX-Wert
                                          const aktivfarbe_pattern = /.{7}(?="><\/i.*<\/a><a id="temperature">)/;
                                          if (body.match(aktivfarbe_pattern) === null) log('gesuchter Quellcode (Farbe Aktivität Pi-Hole) nicht gefunden', 'error');
                                          else {
                                              var aktivfarbe_arr =  body.match(aktivfarbe_pattern);
                                              if (logging) log("Aktivität Farbe: " + aktivfarbe_arr[0]);
                                              setState(idAktivFarbe, aktivfarbe_arr[0]);        
                                          }
                                          // Update available
                                          const update_pattern = /Update available!/;
                                          if (body.match(update_pattern) === null) setState(idUpdate, false); //log('gesuchter Quellcode (Update Warnung) nicht gefunden', 'error');
                                          else {
                                              var update_arr =  body.match(update_pattern);
                                              var update = update_arr[0];
                                              var update_bool = update === ("Update available!") ? true : false;
                                              if (logging) log("Pihole Softwareupdate möglich? (" + update_bool + ")");
                                              setState(idUpdate, update_bool);          
                                          }
                                      } else {
                                          log("StatusCode = " + response.statusCode);
                                          log(error, 'error');                               // Error beim Einlesen
                                      }
                                  });
                              } catch (e) {
                                  log('Fehler (try) leseWebseite (Pi-Hole Index.html): ' + e, 'error');
                              }
                              if (logging) log('Pi-Hole Webseite eingelesen, Temperatur und Speicherbelegung gespeichert');
                          }
                          
                          
                          function readPihole() {
                              if (logging) log("Pi-hole: URL " + url + " wird abgefragt ...");
                              var tabelle ="<table class='pihole_tabelle'><caption>Pi-hole</caption><thead><tr><th>Admin Service: " + url + "</th></tr></thead><tbody>";
                              request(url, function (error, response, body) {
                                  if (!error && response.statusCode == 200) {
                                      var result;
                                      var dnsblocked,
                                          dnsqueries,
                                          adsblocked,
                                          adspercentage; 
                                      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);
                                          
                                          if (result) { // CHECK
                                          
                                              setState(idActive, true);
                                              if (logging) log("Pi-hole liefert Daten und ist aktiv");
                                              // http://forum.iobroker.net/viewtopic.php?f=24&t=6053&sid=65e9ec9396fe557147e535c5a4631982#p68823
                                              dnsblocked = (result.domains_being_blocked)/*.replace(/,/, "")*/;
                                              dnsqueries = (result.dns_queries_today)/*.replace(/,/, "")*/;
                                              adsblocked = result.ads_blocked_today;
                                              adspercentage = result.ads_percentage_today;
                                              
                                              if ( isNaN(parseFloat(adspercentage)) === false ) {
                                                  setState(idAdsPercentage, parseFloat(adspercentage));
                                              } else setState(idAdsPercentage, 100);
                                              setState(idDomains, parseFloat(dnsblocked));
                                              setState(idDNSQueries, parseFloat(dnsqueries));
                                              setState(idAdsBlocked, parseFloat(adsblocked));
                                          
                                              // Eintrag anfügen
                                              tabelle += "<tr><td class='pihole_label'>Anzahl blockierter Domains:</td>"
                                                      +  "<td class='pihole_data'>" + dnsblocked + "</td></tr>"
                                                      
                                                      +  "<tr><td class='pihole_label'>DNS-Abfragen (heute):</td>"
                                                      +  "<td class='pihole_data'>" + dnsqueries + "</td></tr>"
                                                  
                                                      +  "<tr><td class='pihole_label'>Blockierte Werbung (heute):</td>"
                                                      +  "<td class='pihole_data'>" + adsblocked + "</td></tr>"
                                                  
                                                      +  "<tr><td class='pihole_label'>Werbeanteil (heute in Prozent):</td>"
                                                      +  "<td class='pihole_data'>" + adspercentage + "</td></tr>";
                                          } else tabelle += "<tr><td class='pihole_data'>Pi-hole nicht gefunden!</td></tr>";
                                          // Ende Teil,d er aus dem Try raus kann
                                      } catch (fehler_try) {
                                          log("Pi-hole - Parse Fehler: " + fehler_try, "error");
                                      }    
                                  } else {
                                      log("Pi-hole - Fehler: " + error, "warn");
                                  }
                                  tabelle += "</tbody></table>";  
                                  setState(idTabelle, tabelle);                     
                                  if (logging) log("HTML-Tabelle: " + tabelle);
                              });   // Ende request 
                          }
                          
                          function main() {
                              readPihole();
                              setTimeout(parseWebsite, 3000); // verzögertes Parsen
                          }
                          schedule(zeitplan_parse, parseWebsite);
                          schedule(zeitplan, readPihole);
                          setTimeout(main, 500);
                          

                          Bildschirmfoto 2019-06-25 um 14.48.06.jpg

                          Bildschirmfoto 2019-06-25 um 14.46.51.jpg

                          @SBorg sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

                          Danke und schade.
                          Ich frage nur mal (sonst schreibe ich mir bei Gelegenheit ein kleines Bash-Skript dafür) wie es bei dir mit parsen von Webseiten aussieht, bzw. ob du es dir später vorstellen kannst.
                          PI_Hole-IP/admin/index.php:
                          Nach <!-- Version Infos --> oder <div class="pull-right hidden-xs hidden-sm"> kommen die Versions-Infos. Die könnte man speichern oder einfach nach Update (denke ich, bei mir steht gerade keins an) durchsuchen.

                          @unltdnetworx Im Skript wird auch geparst, damit ich eine Warnung in VIS ausgeben kann, wenn ein Update ansteht. Kannst du für den Adapter gern kopieren.

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          unltdnetworxU 1 Antwort Letzte Antwort
                          3
                          • P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von
                            #69

                            Hier nochmal die Widgets, die ich für die obige View nutze. Die Datenpunkte liegen in javascript.2 und das Bild ist aus der pi-hole-Admin-Seite.

                            [{"tpl":"tplHtml","data":{"g_fixed":true,"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":"System | Pi-hole","name":"Überschrift","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"89px","top":"21px","z-index":"25","width":"auto","height":"30px","font-size":"25px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.aktiv","visibility-cond":"==","visibility-val":1,"name":"Pihole aktiv?","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Ist der pi-hole aktiv?<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"108px","top":"411px","z-index":"21","width":"140px","height":"45px","text-align":"right","background-color":"{a:javascript.2.Pi-hole.aktiv; (a != false) ? \"rgba(150,150,150,0.5)\" : \"rgba(250,20,20,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_blocked","visibility-cond":"==","visibility-val":1,"name":"Anzeige Sonnenuntergang","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Blockierte Werbung (heute)<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"264px","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":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Werbeanteil (heute)<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"338px","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.DNS_queries","visibility-cond":"==","visibility-val":1,"name":"Elevation Anzeige","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">DNS Anfragen (heute)<br></p>","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":"<span class=\"metro_beschriftung\">Hauptschalter<br>Beschattung aktiviert<br><br></span><span style=\"font-size: 80%; font-family: RobotoCondensed-Regular;\">Automatische Erkennung, ob Beschattung notwendig ist</span>","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"192px","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.Domains_blocked","visibility-cond":"==","visibility-val":1,"name":"pi-hole Domains blocked","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Blockierte Domains (heute)<br></p>","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":"<span class=\"metro_beschriftung\">Hauptschalter<br>Beschattung aktiviert<br><br></span><span style=\"font-size: 80%; font-family: RobotoCondensed-Regular;\">Automatische Erkennung, ob Beschattung notwendig ist</span>","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"120px","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":"tplValueListHtml8","data":{"oid":"javascript.2.scriptEnabled.common.VIS.VIS_Pihole_Info","visibility-cond":"==","visibility-val":1,"count":"1","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_prepend":"","value0":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole-Skript inaktiv</div>","style0":"background-color: rgba(250,0,0,0.3);","style1":"background-color: rgba(120,120,120,0.3);","test_list":"1","html_append":"","value1":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole Daten</div>","name":"Hintergrund Pi-hole","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"93px","top":"75px","width":"188px","height":"417px","background":"","padding-top":"","z-index":"5","font-size":"18px","color":"rgba(250,250,250,1)","border-radius":"0 20px 0 0px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Load","visibility-cond":"==","visibility-val":1,"name":"Server Load","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0; padding: 10px 0 0 0;\">CPU Load<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"340px","top":"272px","z-index":"21","width":"160px","height":"65px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"","padding-right":"10px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Version.Pihole","visibility-cond":"==","visibility-val":1,"name":"Server Version PiHole","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Pi-hole Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"124px","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":"10px"},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"javascript.2.scriptEnabled.common.VIS.VIS_Pihole_Info","visibility-cond":"==","visibility-val":1,"count":"1","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_prepend":"","value0":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole-Skript inaktiv</div>","style0":"background-color: rgba(250,0,0,0.3);","style1":"background-color: rgba(120,120,120,0.3);","test_list":"1","html_append":"","value1":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Server Daten [Raspberry Pi 3]</div>","name":"Hintergrund Server","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"293px","top":"75px","width":"556px","height":"418px","background":"","padding-top":"","z-index":"5","font-size":"18px","color":"rgba(250,250,250,1)","border-radius":"0 20px 0 0px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/iPad/img/pihole.svg"},"style":{"left":"699px","top":"123px","width":"129px","height":"193px","z-index":"25","opacity":"0.5"},"widgetSet":"basic"},{"tpl":"tplIFrame","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"0","src":"http://192.168.178.38:8082/flot/index.html?relativeEnd=now&range=1440&aggregateType=step&aggregateSpan=300&getNull=true&noBorder=noborder&titleColor=rgba(250%2C250%2C250%2C1)&titleSize=16px&legend=nw&hoverDetail=true&timeFormat=%25H%3A%25M%3A%25S+%25d.%25m.%25y&useComma=false&l%5B0%5D%5Bid%5D=javascript.2.Pi-hole.Speicher&l%5B0%5D%5Binstance%5D=influxdb.0&l%5B0%5D%5Boffset%5D=0&l%5B0%5D%5Bcolor%5D=%23fff400&l%5B0%5D%5Bthickness%5D=2&l%5B0%5D%5Bunit%5D=%25&l%5B0%5D%5Bname%5D=Speicherbelegung&l%5B0%5D%5BchartType%5D=line&l%5B0%5D%5Baggregate%5D=minmax&l%5B0%5D%5BignoreNull%5D=false&l%5B0%5D%5Byaxe%5D=rightColor&l%5B0%5D%5Bshadowsize%5D=0&l%5B0%5D%5BafterComma%5D=0&l%5B0%5D%5Bxaxe%5D=bottom&l%5B0%5D%5Bfill%5D=0.1&l%5B1%5D%5Bid%5D=javascript.2.Pi-hole.Temperatur&l%5B1%5D%5Binstance%5D=influxdb.0&l%5B1%5D%5Boffset%5D=0&l%5B1%5D%5Baggregate%5D=minmax&l%5B1%5D%5Bcolor%5D=%23ff0000&l%5B1%5D%5Bthickness%5D=3&l%5B1%5D%5Bshadowsize%5D=3&l%5B1%5D%5Bunit%5D=%C2%B0C&l%5B1%5D%5Bname%5D=Temperature&l%5B1%5D%5Byaxe%5D=rightColor&l%5B1%5D%5BafterComma%5D=0&l%5B1%5D%5Bxaxe%5D=off&x_labels_color=rgba(250%2C250%2C250%2C1)&y_labels_color=rgba(250%2C250%2C250%2C1)&timeType=relative&zoom=true&noedit=true&animation=300&legBg=rgba(0%2C0%2C0%2C0)&window_bg=rgba(0%2C0%2C0%2C0)&border_color=rgba(250%2C250%2C250%2C0.2)","name":"Diagramm","comment":"","class":"","refreshOnWakeUp":"false","refreshOnViewChange":"false","scrollX":"false","scrollY":"false","seamless":"true","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,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"273px","top":"508px","z-index":"20","width":"715px","height":"236px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Version.FTL","visibility-cond":"==","visibility-val":1,"name":"Server Version FTL","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">FTL Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"198px","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.Version.Interface","visibility-cond":"==","visibility-val":1,"name":"Server Version WebInterface","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Web Interface Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"272px","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":"tplJustgageValueIndicatorColored","data":{"visibility-cond":"==","visibility-val":1,"equalAfter":"0","balance1":"0.8","balance2":"1","gestures-offsetX":0,"gestures-offsetY":0,"visibility-oid":"","oid":"javascript.2.Pi-hole.Speicher","unit":" %","digits":"1","color1":"#00a348","color2":"#f59d00","color3":"#ff0000","html_prepend":"<p style=\"font-size: 48%; color: rgba(250,250,250,1); margin: -3px 0 -1px 0; padding: 5px 0 5px 0;\">Speicherbelegung<br></p>","equal":" &asymp;","up":" &uarr;","down":" &darr;","html_append_singular":"","html_append_plural":"","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,"changeBgColor":false,"fullBri":true,"name":"Server Speichernutzung","visibility-groups-action":"hide","is_tdp":"false","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"min_oid":0,"max_oid":100},"style":{"left":"340px","top":"124px","z-index":"25","width":"160px","height":"65px","text-align":"right","font-size":"25px","border-width":"0px","border-style":"solid","border-color":"rgba(200,200,200,0.2)","color":"rgba(250,250,250,1)","background":"","background-color":"rgba(150,150,150,0.5)","padding":"","padding-right":"10px","padding-bottom":""},"widgetSet":"justgage"},{"tpl":"tplValueLastchange","data":{"oid":"javascript.2.Pi-hole.Temperatur","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"format_date":"DD.MM.YYYY hh:mm:ss","name":"Server Lastchange","html_prepend":"<span style=\"font-size: 80%; color: rgba(250,250,250,1);\">Lastchange </span>","html_append":"<span style=\"font-size: 80%; margin: 0 8px 0 0\">&nbsp; (parsed)</span>"},"style":{"left":"569px","top":"464px","z-index":"25","width":"267px","height":"17px","font-size":"80%","color":"","background-color":"rgba(150,150,150,0.0)","text-align":"right","padding":"","padding-left":"","padding-top":"1px","padding-right":"","margin-right":""},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.aktiv_parse","visibility-cond":"==","visibility-val":1,"name":"Pi-hole Aktiv (parse)","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0; padding: 10px 0 0 0;\">Pi-hole aktiv (parsed)?</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"340px","top":"346px","z-index":"21","width":"160px","height":"65px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"","padding-right":"10px"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.Speicher}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Speicherbelegung"},"style":{"left":"304px","top":"142px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.Load}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe LOAD"},"style":{"left":"304px","top":"291px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.aktiv_parse}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Aktivität"},"style":{"left":"305px","top":"364px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"square","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Temperatur_Farbe}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Temperatur"},"style":{"left":"303px","top":"217px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplJustgageValueIndicatorColored","data":{"visibility-cond":"==","visibility-val":1,"equalAfter":"0","balance1":"0.8","balance2":"1","gestures-offsetX":0,"gestures-offsetY":0,"visibility-oid":"","oid":"javascript.2.Pi-hole.Temperatur","unit":" °C","digits":"1","color1":"#00a348","color2":"#f59d00","color3":"#ff0000","html_prepend":"<p style=\"; font-size: 48%; color: rgba(250,250,250,1); margin: -3px 0 -1px 0; padding: 5px 0 5px 0;\">Temperatur<br></p>","equal":" &asymp;","up":" &uarr;","down":" &darr;","html_append_singular":"","html_append_plural":"","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,"changeBgColor":false,"fullBri":true,"name":"Server Temperatur","visibility-groups-action":"hide","is_tdp":"false","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"comment":""},"style":{"left":"340px","top":"198px","z-index":"25","width":"160px","height":"65px","text-align":"right","font-size":"25px","border-width":"0px","border-style":"solid","border-color":"rgba(200,200,200,0.2)","color":"rgba(250,250,250,1)","background":"","background-color":"rgba(150,150,150,0.5)","padding":"","padding-right":"10px","padding-bottom":""},"widgetSet":"justgage"},{"tpl":"tplMetroTileToggle","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class_true":"bg-violet","bg_class_false":"bg-transparent","icon_class_true":"icon-flag-2","icon_class_false":"icon-cancel","icon_badge_true":"","icon_badge_false":"","badge_bg_class_true":"","badge_bg_class_false":"","brand_bg_class_true":"","brand_bg_class_false":"","select_on_true":true,"label_true":"<span class=\"metro_beschriftung\">Lüfter Anrichte ist an</span>","label_false":"<span class=\"metro_beschriftung\">Lüfter Anrichte ist aus</span>","toggle_oid":"hm-rpc.0.IEQ0007259.1.STATE","name":"Flur Lüfter Anrichte","icon_true":"","icon_false":"","icon_width":"69","icon_height":"68","oid":"hm-rpc.0.KEQ0193137.1.STATE","icon_top":"21","icon_left":"35","badge_top":"0","badge_left":"0","gestures-offsetX":0,"gestures-offsetY":0,"visibility-groups-action":"hide","signals-cond-0":"!=","signals-val-0":"null","signals-icon-0":"/icons Challenger png/Sonstiges/iPad.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":"74","signals-vert-0":"73","signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":"true","signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":"1","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,"comment":"Unterputzaktor Anrichte","signals-oid-1":"","signals-oid-0":"","signals-text-0":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"class":"farbe"},"style":{"left":"117px","top":"535px","width":"137px","height":"137px","font-family":"","z-index":"15","cursor":"pointer"},"widgetSet":"metro"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Update","visibility-cond":"==","visibility-val":1,"name":"Pi-hole Update (parse)","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Pi-hole Update verfügbar?</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"346px","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":"tplHtml","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"true","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Pi-Hole Update verfügbar Anzeige","visibility-oid":"javascript.2.Pi-hole.Update","html":"<div style=\"width: 10px; height: 65px; background-color: red; border-radius: 0 20px 20px 0; float: left;\">\n</div>\n\n<div style=\"font-size: 25px; width: auto; height: 65px; float: left; padding: 9px 0 5px 10px;\">\n    <p style=\"margin: 0; padding: 0 0 0 0; font-size: small; \">Update (ssh):</p>\n    pihole -up\n</div>"},"style":{"left":"681px","top":"346px","z-index":"30","background-color":"","width":"161px","height":"65px","font-family":""},"widgetSet":"basic"}]
                            

                            Gruß
                            Pix

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            unltdnetworxU 1 Antwort Letzte Antwort
                            5
                            • P pix

                              Hier nochmal die Widgets, die ich für die obige View nutze. Die Datenpunkte liegen in javascript.2 und das Bild ist aus der pi-hole-Admin-Seite.

                              [{"tpl":"tplHtml","data":{"g_fixed":true,"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":"System | Pi-hole","name":"Überschrift","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"89px","top":"21px","z-index":"25","width":"auto","height":"30px","font-size":"25px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.aktiv","visibility-cond":"==","visibility-val":1,"name":"Pihole aktiv?","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Ist der pi-hole aktiv?<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"108px","top":"411px","z-index":"21","width":"140px","height":"45px","text-align":"right","background-color":"{a:javascript.2.Pi-hole.aktiv; (a != false) ? \"rgba(150,150,150,0.5)\" : \"rgba(250,20,20,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_blocked","visibility-cond":"==","visibility-val":1,"name":"Anzeige Sonnenuntergang","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Blockierte Werbung (heute)<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"264px","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":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Werbeanteil (heute)<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"338px","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.DNS_queries","visibility-cond":"==","visibility-val":1,"name":"Elevation Anzeige","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">DNS Anfragen (heute)<br></p>","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":"<span class=\"metro_beschriftung\">Hauptschalter<br>Beschattung aktiviert<br><br></span><span style=\"font-size: 80%; font-family: RobotoCondensed-Regular;\">Automatische Erkennung, ob Beschattung notwendig ist</span>","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"192px","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.Domains_blocked","visibility-cond":"==","visibility-val":1,"name":"pi-hole Domains blocked","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Blockierte Domains (heute)<br></p>","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":"<span class=\"metro_beschriftung\">Hauptschalter<br>Beschattung aktiviert<br><br></span><span style=\"font-size: 80%; font-family: RobotoCondensed-Regular;\">Automatische Erkennung, ob Beschattung notwendig ist</span>","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"107px","top":"120px","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":"tplValueListHtml8","data":{"oid":"javascript.2.scriptEnabled.common.VIS.VIS_Pihole_Info","visibility-cond":"==","visibility-val":1,"count":"1","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_prepend":"","value0":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole-Skript inaktiv</div>","style0":"background-color: rgba(250,0,0,0.3);","style1":"background-color: rgba(120,120,120,0.3);","test_list":"1","html_append":"","value1":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole Daten</div>","name":"Hintergrund Pi-hole","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"93px","top":"75px","width":"188px","height":"417px","background":"","padding-top":"","z-index":"5","font-size":"18px","color":"rgba(250,250,250,1)","border-radius":"0 20px 0 0px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Load","visibility-cond":"==","visibility-val":1,"name":"Server Load","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0; padding: 10px 0 0 0;\">CPU Load<br></p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"340px","top":"272px","z-index":"21","width":"160px","height":"65px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"","padding-right":"10px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Version.Pihole","visibility-cond":"==","visibility-val":1,"name":"Server Version PiHole","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Pi-hole Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"124px","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":"10px"},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"javascript.2.scriptEnabled.common.VIS.VIS_Pihole_Info","visibility-cond":"==","visibility-val":1,"count":"1","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_prepend":"","value0":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Pi-hole-Skript inaktiv</div>","style0":"background-color: rgba(250,0,0,0.3);","style1":"background-color: rgba(120,120,120,0.3);","test_list":"1","html_append":"","value1":"<div style=\"float: left; margin: 0; padding: 12px 0 0 13px;\">Server Daten [Raspberry Pi 3]</div>","name":"Hintergrund Server","visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"293px","top":"75px","width":"556px","height":"418px","background":"","padding-top":"","z-index":"5","font-size":"18px","color":"rgba(250,250,250,1)","border-radius":"0 20px 0 0px"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/iPad/img/pihole.svg"},"style":{"left":"699px","top":"123px","width":"129px","height":"193px","z-index":"25","opacity":"0.5"},"widgetSet":"basic"},{"tpl":"tplIFrame","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"0","src":"http://192.168.178.38:8082/flot/index.html?relativeEnd=now&range=1440&aggregateType=step&aggregateSpan=300&getNull=true&noBorder=noborder&titleColor=rgba(250%2C250%2C250%2C1)&titleSize=16px&legend=nw&hoverDetail=true&timeFormat=%25H%3A%25M%3A%25S+%25d.%25m.%25y&useComma=false&l%5B0%5D%5Bid%5D=javascript.2.Pi-hole.Speicher&l%5B0%5D%5Binstance%5D=influxdb.0&l%5B0%5D%5Boffset%5D=0&l%5B0%5D%5Bcolor%5D=%23fff400&l%5B0%5D%5Bthickness%5D=2&l%5B0%5D%5Bunit%5D=%25&l%5B0%5D%5Bname%5D=Speicherbelegung&l%5B0%5D%5BchartType%5D=line&l%5B0%5D%5Baggregate%5D=minmax&l%5B0%5D%5BignoreNull%5D=false&l%5B0%5D%5Byaxe%5D=rightColor&l%5B0%5D%5Bshadowsize%5D=0&l%5B0%5D%5BafterComma%5D=0&l%5B0%5D%5Bxaxe%5D=bottom&l%5B0%5D%5Bfill%5D=0.1&l%5B1%5D%5Bid%5D=javascript.2.Pi-hole.Temperatur&l%5B1%5D%5Binstance%5D=influxdb.0&l%5B1%5D%5Boffset%5D=0&l%5B1%5D%5Baggregate%5D=minmax&l%5B1%5D%5Bcolor%5D=%23ff0000&l%5B1%5D%5Bthickness%5D=3&l%5B1%5D%5Bshadowsize%5D=3&l%5B1%5D%5Bunit%5D=%C2%B0C&l%5B1%5D%5Bname%5D=Temperature&l%5B1%5D%5Byaxe%5D=rightColor&l%5B1%5D%5BafterComma%5D=0&l%5B1%5D%5Bxaxe%5D=off&x_labels_color=rgba(250%2C250%2C250%2C1)&y_labels_color=rgba(250%2C250%2C250%2C1)&timeType=relative&zoom=true&noedit=true&animation=300&legBg=rgba(0%2C0%2C0%2C0)&window_bg=rgba(0%2C0%2C0%2C0)&border_color=rgba(250%2C250%2C250%2C0.2)","name":"Diagramm","comment":"","class":"","refreshOnWakeUp":"false","refreshOnViewChange":"false","scrollX":"false","scrollY":"false","seamless":"true","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,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"273px","top":"508px","z-index":"20","width":"715px","height":"236px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Version.FTL","visibility-cond":"==","visibility-val":1,"name":"Server Version FTL","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">FTL Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"198px","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.Version.Interface","visibility-cond":"==","visibility-val":1,"name":"Server Version WebInterface","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Web Interface Version</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"272px","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":"tplJustgageValueIndicatorColored","data":{"visibility-cond":"==","visibility-val":1,"equalAfter":"0","balance1":"0.8","balance2":"1","gestures-offsetX":0,"gestures-offsetY":0,"visibility-oid":"","oid":"javascript.2.Pi-hole.Speicher","unit":" %","digits":"1","color1":"#00a348","color2":"#f59d00","color3":"#ff0000","html_prepend":"<p style=\"font-size: 48%; color: rgba(250,250,250,1); margin: -3px 0 -1px 0; padding: 5px 0 5px 0;\">Speicherbelegung<br></p>","equal":" &asymp;","up":" &uarr;","down":" &darr;","html_append_singular":"","html_append_plural":"","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,"changeBgColor":false,"fullBri":true,"name":"Server Speichernutzung","visibility-groups-action":"hide","is_tdp":"false","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"min_oid":0,"max_oid":100},"style":{"left":"340px","top":"124px","z-index":"25","width":"160px","height":"65px","text-align":"right","font-size":"25px","border-width":"0px","border-style":"solid","border-color":"rgba(200,200,200,0.2)","color":"rgba(250,250,250,1)","background":"","background-color":"rgba(150,150,150,0.5)","padding":"","padding-right":"10px","padding-bottom":""},"widgetSet":"justgage"},{"tpl":"tplValueLastchange","data":{"oid":"javascript.2.Pi-hole.Temperatur","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"format_date":"DD.MM.YYYY hh:mm:ss","name":"Server Lastchange","html_prepend":"<span style=\"font-size: 80%; color: rgba(250,250,250,1);\">Lastchange </span>","html_append":"<span style=\"font-size: 80%; margin: 0 8px 0 0\">&nbsp; (parsed)</span>"},"style":{"left":"569px","top":"464px","z-index":"25","width":"267px","height":"17px","font-size":"80%","color":"","background-color":"rgba(150,150,150,0.0)","text-align":"right","padding":"","padding-left":"","padding-top":"1px","padding-right":"","margin-right":""},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.aktiv_parse","visibility-cond":"==","visibility-val":1,"name":"Pi-hole Aktiv (parse)","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0; padding: 10px 0 0 0;\">Pi-hole aktiv (parsed)?</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"340px","top":"346px","z-index":"21","width":"160px","height":"65px","text-align":"right","background-color":"rgba(150,150,150,0.5)","color":"rgba(250,250,250,1)","font-size":"25px","font-weight":"","padding":"","padding-right":"10px"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.Speicher}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Speicherbelegung"},"style":{"left":"304px","top":"142px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.Load}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe LOAD"},"style":{"left":"304px","top":"291px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"circle","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Farbe.aktiv_parse}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Aktivität"},"style":{"left":"305px","top":"364px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplShapes","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","svgType":"square","strokeColor":"#FFFFFF","fill":"{javascript.2.Pi-hole.Temperatur_Farbe}","strokeWidth":"5","scaleWidth":"1","scaleHeight":"1","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Farbe Temperatur"},"style":{"left":"303px","top":"217px","z-index":"30","width":"20px","height":"20px","opacity":"0.75"},"widgetSet":"basic"},{"tpl":"tplJustgageValueIndicatorColored","data":{"visibility-cond":"==","visibility-val":1,"equalAfter":"0","balance1":"0.8","balance2":"1","gestures-offsetX":0,"gestures-offsetY":0,"visibility-oid":"","oid":"javascript.2.Pi-hole.Temperatur","unit":" °C","digits":"1","color1":"#00a348","color2":"#f59d00","color3":"#ff0000","html_prepend":"<p style=\"; font-size: 48%; color: rgba(250,250,250,1); margin: -3px 0 -1px 0; padding: 5px 0 5px 0;\">Temperatur<br></p>","equal":" &asymp;","up":" &uarr;","down":" &darr;","html_append_singular":"","html_append_plural":"","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,"changeBgColor":false,"fullBri":true,"name":"Server Temperatur","visibility-groups-action":"hide","is_tdp":"false","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"comment":""},"style":{"left":"340px","top":"198px","z-index":"25","width":"160px","height":"65px","text-align":"right","font-size":"25px","border-width":"0px","border-style":"solid","border-color":"rgba(200,200,200,0.2)","color":"rgba(250,250,250,1)","background":"","background-color":"rgba(150,150,150,0.5)","padding":"","padding-right":"10px","padding-bottom":""},"widgetSet":"justgage"},{"tpl":"tplMetroTileToggle","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class_true":"bg-violet","bg_class_false":"bg-transparent","icon_class_true":"icon-flag-2","icon_class_false":"icon-cancel","icon_badge_true":"","icon_badge_false":"","badge_bg_class_true":"","badge_bg_class_false":"","brand_bg_class_true":"","brand_bg_class_false":"","select_on_true":true,"label_true":"<span class=\"metro_beschriftung\">Lüfter Anrichte ist an</span>","label_false":"<span class=\"metro_beschriftung\">Lüfter Anrichte ist aus</span>","toggle_oid":"hm-rpc.0.IEQ0007259.1.STATE","name":"Flur Lüfter Anrichte","icon_true":"","icon_false":"","icon_width":"69","icon_height":"68","oid":"hm-rpc.0.KEQ0193137.1.STATE","icon_top":"21","icon_left":"35","badge_top":"0","badge_left":"0","gestures-offsetX":0,"gestures-offsetY":0,"visibility-groups-action":"hide","signals-cond-0":"!=","signals-val-0":"null","signals-icon-0":"/icons Challenger png/Sonstiges/iPad.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":"74","signals-vert-0":"73","signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":"true","signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":"1","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,"comment":"Unterputzaktor Anrichte","signals-oid-1":"","signals-oid-0":"","signals-text-0":"","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"class":"farbe"},"style":{"left":"117px","top":"535px","width":"137px","height":"137px","font-family":"","z-index":"15","cursor":"pointer"},"widgetSet":"metro"},{"tpl":"tplValueString","data":{"oid":"javascript.2.Pi-hole.Update","visibility-cond":"==","visibility-val":1,"name":"Pi-hole Update (parse)","html_prepend":"<p style=\"font-size: 48%; margin: 0 0 2px 0\">Pi-hole Update verfügbar?</p>","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","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"518px","top":"346px","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":"tplHtml","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"true","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Pi-Hole Update verfügbar Anzeige","visibility-oid":"javascript.2.Pi-hole.Update","html":"<div style=\"width: 10px; height: 65px; background-color: red; border-radius: 0 20px 20px 0; float: left;\">\n</div>\n\n<div style=\"font-size: 25px; width: auto; height: 65px; float: left; padding: 9px 0 5px 10px;\">\n    <p style=\"margin: 0; padding: 0 0 0 0; font-size: small; \">Update (ssh):</p>\n    pihole -up\n</div>"},"style":{"left":"681px","top":"346px","z-index":"30","background-color":"","width":"161px","height":"65px","font-family":""},"widgetSet":"basic"}]
                              

                              Gruß
                              Pix

                              unltdnetworxU Offline
                              unltdnetworxU Offline
                              unltdnetworx
                              Developer
                              schrieb am zuletzt editiert von
                              #70

                              @pix
                              Danke fürs Zurverfügungstellen. Wollte eigentlich das parsen vermeiden, aber versuche es dann bri Gelegenheit einzubauen. Momentan bin ich noch an dem Wunsch einer Verbindung mittels SSL dran.

                              Gruß, Michael
                              Weitere Infos im Profil.
                              Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                              1 Antwort Letzte Antwort
                              0
                              • unltdnetworxU Offline
                                unltdnetworxU Offline
                                unltdnetworx
                                Developer
                                schrieb am zuletzt editiert von
                                #71

                                Es gibt auf Github und in Kürze auch im latest-Repo eine Version 1.1.0. Damit wird jetzt eine https-Verbindung zu pi-hole unterstützt, falls noch jemand Bedarf dafür hat.

                                Gruß, Michael
                                Weitere Infos im Profil.
                                Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                                1 Antwort Letzte Antwort
                                0
                                • P pix

                                  Hallo,

                                  habe heute den Adapter installiert und bin sehr zufrieden. Tolle Arbeit.
                                  Bis nutze ich eine Skript:

                                  /* Pi-hole
                                  pi-hole JSON Leser und Statusseiten Parser
                                  InfluxDB Vorbereitung
                                  
                                  23.04.2017 von Pix erstellt
                                  28.05.2017 var tabelle umgestellt
                                  31.05.2017 forceCreation und common/influx
                                  11.02.2018 Parse Temperatur, LOAD, Mem, Aktivitität; jeweils mit Farbe
                                             Code optimiert
                                             Ablauf optimiert
                                  26.02.2018 Update der Serversoftware wird abgefragt
                                  01.03.2018 Muster zur Temperaturerkennung optimiert
                                             
                                  todo: Reaktionen mit Optin und telegram bei Serverausfall, Temperatur zu hoch, etc.           
                                             
                                  */
                                  
                                  const fC = false; // forceCreation
                                  const logging = false;
                                  const pfad = ".Pi-hole.";
                                  const zeitplan = "*/5 * * * *"; // alle 5 Minuten
                                  const zeitplan_parse = "*/1 * * * *"; // minütlich
                                  const ip_pihole = "192.168.XXX.XXX"; // IP eintragen
                                  
                                  
                                  // #############################################################################
                                  // ab hier nix mehr ändern
                                  
                                  const url = "http://" + ip_pihole + "/admin/api.php";
                                  const url_parse = "http://" + ip_pihole + "/admin/index.php";
                                  
                                  // Instanz des Javascript-Adapters ermitteln
                                  var instanz = "javascript." + instance;
                                  if (logging) log(instanz);
                                  
                                  // ID definieren
                                  const 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",
                                        idTemp             = instanz + pfad + "Temperatur",
                                        idTempFarbe        = instanz + pfad + "Farbe.Temperatur",
                                        idMemory           = instanz + pfad + "Speicher",
                                        idMemoryFarbe      = instanz + pfad + "Farbe.Speicher",
                                        idVersionFTL       = instanz + pfad + "Version.FTL",
                                        idVersionPihole    = instanz + pfad + "Version.Pihole",
                                        idVersionInterface = instanz + pfad + "Version.Interface",
                                        idLoad             = instanz + pfad + "Load",
                                        idLoadFarbe        = instanz + pfad + "Farbe.Load",
                                        idAktiv            = instanz + pfad + "aktiv_parse",
                                        idAktivFarbe       = instanz + pfad + "Farbe.aktiv_parse",
                                        idTabelle          = instanz + pfad + "Tabelle",
                                        idUpdate           = instanz + pfad + "Update";
                                  
                                  // States erstellen
                                  createState(idJSON, "", fC, {
                                      name: "JSON Datei vom Pi-hole Server",
                                      desc: "Kopie der JSON Datei",
                                      type: "string",
                                      read: true,
                                      write: true,
                                      role: "json",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": false,
                                              "changesOnly": false,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idDomains, 0, fC, {
                                      name: "Pi-hole Domains blocked today", 
                                      desc: "Heute blockierte Domains (API)",
                                      type: "number", 
                                      def:  0,
                                      read: true,
                                      write: true,
                                      role: "value",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idDNSQueries, 0, fC, {
                                      name: "Pi-hole DNS Queries today", 
                                      desc: "Heutige DOmain Name Server Anfragen (API)",
                                      type: "number", 
                                      def:  0,
                                      read: true,
                                      write: true,
                                      role: "value",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idAdsBlocked, 0, fC, {
                                      name: "Pi-hole Ads blocked today", 
                                      desc: "Heute blockierte Werbungen (API)",
                                      type: "number", 
                                      def:  0,
                                      read: true,
                                      write: true,
                                      role: "value",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idAdsPercentage, 0, fC, {
                                      name: "Pi-hole Ads percentage today", 
                                      desc: "Anteil heute blockierter Werbungen an allen Werbungen (API)", // weiß nicht, ob das korrekt übersetzt ist
                                      type: "number", 
                                      def:  0,
                                      read: true,
                                      write: true,
                                      min: 0,
                                      max: 100,
                                      role: "value",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 63072000 // 2 Jahre
                                          }
                                      }
                                  });
                                  createState(idActive, false, fC, {
                                      name: "Ist der Pi-hole Server aktiv?", 
                                      desc: "Liefert das Webinterface pi.hole/admin/api.php Daten? (API)",
                                      type: "boolean", 
                                      read: true,
                                      write: true,
                                      role: "indicator",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": false,
                                              "changesOnly": false,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idAktiv, false, fC, {
                                      name: "Ist der Pi-hole Server aktiv?", 
                                      desc: "Läuft der Server (Webseite)",
                                      type: "boolean", 
                                      read: true,
                                      write: true,
                                      role: "indicator",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": false,
                                              "changesOnly": false,
                                              "debounce": "",
                                              "retention": 657000 // 1 Monat
                                          }
                                      }
                                  });
                                  createState(idAktivFarbe, "#FFFFFFF", fC, {
                                      name: "Pi-hole Aktivität HEX-Farbwert", 
                                      desc: "Indikator Farbwert Aktivität des Pi-Hole Servers (Webseite)",
                                      type: "string",
                                      def:  "#FFFFFF",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idLoad, "0", fC, {
                                      name: "Pi-hole CPU Load", 
                                      desc: "CPU Belastung (Load) des Pi-Hole Servers (Webseite)",
                                      type: "string",
                                      def:  "0",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idLoadFarbe, "#FFFFFFF", fC, {
                                      name: "Pi-hole Load HEX-Farbwert", 
                                      desc: "Indikator Farbwert LOAD des Pi-Hole Servers (Webseite)",
                                      type: "string",
                                      def:  "#FFFFFF",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idTemp, 0, fC, {
                                      name: "Pi-hole Temperatur", 
                                      desc: "Wärmeentwicklung des Pi-Hole Servers (Webseite)",
                                      type: "number",
                                      unit: "°C",
                                      def:  0,
                                      read: true,
                                      write: true,
                                      role: "value.temperature",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 63072000 // 2 Jahre
                                          }
                                      }
                                  });
                                  createState(idTempFarbe, "#FFFFFFF", fC, {
                                      name: "Pi-hole Temperatur HEX-Farbwert", 
                                      desc: "Indikator Farbwert des Pi-Hole Servers (Webseite)",
                                      type: "string",
                                      def:  "#FFFFFF",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idVersionPihole, "", fC, {
                                      name: "Pi-hole Version", 
                                      desc: "Software Version Pi-hole (Webseite)",
                                      type: "string",
                                      def:  "",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idVersionFTL, "", fC, {
                                      name: "FTL Version", 
                                      desc: "Software Version FTL (Webseite)",
                                      type: "string",
                                      def:  "",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idVersionInterface, "", fC, {
                                      name: "Web Interface Version", 
                                      desc: "Software Version Web Interface (Webseite)",
                                      type: "string",
                                      def:  "",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idMemory, 0, fC, {
                                      name: "Pi-hole Speichernutzung", 
                                      desc: "von Pi-Hole belegter Hauptspeicher (Webseite)",
                                      type: "number",
                                      unit: "%",
                                      def:  0,
                                      read: true,
                                      write: true,
                                      min: 0,
                                      max: 100,
                                      role: "value",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": true,
                                              "changesOnly": true,
                                              "debounce": "",
                                              "retention": 63072000 // 2 Jahre
                                          }
                                      }
                                  });
                                  createState(idMemoryFarbe, "#FFFFFFF", fC, {
                                      name: "Pi-hole Speichernutzung HEX-Farbwert", 
                                      desc: "Indikator Farbwert Speichernutzung des Pi-Hole Servers (Webseite)",
                                      type: "string",
                                      def:  "#FFFFFF",
                                      read: true,
                                      write: true,
                                      role: "text"
                                  });
                                  createState(idTabelle, "", true, {
                                      name: "Pi-hole HTML Tabelle",
                                      desc: "HMTL Tabelle mit den Daten der JSON-Datei",
                                      type: "string",
                                      read: true,
                                      write: true,
                                      role: "html",
                                      custom: {
                                          "influxdb.0": {
                                              "enabled": false,
                                              "changesOnly": false,
                                              "debounce": "",
                                              "retention": 63072000 // 2 Jahre
                                          }
                                      }
                                  });
                                  createState(idUpdate, false, fC, {
                                      name: "Ist ein Pi-hole Softwareupdate möglich?", 
                                      desc: "Gibt es eine neue Version der Serversoftware? (Webseite)",
                                      type: "boolean", 
                                      read: true,
                                      write: true,
                                      role: "indicator"
                                  });
                                   
                                  
                                  var request = require("request");
                                  
                                  function parseWebsite() { // für Version 3.3
                                      var options = {
                                          url: url_parse,
                                          headers: {
                                              'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
                                          }
                                      }; 
                                      try {
                                          request(options, function (error, response, body) {
                                              if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                                                  // Temperatur Zahl
                                                  const temp_pattern = /\d{1,2}\.?\d*(?=&nbsp;&deg;C)/;
                                                  if (body.match(temp_pattern) === null) log('gesuchter Quellcode (Temperatur Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var temp_arr =  body.match(temp_pattern);
                                                      var temp = parseFloat(temp_arr[0]);
                                                      if (logging) log("Temperatur: " + temp + "°C");
                                                      setState(idTemp, temp);        
                                                  }
                                                  // Temperatur Farbe String
                                                  const tempfarbe_pattern = /.{7}(?="><\/i> Temp)/;
                                                  if (body.match(tempfarbe_pattern) === null) log('gesuchter Quellcode (Temperatur Farbe Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var tempfarbe_arr =  body.match(tempfarbe_pattern);
                                                      if (logging) log("Temperatur-Farbe (HEX-Wert): " + tempfarbe_arr[0]);
                                                      setState(idTempFarbe, tempfarbe_arr[0]);        
                                                  }
                                                  // Speicherbelegung Zahl
                                                  const mem_pattern = /\d{1,2}\.\d{1}(?=&thinsp;%<\/a>)/;
                                                  if (body.match(mem_pattern) === null) log('gesuchter Quellcode (Speicherbelegung Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var mem_arr =  body.match(mem_pattern);
                                                      var mem = parseFloat(mem_arr[0]);
                                                      if (logging) log("Speicherbelegung: " + mem + "%");
                                                      setState(idMemory, mem);        
                                                  }
                                                  // Farbe Speicherbelegung String / HEX-Wert
                                                  const memfarbe_pattern = /.{7}(?="><\/i> Memory)/;
                                                  if (body.match(memfarbe_pattern) === null) log('gesuchter Quellcode (Farbe Speicherbelegung Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var memfarbe_arr =  body.match(memfarbe_pattern);
                                                      if (logging) log("Speicherbelegung Farbe: " + memfarbe_arr[0]);
                                                      setState(idMemoryFarbe, memfarbe_arr[0]);        
                                                  }
                                                  // LOAD String zB 0 0 0 oder 10.4 1.45 0
                                                  const load_pattern = /Load:&nbsp;&nbsp;(\d*|\d*\.\d*)&nbsp;&nbsp;(\d*|\d*\.\d*)&nbsp;&nbsp;(\d*|\d*\.\d*)/;
                                                  if (body.match(load_pattern) === null) log('gesuchter Quellcode (LOAD Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var load_arr =  body.match(load_pattern);
                                                      var load0 = load_arr[0].replace(/Load:/i,"");
                                                      var load = load0.replace(/&nbsp;/g,"  ");
                                                      if (logging) log("CPU LOAD Server: " + load);
                                                      setState(idLoad, load);        
                                                  }
                                                  // Farbe LOAD String / HEX-Wert
                                                  const loadfarbe_pattern = /.{7}(?="><\/i>.*Load:)/;
                                                  if (body.match(loadfarbe_pattern) === null) log('gesuchter Quellcode (Farbe LOAD Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var loadfarbe_arr =  body.match(loadfarbe_pattern);
                                                      if (logging) log("LOAD Farbe: " + loadfarbe_arr[0]);
                                                      setState(idLoadFarbe, loadfarbe_arr[0]);        
                                                  }
                                                  // Version Pihole zB 3.2.1 String
                                                  const versionpi_pattern = /<b>Pi-hole Version \s*<\/b>\s*v\d*(\.\d*)*\.\d*/; // x.x.x oder x.x
                                                  if (body.match(versionpi_pattern) === null) log('gesuchter Quellcode (Pi-Hole Version) nicht gefunden', 'error');
                                                  else {
                                                      var versionpi_arr =  body.match(versionpi_pattern);
                                                      var versionpi = versionpi_arr[0].replace(/<b>Pi-hole Version <\/b> v/,"");
                                                      if (logging) log("Version Pihole Server: " + versionpi);
                                                      setState(idVersionPihole, versionpi);        
                                                  }
                                                  // Version FTL zB 3.2.1 String
                                                  const versionftl_pattern = /<b>FTL Version.*v\d*(\.\d*)*\.\d*/;
                                                  if (body.match(versionftl_pattern) === null) log('gesuchter Quellcode (FTL Version) nicht gefunden', 'error');
                                                  else {
                                                      var versionftl_arr =  body.match(versionftl_pattern);
                                                      var versionftl = versionftl_arr[0].replace(/<b>FTL Version.*v/,"");
                                                      if (logging) log("FTL Version Pihole Server: " + versionftl);
                                                      setState(idVersionFTL, versionftl);        
                                                  }
                                                  // Version Web Interface zB 3.2.1 String
                                                  const versioninterface_pattern = /<b>Web Interface Version.*<\/b>v\d*(\.\d*)*\.\d*/;
                                                  if (body.match(versioninterface_pattern) === null) log('gesuchter Quellcode (Web Interface Version) nicht gefunden', 'error');
                                                  else {
                                                      var versioninterface_arr =  body.match(versioninterface_pattern);
                                                      var versioninterface = versioninterface_arr[0].replace(/<b>Web Interface Version.*<\/b>v/,"");
                                                      if (logging) log("Web Interface Version Pihole Server: " + versioninterface);
                                                      setState(idVersionInterface, versioninterface);        
                                                  }
                                                  // Aktiv zB true/false boolean holt das aus String
                                                  const aktiv_pattern = /i>.*(?=<\/a><a id="temperature">)/;
                                                  if (body.match(aktiv_pattern) === null) log('gesuchter Quellcode (Pi-hole aktiv) nicht gefunden', 'error');
                                                  else {
                                                      var aktiv_arr =  body.match(aktiv_pattern);
                                                      var aktiv = aktiv_arr[0].replace(/i>\s*/,"");
                                                      var aktiv_bool = (aktiv === "Active") ? true : false;
                                                      if (logging) log("Pihole Server aktiv? " + aktiv + "(" + aktiv_bool + ")");
                                                      setState(idAktiv, aktiv_bool);     
                                                  }
                                                  // Farbe Aktiv String / HEX-Wert
                                                  const aktivfarbe_pattern = /.{7}(?="><\/i.*<\/a><a id="temperature">)/;
                                                  if (body.match(aktivfarbe_pattern) === null) log('gesuchter Quellcode (Farbe Aktivität Pi-Hole) nicht gefunden', 'error');
                                                  else {
                                                      var aktivfarbe_arr =  body.match(aktivfarbe_pattern);
                                                      if (logging) log("Aktivität Farbe: " + aktivfarbe_arr[0]);
                                                      setState(idAktivFarbe, aktivfarbe_arr[0]);        
                                                  }
                                                  // Update available
                                                  const update_pattern = /Update available!/;
                                                  if (body.match(update_pattern) === null) setState(idUpdate, false); //log('gesuchter Quellcode (Update Warnung) nicht gefunden', 'error');
                                                  else {
                                                      var update_arr =  body.match(update_pattern);
                                                      var update = update_arr[0];
                                                      var update_bool = update === ("Update available!") ? true : false;
                                                      if (logging) log("Pihole Softwareupdate möglich? (" + update_bool + ")");
                                                      setState(idUpdate, update_bool);          
                                                  }
                                              } else {
                                                  log("StatusCode = " + response.statusCode);
                                                  log(error, 'error');                               // Error beim Einlesen
                                              }
                                          });
                                      } catch (e) {
                                          log('Fehler (try) leseWebseite (Pi-Hole Index.html): ' + e, 'error');
                                      }
                                      if (logging) log('Pi-Hole Webseite eingelesen, Temperatur und Speicherbelegung gespeichert');
                                  }
                                  
                                  
                                  function readPihole() {
                                      if (logging) log("Pi-hole: URL " + url + " wird abgefragt ...");
                                      var tabelle ="<table class='pihole_tabelle'><caption>Pi-hole</caption><thead><tr><th>Admin Service: " + url + "</th></tr></thead><tbody>";
                                      request(url, function (error, response, body) {
                                          if (!error && response.statusCode == 200) {
                                              var result;
                                              var dnsblocked,
                                                  dnsqueries,
                                                  adsblocked,
                                                  adspercentage; 
                                              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);
                                                  
                                                  if (result) { // CHECK
                                                  
                                                      setState(idActive, true);
                                                      if (logging) log("Pi-hole liefert Daten und ist aktiv");
                                                      // http://forum.iobroker.net/viewtopic.php?f=24&t=6053&sid=65e9ec9396fe557147e535c5a4631982#p68823
                                                      dnsblocked = (result.domains_being_blocked)/*.replace(/,/, "")*/;
                                                      dnsqueries = (result.dns_queries_today)/*.replace(/,/, "")*/;
                                                      adsblocked = result.ads_blocked_today;
                                                      adspercentage = result.ads_percentage_today;
                                                      
                                                      if ( isNaN(parseFloat(adspercentage)) === false ) {
                                                          setState(idAdsPercentage, parseFloat(adspercentage));
                                                      } else setState(idAdsPercentage, 100);
                                                      setState(idDomains, parseFloat(dnsblocked));
                                                      setState(idDNSQueries, parseFloat(dnsqueries));
                                                      setState(idAdsBlocked, parseFloat(adsblocked));
                                                  
                                                      // Eintrag anfügen
                                                      tabelle += "<tr><td class='pihole_label'>Anzahl blockierter Domains:</td>"
                                                              +  "<td class='pihole_data'>" + dnsblocked + "</td></tr>"
                                                              
                                                              +  "<tr><td class='pihole_label'>DNS-Abfragen (heute):</td>"
                                                              +  "<td class='pihole_data'>" + dnsqueries + "</td></tr>"
                                                          
                                                              +  "<tr><td class='pihole_label'>Blockierte Werbung (heute):</td>"
                                                              +  "<td class='pihole_data'>" + adsblocked + "</td></tr>"
                                                          
                                                              +  "<tr><td class='pihole_label'>Werbeanteil (heute in Prozent):</td>"
                                                              +  "<td class='pihole_data'>" + adspercentage + "</td></tr>";
                                                  } else tabelle += "<tr><td class='pihole_data'>Pi-hole nicht gefunden!</td></tr>";
                                                  // Ende Teil,d er aus dem Try raus kann
                                              } catch (fehler_try) {
                                                  log("Pi-hole - Parse Fehler: " + fehler_try, "error");
                                              }    
                                          } else {
                                              log("Pi-hole - Fehler: " + error, "warn");
                                          }
                                          tabelle += "</tbody></table>";  
                                          setState(idTabelle, tabelle);                     
                                          if (logging) log("HTML-Tabelle: " + tabelle);
                                      });   // Ende request 
                                  }
                                  
                                  function main() {
                                      readPihole();
                                      setTimeout(parseWebsite, 3000); // verzögertes Parsen
                                  }
                                  schedule(zeitplan_parse, parseWebsite);
                                  schedule(zeitplan, readPihole);
                                  setTimeout(main, 500);
                                  

                                  Bildschirmfoto 2019-06-25 um 14.48.06.jpg

                                  Bildschirmfoto 2019-06-25 um 14.46.51.jpg

                                  @SBorg sagte in [Aufruf] Neuer Adapter ioBroker.pi-hole:

                                  Danke und schade.
                                  Ich frage nur mal (sonst schreibe ich mir bei Gelegenheit ein kleines Bash-Skript dafür) wie es bei dir mit parsen von Webseiten aussieht, bzw. ob du es dir später vorstellen kannst.
                                  PI_Hole-IP/admin/index.php:
                                  Nach <!-- Version Infos --> oder <div class="pull-right hidden-xs hidden-sm"> kommen die Versions-Infos. Die könnte man speichern oder einfach nach Update (denke ich, bei mir steht gerade keins an) durchsuchen.

                                  @unltdnetworx Im Skript wird auch geparst, damit ich eine Warnung in VIS ausgeben kann, wenn ein Update ansteht. Kannst du für den Adapter gern kopieren.

                                  unltdnetworxU Offline
                                  unltdnetworxU Offline
                                  unltdnetworx
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #72

                                  @pix
                                  Weitere Neuerung in Version 1.2.0 auf Github. Update-Check sollte implementiert sein. Ich habe "leider" kein offenes Update, um es zu testen. Aber der neu erstellte Datenpunkt wird zumindest auf false gesetzt.

                                  Rückmeldungen wäre gerne gesehen.

                                  Gruß, Michael
                                  Weitere Infos im Profil.
                                  Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                                  P 1 Antwort Letzte Antwort
                                  3
                                  • SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von SBorg
                                    #73

                                    Na dann hoffen wir mal auf ein baldiges Update von PI-Hole^^

                                    LG SBorg ( SBorg auf GitHub)
                                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                    1 Antwort Letzte Antwort
                                    0
                                    • unltdnetworxU Offline
                                      unltdnetworxU Offline
                                      unltdnetworx
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #74

                                      Aufgrund des Updates über Github muss der Adapter nach dem Update mittels des Pfeiles nach oben "hochgeladen" werden. Der Pfeil ist in der erweiterten Ansicht in der Adapterübersicht hinter dem pi-hole-Adapter zu finden.

                                      Ansonsten wird in den Einstellungen der Text "Update available!" der gefunden werden muss, falls ein Update verfügbar ist, nicht eingetragen.

                                      Gruß, Michael
                                      Weitere Infos im Profil.
                                      Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        steimi
                                        schrieb am zuletzt editiert von
                                        #75

                                        Danke, werde ich testen.
                                        Kleiner "Schönheitsfehler" - updatePiholeAvailable statt updatePiHoleAvailable (gleiche Schreibweise bei den DPs)

                                        1 Antwort Letzte Antwort
                                        0
                                        • NashraN Offline
                                          NashraN Offline
                                          Nashra
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von
                                          #76

                                          Hallo @pix
                                          Danke für die Bereitstellung der Widgets und des Skripts :+1:

                                          Gruß Ralf
                                          Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          495

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe