Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Objektname auslesen und verwenden

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Objektname auslesen und verwenden

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @TT-Tom last edited by mickym

      @tt-tom Na OK - ich habe es anders verstanden. Ich dachte er/sie will den Namen "Fensterkontakt Büro Paddy OG" eingeben und darüber die ID und damit die Bezeichnung des übergeordneten Ordner herausfinden und diese in einem eigenen Datenpunkt abspeichern.

      T 1 Reply Last reply Reply Quote 1
      • T
        TT-Tom @mickym last edited by

        @mickym okay, wenn ich das jetzt so lese, könntest du recht haben. Mal sehen was er genau will.

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

          @paddy2 sagte: den Namen als Wert auszulesen?

          JS-Funktion mit Ergebnis: parentName(id)

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @paul53 last edited by mickym

            @paul53 Das hilft auch nicht, wenn man die id über den Namen rausbekommen will, deswegen habe ich ja die JS-Funktion mit Ergebnis:

            getIdByName(name) genommen.

            Das kann man natürlich noch in den parentName einbinden - aber ich dachte mit der Liste ist sie flexibler durch die Hierarchien zu wandern.

            David G. 1 Reply Last reply Reply Quote 0
            • David G.
              David G. @mickym last edited by David G.

              @mickym

              Ich glaube, er möchte das gelb hervorgehobe auslesen wenn er einen DP eine Ebene tiefer auswählt.

              Das wäre ja Pauls Vorschlag. Den ich ähnlich auch schon nutze.

              Wie werden es nachher erfahren ^^.

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @David G. last edited by mickym

                @david-g Gut ich bin davon ausgegangen, dass

                Fentsterkontakt Büro Paddy OG ==> 000DA49A37143

                liefern soll und dass 000DA49A37143 in einen eigenen Datenpunkt geschrieben werden soll. Das Problem wird sowieso sein, dass der Ordner 000DA49A37143.1 gleich wie der übergeordnete Ordner heißt, dann funktioniert mein Script auch nicht. Der Ordner müsste eigentlich Fentsterkontakt Büro Paddy OG:1 heißen, sowie bei 2 auch. 😉

                Die Funktion getIdByName(name) gibt dann ein Array zurück und auch das muss man ja unterbinden, deshalb die Typprüfung, weil sonst kann man das übergeordnete Objekt ja nicht eindeutig identifizieren, weil Namen ja nicht eindeutig sein müssen.

                1 Reply Last reply Reply Quote 0
                • P
                  paddy2 last edited by

                  Euch allen vielen Dank für eure Hilfe!

                  Nach zweiter Durchsicht war meine Beschreibung tatsächlich ein wenig verwirrend.

                  Ich suche nach einer geeigneten Möglichkeit, am liebsten Mittels Blockly, den Wert "Namen" auszulesen.

                  Anschliessend möchte ich diesen Wert in einen DP setzen.

                  997ffa00-5a9a-4e79-b3a7-7a6360edec05-image.png

                  Falls eine obengenannte Variante dies kann, werde ich mich daran versuchen...

                  Am Ende der Übung soll die Sprachsteuerung die Öffnungen präzise bezeichnen können ohne das ich alle IFTTT einzeln bezeichnen muss...

                  Danke euch!

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    TT-Tom @paddy2 last edited by TT-Tom

                    @paddy2 dann kannst du das verwenden
                    Bildschirmfoto 2023-04-18 um 09.17.46.png

                    name kommt vom Triggerbaustein. Wenn du mehrere States über wachen willst, dann nimm statt Objekt ID den Selektor. habe ich weiter oben schon mal gezeigt.

                    1 Reply Last reply Reply Quote 1
                    • paul53
                      paul53 @paddy2 last edited by paul53

                      @paddy2 sagte: Objektname (übergeordneter Name) auslesen und anschliessend den Wert in einem Datenpunkt setzen.

                      Wenn es der gelb markierte Gerätename sein soll:

                      Blockly_temp.JPG

                      1 Reply Last reply Reply Quote 2
                      • P
                        paddy2 last edited by

                        @paul53 @TT-Tom
                        Weltklasse! Das nenn ich mal effiziente Hilfe 🙂

                        a517108c-434d-4888-9aa7-30da66f967d0-image.png

                        Hat einwandfrei geklappt!

                        Euch allen herzlichen Dank!

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          dtp @paddy2 last edited by dtp

                          Ich würde mich hier gerne mit einer Frage einklinken. Ich finde den Befehle "getIdByName" sehr interessant, aber er liefert halt - wie oben schon erwähnt - dann ein Array, wenn der Name mehrmals existiert, was das z.B. bei der Nutzung des alexa2-Adapters vorkommen kann. So liefert mir z.B. die Abfrage

                          const triggerId = getIdByName('Büro Rollo links');
                          

                          das Resultat

                          ['tradfri.0.B-65542','alexa2.0.Smart-Home-Devices.280d2f90-4dc8-4474-9e5d-ca221f8fdfdb']
                          

                          De facto möchte ich aber nur den ersten Datenpunkt nutzen. Den würde mir ja dann

                          triggerId[0]
                          

                          liefern, aber wie kann ich sicherstellen, dass ich immer auf den Datenpunkt "tradfri..." zurückgreife? Die Reihenfolge könnte sich ja auch mal ändern, oder?

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

                            @dtp

                            if(triggerId[0].startsWith('tradfri')) id = triggerId[0];
                            else id = triggerId[1]
                            
                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            900
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            6
                            15
                            1152
                            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