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.
    • T
      TT-Tom @mickym last edited by TT-Tom

      @mickym es kann auch mit dem selector funktionieren, also ohne JS

      Bildschirmfoto 2023-04-16 um 18.06.08.png

      ['0_userdata.0.Abfallkalender.1.color','0_userdata.0.Abfallkalender.2.color','0_userdata.0.Abfallkalender.3.color','0_userdata.0.Abfallkalender.4.color']
      

      @paddy2 möchtest du alle Fenster Sensoren auslesen, sehe ich das richtig?

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

                              796
                              Online

                              32.0k
                              Users

                              80.4k
                              Topics

                              1.3m
                              Posts

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