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. Visualisierung
  4. Grafana true/false anzeigen

NEWS

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

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

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

Grafana true/false anzeigen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vistemplate
13 Beiträge 4 Kommentatoren 7.5k Aufrufe 4 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.
  • crunchipC crunchip

    @Segway sagte in Grafana true/false anzeigen:

    Ebenso habe ich das value mapping gemacht

    was gibt dein DP im Ursprung aus?
    (true/false) geht nicht, musst den DP umwandeln in (1/0), dann in Influx speichern als "Number"
    als Beispiel
    539197ce-46aa-470d-8de3-39864beaef44-image.png
    3465f5d5-0811-4434-804f-0948d768c041-image.png

    SegwayS Offline
    SegwayS Offline
    Segway
    schrieb am zuletzt editiert von
    #4

    @crunchip
    Ne nicht wirklich jetzt oder ?
    Hier der Wert
    97fdbabc-963f-444b-b14a-1e45df5bb831-grafik.png

    Muss ich jetzt zB über ein Blockly diese Werte in 0 und 1 umwandeln ? Oder geht das auch eleganter ?

    Gruß Dirk
    Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

    crunchipC 1 Antwort Letzte Antwort
    0
    • SegwayS Segway

      @crunchip
      Ne nicht wirklich jetzt oder ?
      Hier der Wert
      97fdbabc-963f-444b-b14a-1e45df5bb831-grafik.png

      Muss ich jetzt zB über ein Blockly diese Werte in 0 und 1 umwandeln ? Oder geht das auch eleganter ?

      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #5

      @Segway du kannst nen 2ten DP anlegen(blockly) oder einfach nen alias anlegen

      umgestiegen von Proxmox auf Unraid

      SegwayS 1 Antwort Letzte Antwort
      0
      • crunchipC crunchip

        @Segway du kannst nen 2ten DP anlegen(blockly) oder einfach nen alias anlegen

        SegwayS Offline
        SegwayS Offline
        Segway
        schrieb am zuletzt editiert von
        #6

        @crunchip sagte in Grafana true/false anzeigen:

        @Segway du kannst nen 2ten DP anlegen(blockly) oder einfach nen alias anlegen

        Jo Blockly kriege ich ja irgendwie hin.
        Was meinst du mit ALIAS anlegen ? Habe ich noch nie gemacht - hört sich irgendwie einfacherer an als 1000 Blocklys zu machen :-)

        Gruß Dirk
        Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

        da_WoodyD crunchipC 2 Antworten Letzte Antwort
        0
        • SegwayS Segway

          @crunchip sagte in Grafana true/false anzeigen:

          @Segway du kannst nen 2ten DP anlegen(blockly) oder einfach nen alias anlegen

          Jo Blockly kriege ich ja irgendwie hin.
          Was meinst du mit ALIAS anlegen ? Habe ich noch nie gemacht - hört sich irgendwie einfacherer an als 1000 Blocklys zu machen :-)

          da_WoodyD Offline
          da_WoodyD Offline
          da_Woody
          schrieb am zuletzt editiert von da_Woody
          #7

          @Segway Alias anlegen
          hat den vorteil, bei gerätewechsel nur die id ändern und alles fuzt wieder.

          gruß vom Woody
          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

          1 Antwort Letzte Antwort
          0
          • SegwayS Segway

            @crunchip sagte in Grafana true/false anzeigen:

            @Segway du kannst nen 2ten DP anlegen(blockly) oder einfach nen alias anlegen

            Jo Blockly kriege ich ja irgendwie hin.
            Was meinst du mit ALIAS anlegen ? Habe ich noch nie gemacht - hört sich irgendwie einfacherer an als 1000 Blocklys zu machen :-)

            crunchipC Abwesend
            crunchipC Abwesend
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von crunchip
            #8

            @Segway Verwende ich eigentlich auch nicht, hab mittels Adapter "Geräte" einen Alias angelegt, für meinen Wasserverbrauch, beötige ich um die Kosten für Abwasser zu berechnen.
            Du kannst das aber auch manuell anlegen oder das Script verwenden, was hier im Forum zu finden ist, gibt mehrere Möglichkeiten
            hier als script musst nur deinen Datenpunkte angeben

            // Original-Datenpunkt
            const idOrigin = 'mqtt.0.switch.status'; 
            // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
            // Bei Nicht-Verwendung Leerstring '' zuweisen
            const idRead = '';
             
            // Alias-Datenpunkt
            const idAlias = 'Pool.Pumpe.Schalter';
             
            var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
             
            // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
            nameAlias = 'Poolpumpe Ein';
            desc = 'per Script erstellt';
            // typeAlias = 'boolean'; // oder 'number'
            // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
            // write = "val ? String(1) : String(0)";
            // role = 'value';
            // min = 0; // nur Zahlen
            // max = 100; // nur Zahlen
            // unit = '%'; // nur für Zahlen
            // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
            // custom = []; // verhindert doppelte Ausführung von history, ...
            // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
            // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
             
            // Ab hier nichts ändern !!
            function createAlias(idDst, idSrc, idRd) {
               if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
               else {
                  var obj = {};
                  obj.type = 'state';
                  obj.common = getObject(idSrc).common;
                  obj.common.alias = {};
                  if(idRd) {
                      obj.common.alias.id = {};
                      obj.common.alias.id.read = idRd;
                      obj.common.alias.id.write = idSrc;
                      obj.common.read = true;
                  } else obj.common.alias.id = idSrc;
                  if(typeAlias) obj.common.type = typeAlias;
                  if(obj.common.read !== false && read) obj.common.alias.read = read;
                  if(obj.common.write !== false && write) obj.common.alias.write = write;
                  if(nameAlias) obj.common.name = nameAlias;
                  if(role) obj.common.role = role;
                  if(desc) obj.common.desc = desc;
                  if(obj.common.type == 'number') {
                     if(min !== undefined) obj.common.min = min;
                     if(max !== undefined) obj.common.max = max;
                     if(unit) obj.common.unit = unit;
                  } else {
                     if(obj.common.min !== undefined) delete obj.common.min;
                     if(obj.common.max !== undefined) delete obj.common.max;
                     if(obj.common.unit) delete obj.common.unit;
                  }
                  if(states) obj.common.states = states;
                  if(custom && obj.common.custom) obj.common.custom = custom;
                  obj.native = {};
                  setObject(idDst, obj, function() {
                     if(idRd) setState(idRd, getState(idRd).val, true);
                     else setState(idSrc, getState(idSrc).val, true); 
                  });
                  if(raum && existsObject('enum.rooms.' + raum)) {
                     let obj = getObject('enum.rooms.' + raum)
                     obj.common.members.push(idDst);
                     setObject('enum.rooms.' + raum, obj);
                  }
                  if(gewerk && existsObject('enum.functions.' + gewerk)) {
                     let obj = getObject('enum.functions.' + gewerk)
                     obj.common.members.push(idDst);
                     setObject('enum.functions.' + gewerk, obj);
                  }
               } 
            }
             
            createAlias('alias.0.' + idAlias, idOrigin, idRead);
            
            

            umgestiegen von Proxmox auf Unraid

            SegwayS 2 Antworten Letzte Antwort
            0
            • crunchipC crunchip

              @Segway Verwende ich eigentlich auch nicht, hab mittels Adapter "Geräte" einen Alias angelegt, für meinen Wasserverbrauch, beötige ich um die Kosten für Abwasser zu berechnen.
              Du kannst das aber auch manuell anlegen oder das Script verwenden, was hier im Forum zu finden ist, gibt mehrere Möglichkeiten
              hier als script musst nur deinen Datenpunkte angeben

              // Original-Datenpunkt
              const idOrigin = 'mqtt.0.switch.status'; 
              // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
              // Bei Nicht-Verwendung Leerstring '' zuweisen
              const idRead = '';
               
              // Alias-Datenpunkt
              const idAlias = 'Pool.Pumpe.Schalter';
               
              var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
               
              // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
              nameAlias = 'Poolpumpe Ein';
              desc = 'per Script erstellt';
              // typeAlias = 'boolean'; // oder 'number'
              // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
              // write = "val ? String(1) : String(0)";
              // role = 'value';
              // min = 0; // nur Zahlen
              // max = 100; // nur Zahlen
              // unit = '%'; // nur für Zahlen
              // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
              // custom = []; // verhindert doppelte Ausführung von history, ...
              // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
              // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
               
              // Ab hier nichts ändern !!
              function createAlias(idDst, idSrc, idRd) {
                 if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                 else {
                    var obj = {};
                    obj.type = 'state';
                    obj.common = getObject(idSrc).common;
                    obj.common.alias = {};
                    if(idRd) {
                        obj.common.alias.id = {};
                        obj.common.alias.id.read = idRd;
                        obj.common.alias.id.write = idSrc;
                        obj.common.read = true;
                    } else obj.common.alias.id = idSrc;
                    if(typeAlias) obj.common.type = typeAlias;
                    if(obj.common.read !== false && read) obj.common.alias.read = read;
                    if(obj.common.write !== false && write) obj.common.alias.write = write;
                    if(nameAlias) obj.common.name = nameAlias;
                    if(role) obj.common.role = role;
                    if(desc) obj.common.desc = desc;
                    if(obj.common.type == 'number') {
                       if(min !== undefined) obj.common.min = min;
                       if(max !== undefined) obj.common.max = max;
                       if(unit) obj.common.unit = unit;
                    } else {
                       if(obj.common.min !== undefined) delete obj.common.min;
                       if(obj.common.max !== undefined) delete obj.common.max;
                       if(obj.common.unit) delete obj.common.unit;
                    }
                    if(states) obj.common.states = states;
                    if(custom && obj.common.custom) obj.common.custom = custom;
                    obj.native = {};
                    setObject(idDst, obj, function() {
                       if(idRd) setState(idRd, getState(idRd).val, true);
                       else setState(idSrc, getState(idSrc).val, true); 
                    });
                    if(raum && existsObject('enum.rooms.' + raum)) {
                       let obj = getObject('enum.rooms.' + raum)
                       obj.common.members.push(idDst);
                       setObject('enum.rooms.' + raum, obj);
                    }
                    if(gewerk && existsObject('enum.functions.' + gewerk)) {
                       let obj = getObject('enum.functions.' + gewerk)
                       obj.common.members.push(idDst);
                       setObject('enum.functions.' + gewerk, obj);
                    }
                 } 
              }
               
              createAlias('alias.0.' + idAlias, idOrigin, idRead);
              
              
              SegwayS Offline
              SegwayS Offline
              Segway
              schrieb am zuletzt editiert von
              #9

              @crunchip

              Ach so du meinst das alias.0 --> damit habe ich mich noch nicht beschäftigt. Kommt noch.

              Dann ist es das Beste ich mach ein Blockly. Ich schau mal nach dem Skript hier im Forum - Danke schonmal !

              Wusste echt nicht dass es NUR mit 0 und 1 klappt.

              Gruß Dirk
              Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

              crunchipC 1 Antwort Letzte Antwort
              0
              • crunchipC crunchip

                @Segway Verwende ich eigentlich auch nicht, hab mittels Adapter "Geräte" einen Alias angelegt, für meinen Wasserverbrauch, beötige ich um die Kosten für Abwasser zu berechnen.
                Du kannst das aber auch manuell anlegen oder das Script verwenden, was hier im Forum zu finden ist, gibt mehrere Möglichkeiten
                hier als script musst nur deinen Datenpunkte angeben

                // Original-Datenpunkt
                const idOrigin = 'mqtt.0.switch.status'; 
                // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                // Bei Nicht-Verwendung Leerstring '' zuweisen
                const idRead = '';
                 
                // Alias-Datenpunkt
                const idAlias = 'Pool.Pumpe.Schalter';
                 
                var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                 
                // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                nameAlias = 'Poolpumpe Ein';
                desc = 'per Script erstellt';
                // typeAlias = 'boolean'; // oder 'number'
                // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                // write = "val ? String(1) : String(0)";
                // role = 'value';
                // min = 0; // nur Zahlen
                // max = 100; // nur Zahlen
                // unit = '%'; // nur für Zahlen
                // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                // custom = []; // verhindert doppelte Ausführung von history, ...
                // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                 
                // Ab hier nichts ändern !!
                function createAlias(idDst, idSrc, idRd) {
                   if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                   else {
                      var obj = {};
                      obj.type = 'state';
                      obj.common = getObject(idSrc).common;
                      obj.common.alias = {};
                      if(idRd) {
                          obj.common.alias.id = {};
                          obj.common.alias.id.read = idRd;
                          obj.common.alias.id.write = idSrc;
                          obj.common.read = true;
                      } else obj.common.alias.id = idSrc;
                      if(typeAlias) obj.common.type = typeAlias;
                      if(obj.common.read !== false && read) obj.common.alias.read = read;
                      if(obj.common.write !== false && write) obj.common.alias.write = write;
                      if(nameAlias) obj.common.name = nameAlias;
                      if(role) obj.common.role = role;
                      if(desc) obj.common.desc = desc;
                      if(obj.common.type == 'number') {
                         if(min !== undefined) obj.common.min = min;
                         if(max !== undefined) obj.common.max = max;
                         if(unit) obj.common.unit = unit;
                      } else {
                         if(obj.common.min !== undefined) delete obj.common.min;
                         if(obj.common.max !== undefined) delete obj.common.max;
                         if(obj.common.unit) delete obj.common.unit;
                      }
                      if(states) obj.common.states = states;
                      if(custom && obj.common.custom) obj.common.custom = custom;
                      obj.native = {};
                      setObject(idDst, obj, function() {
                         if(idRd) setState(idRd, getState(idRd).val, true);
                         else setState(idSrc, getState(idSrc).val, true); 
                      });
                      if(raum && existsObject('enum.rooms.' + raum)) {
                         let obj = getObject('enum.rooms.' + raum)
                         obj.common.members.push(idDst);
                         setObject('enum.rooms.' + raum, obj);
                      }
                      if(gewerk && existsObject('enum.functions.' + gewerk)) {
                         let obj = getObject('enum.functions.' + gewerk)
                         obj.common.members.push(idDst);
                         setObject('enum.functions.' + gewerk, obj);
                      }
                   } 
                }
                 
                createAlias('alias.0.' + idAlias, idOrigin, idRead);
                
                
                SegwayS Offline
                SegwayS Offline
                Segway
                schrieb am zuletzt editiert von
                #10

                @crunchip

                Mh, das Skript erzeugt einen Fehler:

                You are assigning a boolean to the state "linux-control.0.VM_Influx.info.is_online" which expects a string. Please fix your code to use a string or change the state type to boolean. This warnin

                Gruß Dirk
                Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

                1 Antwort Letzte Antwort
                0
                • SegwayS Segway

                  @crunchip

                  Ach so du meinst das alias.0 --> damit habe ich mich noch nicht beschäftigt. Kommt noch.

                  Dann ist es das Beste ich mach ein Blockly. Ich schau mal nach dem Skript hier im Forum - Danke schonmal !

                  Wusste echt nicht dass es NUR mit 0 und 1 klappt.

                  crunchipC Abwesend
                  crunchipC Abwesend
                  crunchip
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #11

                  @Segway wie gesagt, habt das selbst noch nicht gemacht, denke du musst das auskommentierte noch anpassen
                  type Alias 'number'
                  states = {false: '0', true: '1'}
                  wenn nicht, im Link von @da_Woody nachlesen/fragen

                  umgestiegen von Proxmox auf Unraid

                  C 1 Antwort Letzte Antwort
                  0
                  • crunchipC crunchip

                    @Segway wie gesagt, habt das selbst noch nicht gemacht, denke du musst das auskommentierte noch anpassen
                    type Alias 'number'
                    states = {false: '0', true: '1'}
                    wenn nicht, im Link von @da_Woody nachlesen/fragen

                    C Offline
                    C Offline
                    Chrisidonner
                    schrieb am zuletzt editiert von
                    #12

                    @crunchip
                    Verstehe ich es richtig ?
                    Man kann einen ganz normalen Schalter nicht aufzeigen ob an oder aus ? Bzw nur mit diesem Umweg den Schalter nicht auf True/false sondern 1/0 zu setzen ? Geht das nicht irgendwie in grafana ?

                    crunchipC 1 Antwort Letzte Antwort
                    0
                    • C Chrisidonner

                      @crunchip
                      Verstehe ich es richtig ?
                      Man kann einen ganz normalen Schalter nicht aufzeigen ob an oder aus ? Bzw nur mit diesem Umweg den Schalter nicht auf True/false sondern 1/0 zu setzen ? Geht das nicht irgendwie in grafana ?

                      crunchipC Abwesend
                      crunchipC Abwesend
                      crunchip
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #13

                      @Chrisidonner sichtbar machen in Grafana ist schon möglich, ein true/false kannst dir schon anzeigen lassen, jedoch bei der Farbe spätestens scheitert es, denn wie willst du Thresholds einstellen, da wird eine Zahl erwartet.

                      umgestiegen von Proxmox auf Unraid

                      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

                      706

                      Online

                      32.5k

                      Benutzer

                      81.6k

                      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