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. Skripten / Logik
  4. Blockly
  5. HttpPost Block korrekt aufbauen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    864

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

HttpPost Block korrekt aufbauen

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 2 Kommentatoren 73 Aufrufe 2 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.
  • David G.D David G.

    Danke, werde ich testen.
    So eine Post Anfrage ist ja nichts ungewöhnliches.
    Auch wenn ich mittlerweile zu einem Shell Script gewechselt bin, da es für einen Aufruf zu viel wurde.

    Da mache ich jetzt auch ein Topic zu auf ^^.

    CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von
    #4

    @David-G. sagte in HttpPost Block korrekt aufbauen:

    Auch wenn ich mittlerweile zu einem Shell Script gewechselt bin, da es für einen Aufruf zu viel wurde.

    Das kann man prima in eine JS-Funktion packen und die dann im Blockly aufrufen.

    Was willst Du denn damit machen?
    Du liest Werte aus Zabbix. Warum nicht andersrum? Werte kann man auch aus Zabbix an ioBroker senden.
    Wenn die Werte in Zabbix erhoben werden, wäre dieser Weg logischer.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    1 Antwort Letzte Antwort
    0
    • David G.D Online
      David G.D Online
      David G.
      schrieb am zuletzt editiert von David G.
      #5

      Was ich mit den Daten machen möchte weiß ich noch nicht genau.
      Erstmal in den iobroker bekommen.
      Werden vermutlich in die Visu landen.

      Die json aus meinem Befehl hab ich noch erweitert.
      Im Moment die avg Werte der cpu.

      Wenn ich das result im iobroker habe, mal sehen wie ich die DPs ordentlich anlege.

      #!/bin/bash
      
      ZABBIX_URL="http://192.168.99.199/zabbix/api_jsonrpc.php"
      TOKEN="abc"
      
      # Hosts abrufen (nur aktive Hosts)
      hosts_json=$(curl -s -X POST "$ZABBIX_URL" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $TOKEN" \
        -d '{
              "jsonrpc":"2.0",
              "method":"host.get",
              "params":{
                  "output":["hostid","host"],
                  "filter":{"status":0}
              },
              "id":1
            }')
      
      curl -s -X POST "$ZABBIX_URL" \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $TOKEN" \
        -d '{
              "jsonrpc":"2.0",
              "method":"item.get",
              "params":{
                "output":["hostid","name","key_","lastvalue","units","value_type"],
                "filter":{
                  "key_":[
                    "system.cpu.load[all,avg1]",
                    "system.cpu.load[all,avg5]",
                    "system.cpu.load[all,avg15]"
                  ]
                }
              },
              "id":1
            }' \
      | jq --argjson hosts "$hosts_json" '
        ($hosts.result | map({(.hostid): .host}) | add) as $hostnames
        | .result
        | group_by(.hostid)
        | map(select($hostnames[.[0].hostid] != null)       
            | {
                ($hostnames[.[0].hostid]): (
                  map({
                    (.name): {
                      value: .lastvalue,
                      unit: .units,
                      value_type: (if .value_type=="0" or .value_type=="3" then "number"
                                   elif .value_type=="1" then "string" else "unknown" end)
                    }
                  }) | add
                )
              }
          )
        | add
      ' > zabbix.json
      

      Ergibt

      {
        "Zabbix server": {
          "Load average (1m avg)": {
            "value": "0.897461",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.961426",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "1.078125",
            "unit": "",
            "value_type": "number"
          }
        },
        "Taiscale": {
          "Load average (1m avg)": {
            "value": "0.70459",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.916504",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "1.06543",
            "unit": "",
            "value_type": "number"
          }
        },
        "MariaDB": {
          "Load average (1m avg)": {
            "value": "0.976074",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.961426",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "1.083984",
            "unit": "",
            "value_type": "number"
          }
        },
        "Proxmox_Home": {
          "Load average (1m avg)": {
            "value": "0.805664",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.993652",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "1.090332",
            "unit": "",
            "value_type": "number"
          }
        },
        "PBS": {
          "Load average (1m avg)": {
            "value": "0.033691",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.05957",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "0.077637",
            "unit": "",
            "value_type": "number"
          }
        },
        "Docker": {
          "Load average (1m avg)": {
            "value": "0.131836",
            "unit": "",
            "value_type": "number"
          },
          "Load average (5m avg)": {
            "value": "0.342285",
            "unit": "",
            "value_type": "number"
          },
          "Load average (15m avg)": {
            "value": "0.470703",
            "unit": "",
            "value_type": "number"
          }
        }
      }
      
      

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      CodierknechtC 1 Antwort Letzte Antwort
      0
      • David G.D David G.

        Was ich mit den Daten machen möchte weiß ich noch nicht genau.
        Erstmal in den iobroker bekommen.
        Werden vermutlich in die Visu landen.

        Die json aus meinem Befehl hab ich noch erweitert.
        Im Moment die avg Werte der cpu.

        Wenn ich das result im iobroker habe, mal sehen wie ich die DPs ordentlich anlege.

        #!/bin/bash
        
        ZABBIX_URL="http://192.168.99.199/zabbix/api_jsonrpc.php"
        TOKEN="abc"
        
        # Hosts abrufen (nur aktive Hosts)
        hosts_json=$(curl -s -X POST "$ZABBIX_URL" \
          -H "Content-Type: application/json" \
          -H "Authorization: Bearer $TOKEN" \
          -d '{
                "jsonrpc":"2.0",
                "method":"host.get",
                "params":{
                    "output":["hostid","host"],
                    "filter":{"status":0}
                },
                "id":1
              }')
        
        curl -s -X POST "$ZABBIX_URL" \
          -H "Content-Type: application/json" \
          -H "Authorization: Bearer $TOKEN" \
          -d '{
                "jsonrpc":"2.0",
                "method":"item.get",
                "params":{
                  "output":["hostid","name","key_","lastvalue","units","value_type"],
                  "filter":{
                    "key_":[
                      "system.cpu.load[all,avg1]",
                      "system.cpu.load[all,avg5]",
                      "system.cpu.load[all,avg15]"
                    ]
                  }
                },
                "id":1
              }' \
        | jq --argjson hosts "$hosts_json" '
          ($hosts.result | map({(.hostid): .host}) | add) as $hostnames
          | .result
          | group_by(.hostid)
          | map(select($hostnames[.[0].hostid] != null)       
              | {
                  ($hostnames[.[0].hostid]): (
                    map({
                      (.name): {
                        value: .lastvalue,
                        unit: .units,
                        value_type: (if .value_type=="0" or .value_type=="3" then "number"
                                     elif .value_type=="1" then "string" else "unknown" end)
                      }
                    }) | add
                  )
                }
            )
          | add
        ' > zabbix.json
        

        Ergibt

        {
          "Zabbix server": {
            "Load average (1m avg)": {
              "value": "0.897461",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.961426",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "1.078125",
              "unit": "",
              "value_type": "number"
            }
          },
          "Taiscale": {
            "Load average (1m avg)": {
              "value": "0.70459",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.916504",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "1.06543",
              "unit": "",
              "value_type": "number"
            }
          },
          "MariaDB": {
            "Load average (1m avg)": {
              "value": "0.976074",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.961426",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "1.083984",
              "unit": "",
              "value_type": "number"
            }
          },
          "Proxmox_Home": {
            "Load average (1m avg)": {
              "value": "0.805664",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.993652",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "1.090332",
              "unit": "",
              "value_type": "number"
            }
          },
          "PBS": {
            "Load average (1m avg)": {
              "value": "0.033691",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.05957",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "0.077637",
              "unit": "",
              "value_type": "number"
            }
          },
          "Docker": {
            "Load average (1m avg)": {
              "value": "0.131836",
              "unit": "",
              "value_type": "number"
            },
            "Load average (5m avg)": {
              "value": "0.342285",
              "unit": "",
              "value_type": "number"
            },
            "Load average (15m avg)": {
              "value": "0.470703",
              "unit": "",
              "value_type": "number"
            }
          }
        }
        
        
        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #6

        @David-G. sagte in HttpPost Block korrekt aufbauen:

        Was ich mit den Daten machen möchte weiß ich noch nicht genau.

        Welche Daten willst Du denn im ioBroker haben?
        Dein API-Aufruf liefert alle Hosts mit allen Items.
        Willst Du da einzelne Werte visualisieren? Dann würde es ja Sinn machen, nur diese (und zwar nur bei Änderung) an ioBroker zu übertragen. Sonst müsste man ja in ioBroker zyklisch (alle x Sekunden?) lesen ... sowas ist in der Regel ziemlicher Käse.
        Man könnte z.B. in Zabbix einen Trigger auf "Change" setzen und den Wert dann per Trigger-Action übertragen.
        Oder auch ohne Trigger. Im Preprocessing ein Script aufrufen und den Wert an ioBroker senden.
        Da gibt's viele mögliche Wege.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        David G.D 1 Antwort Letzte Antwort
        0
        • CodierknechtC Codierknecht

          @David-G. sagte in HttpPost Block korrekt aufbauen:

          Was ich mit den Daten machen möchte weiß ich noch nicht genau.

          Welche Daten willst Du denn im ioBroker haben?
          Dein API-Aufruf liefert alle Hosts mit allen Items.
          Willst Du da einzelne Werte visualisieren? Dann würde es ja Sinn machen, nur diese (und zwar nur bei Änderung) an ioBroker zu übertragen. Sonst müsste man ja in ioBroker zyklisch (alle x Sekunden?) lesen ... sowas ist in der Regel ziemlicher Käse.
          Man könnte z.B. in Zabbix einen Trigger auf "Change" setzen und den Wert dann per Trigger-Action übertragen.
          Oder auch ohne Trigger. Im Preprocessing ein Script aufrufen und den Wert an ioBroker senden.
          Da gibt's viele mögliche Wege.

          David G.D Online
          David G.D Online
          David G.
          schrieb am zuletzt editiert von David G.
          #7

          @Codierknecht

          Im Post hier drüber ist meine überarbeitete Version.
          Da kommt nur was ich brauche.
          Mal mit 3 avg Testwerten.

          Mit nur einer api Abfrage hab ich die Hostnamen nicht hinbekommen.

          Zeigt eure Lovelace-Visualisierung klick
          (Auch ideal um sich Anregungen zu holen)

          Meine Tabellen für eure Visualisierung klick

          1 Antwort Letzte Antwort
          0
          • CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #8

            Hier mal ein Beispiel:
            Das Item liefert "CPU Utilization" eines bestimmten Host.
            Bei jeder Ausführung wird im Preprocessing der gelesene Wert auch an ioBroker übertragen.

            grafik.png

            54112036-3a24-4715-b3ff-4f5443e14175-grafik.png

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            David G.D 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              Hier mal ein Beispiel:
              Das Item liefert "CPU Utilization" eines bestimmten Host.
              Bei jeder Ausführung wird im Preprocessing der gelesene Wert auch an ioBroker übertragen.

              grafik.png

              54112036-3a24-4715-b3ff-4f5443e14175-grafik.png

              David G.D Online
              David G.D Online
              David G.
              schrieb am zuletzt editiert von
              #9

              @Codierknecht

              Das bedarf natürlich einiges an "Pflege" und Ersteinrichtung.

              Die überwachten Rechner steigen doch langsam an, auch die überwachten Docker Container.

              Hatte/hab die Hoffnung das etwas automatisiert hinzubekommen wenn neue Rechner überwacht werden.

              Die Tabellen lassen sich dann ja recht easy mit den DPs generieren wenn sie wie in der json Strukturiert sind.

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • David G.D David G.

                @Codierknecht

                Das bedarf natürlich einiges an "Pflege" und Ersteinrichtung.

                Die überwachten Rechner steigen doch langsam an, auch die überwachten Docker Container.

                Hatte/hab die Hoffnung das etwas automatisiert hinzubekommen wenn neue Rechner überwacht werden.

                Die Tabellen lassen sich dann ja recht easy mit den DPs generieren wenn sie wie in der json Strukturiert sind.

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #10

                @David-G. sagte in HttpPost Block korrekt aufbauen:

                Hatte/hab die Hoffnung das etwas automatisiert hinzubekommen wenn neue Rechner überwacht werden.

                Stichworte "Dicovery" und "Templates".
                "Discovery" entdeckt - wie der Name es vermuten lässt - automatisch neue Hosts.
                Mit passenden "Discovery-Actions" werden daraus automatisch Hosts im Sinne von Zabbix.
                Denen verpasst man dann passende Templates, die dann schon die entsprechenden Items inkl. Preprocessing enthalten.
                Oder man lässt sich von Zabbix informieren - z.B. per Pushover - dass da ein neuer Host aufgetaucht ist und macht den Rest "von Hand". Im einfachsten Fall nur noch ein passendes Template zuordnen. Mit ein bisschen mehr Aufwand ließe sich der korrespondierende DP im ioBroker auch gleich automatisch anlegen.

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                David G.D 1 Antwort Letzte Antwort
                0
                • CodierknechtC Codierknecht

                  @David-G. sagte in HttpPost Block korrekt aufbauen:

                  Hatte/hab die Hoffnung das etwas automatisiert hinzubekommen wenn neue Rechner überwacht werden.

                  Stichworte "Dicovery" und "Templates".
                  "Discovery" entdeckt - wie der Name es vermuten lässt - automatisch neue Hosts.
                  Mit passenden "Discovery-Actions" werden daraus automatisch Hosts im Sinne von Zabbix.
                  Denen verpasst man dann passende Templates, die dann schon die entsprechenden Items inkl. Preprocessing enthalten.
                  Oder man lässt sich von Zabbix informieren - z.B. per Pushover - dass da ein neuer Host aufgetaucht ist und macht den Rest "von Hand". Im einfachsten Fall nur noch ein passendes Template zuordnen. Mit ein bisschen mehr Aufwand ließe sich der korrespondierende DP im ioBroker auch gleich automatisch anlegen.

                  David G.D Online
                  David G.D Online
                  David G.
                  schrieb am zuletzt editiert von
                  #11

                  @Codierknecht sagte in HttpPost Block korrekt aufbauen:

                  Stichworte "Dicovery" und "Templates".
                  "Discovery" entdeckt - wie der Name es vermuten lässt - automatisch neue Hosts.

                  Die Pflege ich mal noch manuell ein und weise das Standart Linux Template (ggf noch andere) zu (und ggf noch manuell anderes)

                  @Codierknecht sagte in HttpPost Block korrekt aufbauen:

                  Denen verpasst man dann passende Templates, die dann schon die entsprechenden Items inkl. Preprocessing enthalten.

                  Da habe ich mich noch nicht so mit beschäftigt. Hab das gtad eine Woche am laufen und bin täglich überrascht was man noch findet......

                  Mal überlegen, ob ich weiter mit der json im iobroker arbeite (hab sie mittlerweile in den iob bekommen) oder deinen Ansatz über zabbix.

                  Zeigt eure Lovelace-Visualisierung klick
                  (Auch ideal um sich Anregungen zu holen)

                  Meine Tabellen für eure Visualisierung klick

                  CodierknechtC 1 Antwort Letzte Antwort
                  0
                  • David G.D David G.

                    @Codierknecht sagte in HttpPost Block korrekt aufbauen:

                    Stichworte "Dicovery" und "Templates".
                    "Discovery" entdeckt - wie der Name es vermuten lässt - automatisch neue Hosts.

                    Die Pflege ich mal noch manuell ein und weise das Standart Linux Template (ggf noch andere) zu (und ggf noch manuell anderes)

                    @Codierknecht sagte in HttpPost Block korrekt aufbauen:

                    Denen verpasst man dann passende Templates, die dann schon die entsprechenden Items inkl. Preprocessing enthalten.

                    Da habe ich mich noch nicht so mit beschäftigt. Hab das gtad eine Woche am laufen und bin täglich überrascht was man noch findet......

                    Mal überlegen, ob ich weiter mit der json im iobroker arbeite (hab sie mittlerweile in den iob bekommen) oder deinen Ansatz über zabbix.

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #12

                    @David-G. sagte in HttpPost Block korrekt aufbauen:

                    Da habe ich mich noch nicht so mit beschäftigt. Hab das gtad eine Woche am laufen und bin täglich überrascht was man noch findet......

                    Ist fast eine eierlegende Wollmilchsau.
                    Wer einen Hammer hat, sieht eine Welt voller Nägel :-D :-D

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    David G.D 1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Codierknecht

                      @David-G. sagte in HttpPost Block korrekt aufbauen:

                      Da habe ich mich noch nicht so mit beschäftigt. Hab das gtad eine Woche am laufen und bin täglich überrascht was man noch findet......

                      Ist fast eine eierlegende Wollmilchsau.
                      Wer einen Hammer hat, sieht eine Welt voller Nägel :-D :-D

                      David G.D Online
                      David G.D Online
                      David G.
                      schrieb am zuletzt editiert von David G.
                      #13

                      @Codierknecht

                      Hab es jetzt fast.
                      Am JS muss mir jmd helfen.
                      Da komme ich nicht weiter.
                      Die Ordner bekommen null Werte und beim Namen sämtlicher Ordner und DOs hätte ich gerne das selbe wie beim Pfad vom DP die kurze Variante ohne den Pfad vorher.

                      1000058373.jpg

                      const SOURCE_DP = '0_userdata.0.zabbix.json';
                      const TARGET_ROOT = '0_userdata.0.zabbix.hosts';
                      
                      // Hilfsfunktion: sichere ID
                      function normalize(name) {
                          return name
                              .toString()
                              .replace(/[^\w]/g, '_')
                              .replace(/_+/g, '_')
                              .replace(/^_|_$/g, '');
                      }
                      
                      // JSON einlesen
                      const raw = getState(SOURCE_DP)?.val;
                      if (!raw) {
                          log('Zabbix JSON ist leer oder nicht vorhanden', 'warn');
                          return;
                      }
                      
                      let data;
                      try {
                          data = JSON.parse(raw);
                      } catch (e) {
                          log('JSON Parsing fehlgeschlagen: ' + e, 'error');
                          return;
                      }
                      
                      // Hosts durchlaufen
                      Object.keys(data).forEach(host => {
                          const hostId = `${TARGET_ROOT}.${normalize(host)}`;
                      
                          // Host-Ordner anlegen (falls nicht vorhanden)
                          if (!existsObject(hostId)) {
                              createState(hostId, null, {
                                  type: 'folder',
                                  common: { name: host },
                                  native: {}
                              });
                          }
                      
                          const metrics = data[host];
                      
                          Object.keys(metrics).forEach(metric => {
                              const m = metrics[metric];
                              const dpId = `${hostId}.${normalize(metric)}`;
                      
                              const valueType = m.value_type === 'number' ? 'number' : 'string';
                              const value = valueType === 'number' ? Number(m.value) : String(m.value);
                      
                              // Datenpunkt neu anlegen
                              if (!existsObject(dpId)) {
                                  createState(dpId, value, {
                                      type: valueType,
                                      common: {
                                          name: metric,
                                          role: 'value',
                                          unit: m.unit || '',
                                          read: true,
                                          write: false
                                      },
                                      native: {}
                                  });
                                  log(`DP angelegt: ${dpId}`);
                              } 
                              // oder nur aktualisieren
                              else {
                                  setState(dpId, value, true);
                              }
                          });
                      });
                      

                      Zeigt eure Lovelace-Visualisierung klick
                      (Auch ideal um sich Anregungen zu holen)

                      Meine Tabellen für eure Visualisierung klick

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      697

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      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