Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Gelöst] ID oder Name eines State in Vis anzeigen

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    SOLVED [Gelöst] ID oder Name eines State in Vis anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Negalein last edited by

      hi @Negalein

      das script ist keine zeitgleiche spiegelung - deshalb wird es wenig sinn machen, den datenpunkt-wert selbst mit einzubauen - das script nimmt die datenpunkte des ping adapters und ordnet sie neu zu. es läuft also nicht immer an, wenn sich ein pingobject auf false oder true geht.

      1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky last edited by liv-in-sky

        @Dolomiti
        man müßte auch aus dem script eine tabelle machen können, die einen einzigen datenpunkt im html format erstellt und diese könnte dann in der vis angezeigt werden

        suchst du sowas ?

        ps: bei deinem benutzersymbol kommen kindheitserinnerungen an sonnige freibad-aufenthalte zum vorschein 🙂

        1 Reply Last reply Reply Quote 1
        • O
          Oli @Negalein last edited by

          @Negalein

          ich lasse mir die State aus dem Ping Adapter mit eintragen und rufe sie regelmäßig mit einem scheudle ab, funktioniert ganz gut.

          1 Reply Last reply Reply Quote 0
          • O
            Oli @sigi234 last edited by

            @sigi234

            sieht wie immer cool aus, stellst du mir dein Wiget zur Verfügung?

            1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky last edited by liv-in-sky

              kann sowas anbieten - es wird ein datenpunkt erstellt javascript.0.Netzwerk.StringHTML und ein html widget mit binding - hostname ändern nicht vergessen (das raspberry3 ersetzen mit eigenen namen- 2 mal)

              es ist kein schedule vorhanden, weil das ganze für blockly integration gedacht war

              Image 4.png

              Image 5.png

              var cacheSelector = $('state[id=ping.0.raspberry3.*]');
              
              var htmlString ="<table><tr><td>NAME&ensp; &ensp;</td><td>IP&ensp; &ensp;</td><td>&ensp; &ensp;</td></tr>";
              var cacheSelector = $('[id=ping.0.raspberry3.*]');
              //console.log(cacheSelector);
              var counter =0;
              cacheSelector.each(function(id, i) {
                counter = counter+1
                 var devicename = getObject(id).common.name;
                 var ip = id.replace(/_/g, ".");
                 var ip = ip.replace(/ping.0.raspberry3./g, "");
              
                // log(id + " : " + devicename + " : " + ip );
                 var devicenameName=devicename;
               
                 devicename="Netzwerk.Gerät"+counter.toString()+".NameGerät";
                 createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                 setStateDelayed(devicename, devicenameName, 800);
                 devicename="Netzwerk.Gerät"+counter.toString()+".IPAdresse";
                 setStateDelayed(devicename, ip, 800);
                 createState(devicename, 'empty', { name: 'IP des Geräts', desc: '', type: 'string', role: '',read: true, write: true });
                 var wert1 = getState(id).val;
                 if (wert1) wert1 = "✅";
                 if (!wert1) wert1= "❌";
                htmlString=htmlString.concat("<tr><td>" + devicenameName + "&ensp; &ensp;</td><td>" + ip + "&ensp; &ensp;</td><td>" + wert1 + "</td></tr>");
              
              });
              
                //log(counter);
                createState('Netzwerk.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true }); 
                createState('Netzwerk.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true }); 
                setStateDelayed('Netzwerk.Anzahl', counter, 800);
                setStateDelayed('Netzwerk.StringHTML', htmlString.concat("</table>"), 800);
              
              O 1 Reply Last reply Reply Quote 2
              • liv-in-sky
                liv-in-sky last edited by

                @Negalein

                hier sind die werte mit drin

                1 Reply Last reply Reply Quote 0
                • O
                  Oli @liv-in-sky last edited by

                  @liv-in-sky

                  und wie hälst du deine Werte aktuell?

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @Oli last edited by

                    @Oliver-Böhm

                    wenn das ganze in ein blockly als function eingebunden wird, einfach ein schedule auf die function

                    Image 6.png grüner pfeil - da die funtion rein kopieren

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

                      @liv-in-sky
                      Ich habe einen Wago-Bus per Modbus angeschlossen, aus dem ich Werte auslese. Ich wollte diese in einer Übersicht anzeigen mit der ID und dem Namen des DP. Die ID wird aus Adresse+Namen und der Name aus der Beschreibung automatisch vom Adapter erzeugt. Damit ich die Beschreibung nur an einer Stelle und nicht auch noch im VIS pflegen muss, wollte ich sie auslesen und darstellen. Ich denke ich versuche mal deinen Weg mit dem erzeugen und darstellen über HTML evtl. geht es auch noch über eine JSON-Tabelle.

                      PS: bei mir auch ☺

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @Dolomiti last edited by

                        @Dolomiti müßte machbar sein - ich werde das auch noch für meine sonoffs über eine hml tabelle machen - JSON und ich mögen uns nicht wirklich - wer sich aber auskennt, bekommt das sicher auch hin

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

                          @liv-in-sky
                          So, ich habe mal etwas ausprobiert. Funktioniert sehr gut für mich.
                          So sehen die DP´s aus.
                          2019-08-17_153100.png
                          und so die Testausgabe des HTML-Strings
                          2019-08-17_153125.png

                          Hier noch mein Skript, in dem es bestimmt Optimierungspotential gibt.

                          var inputRegisterHTML ="<table><tr><td>Adresse&ensp; &ensp;</td><td>Name&ensp; &ensp;</td><td>Beschreibung&ensp; &ensp;</td></tr>";
                          var cacheSelector = $('[id=modbus.0.inputRegisters.*]');
                          //console.log(cacheSelector);
                          var counter =0;
                          cacheSelector.each(function(id, i) {
                              counter = counter+1
                              var Beschreibung = getObject(id).common.name;
                              var idName = id.replace(/modbus.0.inputRegisters./g, "");
                              var Position_Unterstrich=idName.indexOf("_");
                              var Adresse = idName.slice(0,Position_Unterstrich);
                              var Name = idName.slice(Position_Unterstrich+1);
                              inputRegisterHTML=inputRegisterHTML.concat("<tr><td>" + Adresse + "&ensp; &ensp;</td><td>" + Name + "&ensp; &ensp;</td><td>" + Beschreibung + "</td></tr>");
                          });
                          createState('WAGO.inputRegisterHTML', 0, {name: 'inputRegisterHTML', desc: '', type: 'string', role: '',read: true, write: true });
                          setStateDelayed('WAGO.inputRegisterHTML', inputRegisterHTML.concat("</table>"), 800);
                          

                          Wenn ich noch Lust habe probier ich das Ganze mal mit Arrays oder JSON umzusetzten.

                          Danke für die Denkanstöße und Hilfe

                          liv-in-sky 1 Reply Last reply Reply Quote 1
                          • liv-in-sky
                            liv-in-sky @Dolomiti last edited by

                            @Dolomiti was macht eigentlich ein wagobus ?

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

                              @liv-in-sky
                              Das ist eine SPS der Fa. WAGO, die es mit verschiedensten Anbindungen an die Außenwelt zu kaufen gibt, z. B. Ethernet, seriell, CAN, Profibus usw. . Bei mir in der Firma nennen wir das nur Wago-Bus, hat sich so eingebürgert. Richtig wäre bei mir Wago-SPS 750-880

                              1 Reply Last reply Reply Quote 0
                              • A
                                Alexxx2005 last edited by Alexxx2005

                                Hallo,

                                wollte mir auch die Liste für die Netzwerkgerät einrichten allerdings
                                wird kein Einziger Ordner angelegt...

                                Liegt es bei mir am Namen des PC's oder an den Ping's da diese einen
                                _ haben und nicht ein . wie sonst immer.

                                Ping.PNG

                                var cacheSelector = $('state[id=ping.0.DESKTOP-OC3H4GD(SmartHome).*]');
                                
                                
                                
                                var htmlString ="<table><tr><td>NAME&ensp; &ensp;</td><td>IP&ensp; &ensp;</td><td>&ensp; &ensp;</td></tr>";
                                
                                var cacheSelector = $('[id=ping.0.DESKTOP-OC3H4GD(SmartHome).*]');
                                
                                //console.log(cacheSelector);
                                
                                var counter =0;
                                
                                cacheSelector.each(function(id, i) {
                                
                                 counter = counter+1
                                
                                  var devicename = getObject(id).common.name;
                                
                                  var ip = id.replace(/_/g, ".");
                                
                                  var ip = ip.replace(/ping.0.DESKTOP-OC3H4GD(SmartHome)./g, "");
                                
                                
                                
                                 // log(id + " : " + devicename + " : " + ip );
                                
                                  var devicenameName=devicename;
                                
                                
                                
                                  devicename="Netzwerk.Gerät"+counter.toString()+".NameGerät";
                                
                                  createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                                
                                  setStateDelayed(devicename, devicenameName, 800);
                                
                                  devicename="Netzwerk.Gerät"+counter.toString()+".IPAdresse";
                                
                                  setStateDelayed(devicename, ip, 800);
                                
                                  createState(devicename, 'empty', { name: 'IP des Geräts', desc: '', type: 'string', role: '',read: true, write: true });
                                
                                  var wert1 = getState(id).val;
                                
                                  if (wert1) wert1 = "✅";
                                
                                  if (!wert1) wert1= "❌";
                                
                                 htmlString=htmlString.concat("<tr><td>" + devicenameName + "&ensp; &ensp;</td><td>" + ip + "&ensp; &ensp;</td><td>" + wert1 + "</td></tr>");
                                
                                
                                
                                });
                                
                                
                                
                                 //log(counter);
                                
                                 createState('Netzwerk.StringHTML', 0, {name: 'StringHTML', desc: '', type: 'string', role: '',read: true, write: true }); 
                                
                                 createState('Netzwerk.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Geräte', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true }); 
                                
                                 setStateDelayed('Netzwerk.Anzahl', counter, 800);
                                
                                 setStateDelayed('Netzwerk.StringHTML', htmlString.concat("</table>"), 800);
                                
                                

                                Grüße Alex

                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @Alexxx2005 last edited by

                                  @Alexxx2005 der inhalt deines spoilers ist unbrauchbar

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Alexxx2005 @liv-in-sky last edited by

                                    @liv-in-sky

                                    wurde angepasst

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @Alexxx2005 last edited by

                                      @Alexxx2005

                                      probiere das mal und öffne das script direct im browser und dann erst nach iobroker kopieren

                                      anzeige-pingadapter.txt

                                      falls das nicht geht, weiß ich nicht - evtl liegt es an den klammern im selektor

                                      iping.0.DESKTOP-OC3H4GD(SmartHome).*
                                      

                                      vielleicht muss auch noch das replace angeglichen werdne aber teste erst mal

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Alexxx2005 last edited by

                                        es tut sich gar nichts wenn ich das Skript öffne, am besten wäre den PC Namen umzubenennen 🙂

                                        liv-in-sky 2 Replies Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @Alexxx2005 last edited by

                                          @Alexxx2005

                                          du kannst ja mal ein log einfügen, damit du siehst, wo "nix" passiert - wenn unter dem selektor kein log kommt - wär blöd
                                          du hast aber im object tab auf browser refresh gedrückt, um aktuell zu sein

                                          log("bin hier");
                                          

                                          oder unter dem selektor und unter dem counter:

                                          log(counter.toString());
                                          
                                          A 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky last edited by

                                            @liv-in-sky sagte in [Gelöst] ID oder Name eines State in Vis anzeigen:

                                            iping.0.DESKTOP-OC3H4GD(SmartHome).*

                                            @paul53

                                            bräuchte bitte deine hilfe - darf in einem selektor eine klammer stehen

                                            z.b.

                                            $('ping.0.DESKTOP-OC3H4GD(SmartHome).*').each(function (id, i){ ..
                                            
                                            

                                            die klammern sind teil des namens (Smarthome)

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            898
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            vis
                                            16
                                            201
                                            19408
                                            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