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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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.
    • O
      Oli @liv-in-sky last edited by

      @liv-in-sky

      b5820baa-cd57-4cac-a1bc-3aa44499e6ad-image.png

      hoffe das hilft weiter

      liv-in-sky 2 Replies Last reply Reply Quote 0
      • 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
        • liv-in-sky
          liv-in-sky @Oli last edited by

          @Oliver-Böhm ja

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

            @Oliver-Böhm

            probier mal

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

            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 });
            });
            
            log(counter);
              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);
            

            bei mir läuft es so - echte profis machen das vielleicht anders - bitte um nachsicht

            O Negalein liv-in-sky 3 Replies Last reply Reply Quote 5
            • O
              Oli @liv-in-sky last edited by

              @liv-in-sky

              wow, du bist der Beste, vielen herzlichen Dank !!

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

                @Oliver-Böhm

                naja - wenn schon das mit dem nmap einlesen nicht funktioniert - dann hoffentlich dieses script

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

                  @liv-in-sky

                  funktioniert super

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

                    @Oliver-Böhm

                    noch wichtig - im setting des pingadapters dürfen keine domainnamen am namen hängen

                    alo SamsungTV ist ok aber SamsungTV.fritz.box würde nicht funktionieren - wegen der punkte!

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

                      @liv-in-sky
                      danke für den Hinweis

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

                        @liv-in-sky
                        Habe dein Skript ausprobiert, funktioniert super bei mir. Hab mich nur über die ganzen log-Ausgaben gewundert, bei mir war noch auf Debug und Verbose gestellt 😊
                        Nachdem ich mal in meinen Skript-Versuchen auf meinem Testsystem gestöbert habe, habe ich auch einen Code-Schnipsel ähnlich wie deinen zum loggen des common.name gefunden.

                        log(getObject("modbus.0.inputRegisters.0_T_WZ_AI"/*Temperatur Wohnzimmer*/, 1).common.name);
                        log(getObject("modbus.0.inputRegisters.0_T_WZ_AI"/*Temperatur Wohnzimmer*/, 1)._id);
                        

                        Man kann aber darauf anscheinend nicht direkt im VIS zugreifen. Ich wollte mir eine Übersicht aller Register mit dem Namen bauen. Vielleicht geht das mit Bindings, aber damit stehe ich noch etwas auf Kriegsfuss.

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

                                              Support us

                                              ioBroker
                                              Community Adapters
                                              Donate

                                              869
                                              Online

                                              31.6k
                                              Users

                                              79.4k
                                              Topics

                                              1.3m
                                              Posts

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