Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Grafana true/false anzeigen

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Grafana true/false anzeigen

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

      Hallo,
      ich stehe grad auf dem Schlauch.
      Im Netz habe ich genau dieses Beispiel gefunden, was mir zeigt das es geht.

      Ich möchte einen Wert in Grafana anzeigen lassen, welches mir true / false liefert.
      Benutzen tue ich das Widget in Grafana STAT.
      Ebenso habe ich das value mapping gemacht aber ich bekomme ewig NO DATA.
      Was mache ich falsch ?

      f230c58c-8c43-4ff7-9130-6861b41ce3af-grafik.png ![Bild Text](Bild Link)

      da_Woody crunchip 2 Replies Last reply Reply Quote 0
      • da_Woody
        da_Woody @Segway last edited by

        @Segway https://grafana.com/docs/grafana/latest/panels/visualizations/stat-panel/

        1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @Segway last edited by 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

          Segway 1 Reply Last reply Reply Quote 0
          • Segway
            Segway @crunchip last edited by

            @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 ?

            crunchip 1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @Segway last edited by

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

              Segway 1 Reply Last reply Reply Quote 0
              • Segway
                Segway @crunchip last edited by

                @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_Woody crunchip 2 Replies Last reply Reply Quote 0
                • da_Woody
                  da_Woody @Segway last edited by da_Woody

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

                  1 Reply Last reply Reply Quote 0
                  • crunchip
                    crunchip Forum Testing Most Active @Segway last edited by 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);
                    
                    
                    Segway 2 Replies Last reply Reply Quote 0
                    • Segway
                      Segway @crunchip last edited by

                      @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.

                      crunchip 1 Reply Last reply Reply Quote 0
                      • Segway
                        Segway @crunchip last edited by

                        @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

                        1 Reply Last reply Reply Quote 0
                        • crunchip
                          crunchip Forum Testing Most Active @Segway last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • C
                            Chrisidonner @crunchip last edited by

                            @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 ?

                            crunchip 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @Chrisidonner last edited by

                              @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.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              813
                              Online

                              31.6k
                              Users

                              79.4k
                              Topics

                              1.3m
                              Posts

                              template vis
                              4
                              13
                              6957
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo