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@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    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.
    • sigi234
      sigi234 Forum Testing Most Active @liv-in-sky last edited by

      @liv-in-sky

      Danke, cooles Skript..............👍

      Screenshot (3889)_LI.jpg

      O Agria4800 2 Replies Last reply Reply Quote 1
      • liv-in-sky
        liv-in-sky last edited by

        @Dolomiti
        @Oliver-Böhm
        hier mal mein vorschlag:

        habe in blockly folgendes angelegt:Image 1.png

        inhalt ist:

        var obj = getObject("ping.0.raspberry3.192_168_178_157");
        console.log(obj.common.name)
        

        damit bekomme ich den namen - diesen speichere ich dann in einen extra datenpunkt

        (wahrscheinlich gehts auch anders - aber ich glaube, blockly direct unterstützt das nicht - https://forum.iobroker.net/post/240879)

        O 1 Reply Last reply Reply Quote 2
        • Negalein
          Negalein Global Moderator @liv-in-sky last edited by

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

          probier mal

          legt die datenpunkte unter javascript.0.Netzwerk ab - ```bitte Hostnamen wieder ändern!!! 2 mal: auch im replace

          Servus

          Habe dein Script an meinen Ping-Adapter angepasst.
          Hat auch einwandfrei alles angelegt.

          Nur passen true/false nicht zusammen.

          Hier im Ping wird es mir als true angezeigt.
          objects - ioBroker.png

          Aber vom Script kommt ein false retour.
          objects - ioBroker (1).png

          sigi234 O 2 Replies Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @Negalein last edited by

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

            Nur passen true/false nicht zusammen.

            Das Skript gibt doch nur den Namen und die IP aus,,,,,,,,,,

            Negalein 1 Reply Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator @sigi234 last edited by

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

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

              Nur passen true/false nicht zusammen.

              Das Skript gibt doch nur den Namen und die IP aus,,,,,,,,,,

              Ah, ok, dann hab ich das falsch verstanden.

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

                @Dolomiti
                bin mir da nicht sicher , aber ich denke das getobject nicht im binding läuft - falls das jmd weiß bitte berichtigen

                leider verstehe ich nicht wirklich, was du benötigst bzw umsetzen willst - was verstehst du unter register - was soll da drin stehen und wie soll es angezeigt werden?

                sorry für die logs - war froh, dass es gelaufen ist - habe die logs vergessen

                1 Reply Last reply Reply Quote 0
                • 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
                                              • First post
                                                Last post

                                              Support us

                                              ioBroker
                                              Community Adapters
                                              Donate

                                              504
                                              Online

                                              31.7k
                                              Users

                                              79.8k
                                              Topics

                                              1.3m
                                              Posts

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