Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. sprechender Device-Name statt ID

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    sprechender Device-Name statt ID

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

      Kann man mit JavaScript die Device-Namen auslesen und Datenpunkte nur bestimmter Devices - über deren sprechenden Namen - ansprechen?
      Ich würde gern im Log die sprechenden Namen (rot eingerahmt) statt der IDs (blau eingerahmt) ausgeben und auch im Script verwenden können.
      Screenshot1.JPG

      Derzeit mache ich es von hinten durch die Brust über geschachtelten Schleifen mittels

      $('deconz.0.lights.*.ct').each(function (id) {
           let idstring = id.replace("ct","");
           if (getState(idstring+"xy").val) {
      

      indem ich erst alle Devices suche, die einen bestimmten Datenpunkt enthalten (z.b. alle, die eine Farbtemperatureinstellung zulassen = alle Hue-Lampen), um dann über einen zweiten Datenpunkt die wieder rauszuwerfen die ich nicht brauche (z.B. alle, die eine Farbeinstellung zulassen werfe ich wieder raus, um schlussendlich an die Ambilight-Lampen ohne die Color-Lampen zu kommen).

      Wo wir gerade dabei sind: wie kann man eigentlich die Schriftgröße in der ioBroker Objects Ansicht ändern? Bei mir werden die Buchstaben der Namen (komischerweise nur bei diesen) immer unten abgeschnitten - siehe Screenshot oben. Es scheint so, dass (nur) die Namen einen größeren Abstand zu ihrer jeweiligen Zeilengrenze oben einhalten müssen und deshalb nach unten versetzt sind.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @radioman last edited by

        @radioman sagte:

        mit JavaScript die Device-Namen auslesen

        Siehe hier

        R 1 Reply Last reply Reply Quote 0
        • R
          radioman @paul53 last edited by

          Dankeschön @paul53 - klappt damit wunderbar:

          $('deconz.0.lights.*.bri').each(function (id) {
              id = id.substring(0, id.lastIndexOf('.'));
              console.log("Name: " + getObject(id).common.name);
              id = id.substring(0, id.lastIndexOf('.'));
              console.log("Gruppe: " + getObject(id).common.name);
          

          Noch eleganter wäre natürlich, wenn ich sogar gleich auf das Lampenmodell zugreifen könnte - gibt es da auch etwas?:
          Screenshot2.JPG

          Homoran Jey Cee 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @radioman last edited by

            @radioman sagte in sprechender Device-Name statt ID:

            wenn ich sogar gleich auf das Lampenmodell zugreifen könnte - gibt es da auch etwas?:

            wie sieht denn dazu der State unter Objekten aus?

            1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer @radioman last edited by

              @radioman

              native.modelid
              

              statt

              common.name
              
              R 1 Reply Last reply Reply Quote 0
              • R
                radioman @Jey Cee last edited by

                @Jey-Cee said in sprechender Device-Name statt ID:

                native.modelid

                Super - Ihr seid klasse (& schnell). Besten Dank.

                Es ist sicherlich etwas naiv von mir, über native.manufacturer gleich noch an den Hersteller rankommen zu wollen, oder?

                $('deconz.0.lights.*.bri').each(function (id) {
                    id = id.substring(0, id.lastIndexOf('.'));
                    console.log("Name: " + getObject(id).common.name);
                    console.log("Name2: " + getObject(id).native.modelid);
                    console.log("Name4: " + getObject(id).native.manufacturer);
                    console.log("Name3: " + getObject(id).native);
                    id = id.substring(0, id.lastIndexOf('.'));
                    console.log("Gruppe: " + getObject(id).common.name);
                

                Aber der jetzige Log davon, bringt mich auch schon viel weiter:

                16:03:10.464 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name: OZ_Decke2
                16:03:10.464 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name2: LCA001
                16:03:10.465 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name4: undefined
                16:03:10.466 info javascript.0 (1573) script.js.common.Licht_Dimmer: Name3: [object Object]
                16:03:10.467 info javascript.0 (1573) script.js.common.Licht_Dimmer: Gruppe: Lights

                Jey Cee 1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer @radioman last edited by

                  @radioman sagte in sprechender Device-Name statt ID:

                  Es ist sicherlich etwas naiv von mir, über native.manufacturer gleich noch an den Hersteller rankommen zu wollen, oder?

                  native.manufacturername
                  
                  R 1 Reply Last reply Reply Quote 0
                  • R
                    radioman @Jey Cee last edited by

                    Vielen Dank, @Jey-Cee - Dein Insiderwissen beim deconz Adapter ist Top! 😉

                    Aber wenn ich wieder einmal wie die Ochs vorm Tor stehe: woher bekomme ich solche Infos, was ein Adapter alles bereitstellt? Ich habe ja nur geraten, dass wenn "Model ID" übersetzt "modelid" heißt dann "Manufacturer" "manufacturer" heißen könnte. Auf "manufacturername" bin ich leider nicht gekommen. In für mich verständlichen Dokus hatte ich nichts gefunden und auch wenn ich jetzt nach native* suche finde ich nichts baruchbares.

                    Das mit *.common.name hatte ich zwar vorher über die Suchfunktion des Forums auch gefunden und auch in der Doku mich belesen, aber scheinbar einen Fehler drin gehabt, denn ich bekam darüber nur die names der Datenpunkte selber raus.

                    Jey Cee 1 Reply Last reply Reply Quote 0
                    • Jey Cee
                      Jey Cee Developer @radioman last edited by Jey Cee

                      @radioman schau mal hier: https://www.youtube.com/watch?v=fyDuxaJelRM

                      EDIT: Hier habe ich auch noch was dazu geschrieben: https://forum.iobroker.net/topic/36837/das-volle-potential-der-objekte-nutzen

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        radioman @Jey Cee last edited by

                        @Jey-Cee said in sprechender Device-Name statt ID:

                        https://forum.iobroker.net/topic/36837/das-volle-potential-der-objekte-nutzen

                        Top, hatte ich noch nicht auf dem Schirm - vielen Dank!

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        754
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1604
                        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