Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Objektname auslesen und verwenden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Objektname auslesen und verwenden

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 6 Kommentatoren 1.6k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    @paddy2

    61abb901-cb72-472f-a5f8-e3da1a68206b-image.png

    <xml xmlns="https://developers.google.com/blockly/xml">
     <variables>
       <variable id="pBM:8|laUGVyq6c-GrwF">Name</variable>
       <variable id="9@uh!fqKlne*byXEY!sG">id</variable>
     </variables>
     <block type="procedures_defcustomreturn" id="8vJeR!X(G$*Th=G=z]$/" x="88" y="63">
       <mutation statements="false">
         <arg name="Name" varid="pBM:8|laUGVyq6c-GrwF"></arg>
       </mutation>
       <field name="NAME">id_ermitteln</field>
       <field name="SCRIPT">bGV0IG5hbWUgPSBOYW1lOw0KcmV0dXJuIGdldElkQnlOYW1lKG5hbWUpOw==</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
     </block>
     <block type="variables_set" id="24)W}h7ok`3(i{ceJ~w?" x="87" y="142">
       <field name="VAR" id="9@uh!fqKlne*byXEY!sG">id</field>
       <value name="VALUE">
         <block type="procedures_callcustomreturn" id="J7j3Zw}O)k)*vaoOD.}#">
           <mutation name="id_ermitteln">
             <arg name="Name"></arg>
           </mutation>
           <value name="ARG0">
             <block type="text" id="v**3R5VM^3@G!Q7T]|~5">
               <field name="TEXT">sensor2</field>
             </block>
           </value>
         </block>
       </value>
       <next>
         <block type="controls_if" id="|s[}%u[~5Szx=Fqb,eF:">
           <mutation else="1"></mutation>
           <value name="IF0">
             <block type="logic_compare" id="}6X5-xz$btn9(jVnCOcl">
               <field name="OP">EQ</field>
               <value name="A">
                 <block type="convert_type" id="|qG#[-i}|EG}X,+?^04S">
                   <value name="ITEM">
                     <block type="variables_get" id="T!{D;o72N/*E|XBD1~ZH">
                       <field name="VAR" id="9@uh!fqKlne*byXEY!sG">id</field>
                     </block>
                   </value>
                 </block>
               </value>
               <value name="B">
                 <block type="text" id="i[(qLi+;^wBlzBQwz%AX">
                   <field name="TEXT">string</field>
                 </block>
               </value>
             </block>
           </value>
           <statement name="DO0">
             <block type="debug" id="2dlP5u,(OxXxN#-PS;R4">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="*{$%Ub$X}]N.O[,R]kj!">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="variables_get" id="(sIAf1srX4YX?nSFV{5]">
                   <field name="VAR" id="9@uh!fqKlne*byXEY!sG">id</field>
                 </block>
               </value>
               <next>
                 <block type="debug" id="[3:QVi?yvekLE0Sv*Va?">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="iw6s7=lPn~XDT3|}m3]y">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="lists_getIndex" id="FNOJeG:SBV8s|.ej}Q8l">
                       <mutation statement="false" at="true"></mutation>
                       <field name="MODE">GET</field>
                       <field name="WHERE">FROM_END</field>
                       <value name="VALUE">
                         <block type="lists_split" id=",A;$H;q#mO8fPWfYj]|s">
                           <mutation mode="SPLIT"></mutation>
                           <field name="MODE">SPLIT</field>
                           <value name="INPUT">
                             <block type="variables_get" id="Blr!s_84@6Bk:[W({JIs">
                               <field name="VAR" id="9@uh!fqKlne*byXEY!sG">id</field>
                             </block>
                           </value>
                           <value name="DELIM">
                             <shadow type="text" id="EADE?0$={#eQz1ZF^A{(">
                               <field name="TEXT">.</field>
                             </shadow>
                           </value>
                         </block>
                       </value>
                       <value name="AT">
                         <block type="math_number" id="~S(^jc)YbP0UzX.$2)Z4">
                           <field name="NUM">2</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </statement>
           <statement name="ELSE">
             <block type="debug" id="T!)U.dPfnBv=.EIUoivE">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id="^}qOVYb0$$WpynK4elT]">
                   <field name="TEXT">Name nicht eindeutig oder nicht vorhanden!</field>
                 </shadow>
               </value>
             </block>
           </statement>
         </block>
       </next>
     </block>
    </xml>
    

    Ohne JS kommst Du bei den Puzzle Dingern nicht aus. Wenn es nicht eindeutig ist, gibts ein Array mit allen Objekt-IDs zurück, deswegen die Typ-Prüfung.

    Wenn Du also statt sensor2 - den Namen eingibst, sollte es wenn es eindeutig ist, funktionieren. Den Wert statt in das Log in einen Datenpunkt zu schreiben, sollte ja kein Problem sein.

    T Offline
    T Offline
    TT-Tom
    schrieb am zuletzt editiert von TT-Tom
    #3

    @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?

    Gruß Tom
    https://github.com/tt-tom17
    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

    NSPanel Script Wiki
    https://github.com/joBr99/nspanel-lovelace-ui/wiki

    NSPanel Adapter Wiki
    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

    mickymM 1 Antwort Letzte Antwort
    0
    • T 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?

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #4

      @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.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      T 1 Antwort Letzte Antwort
      1
      • mickymM 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 Offline
        T Offline
        TT-Tom
        schrieb am zuletzt editiert von
        #5

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

        Gruß Tom
        https://github.com/tt-tom17
        Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

        NSPanel Script Wiki
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        NSPanel Adapter Wiki
        https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

        1 Antwort Letzte Antwort
        0
        • P paddy2

          Hallo zusammen

          Ich hoffe jemand hat eine gute Variante um folgendes umzusetzen:

          Ich möchte mittels Blockly ein Objektname (übergeordneter Name) auslesen und anschliessend den Wert in einem Datenpunkt setzen.

          Hat jemand eine gutes Blockly um lediglich den Namen als Wert auszulesen?

          Freue mich auf eure Lösungen und besten Dank.

          Grüsse
          Paddy

          d4e43354-bc08-4b52-9bc1-6d62119604b8-image.png

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          @paddy2 sagte: den Namen als Wert auszulesen?

          JS-Funktion mit Ergebnis: parentName(id)

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          mickymM 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @paddy2 sagte: den Namen als Wert auszulesen?

            JS-Funktion mit Ergebnis: parentName(id)

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #7

            @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.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            David G.D 1 Antwort Letzte Antwort
            0
            • mickymM 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.D Online
              David G.D Online
              David G.
              schrieb am zuletzt editiert von David G.
              #8

              @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 ^^.

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              mickymM 1 Antwort Letzte Antwort
              0
              • David G.D 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 ^^.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #9

                @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.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  paddy2
                  schrieb am zuletzt editiert von
                  #10

                  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 Antwort Letzte Antwort
                  0
                  • P paddy2

                    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 Offline
                    T Offline
                    TT-Tom
                    schrieb am zuletzt editiert von TT-Tom
                    #11

                    @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.

                    Gruß Tom
                    https://github.com/tt-tom17
                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                    NSPanel Script Wiki
                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    NSPanel Adapter Wiki
                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                    1 Antwort Letzte Antwort
                    1
                    • P paddy2

                      Hallo zusammen

                      Ich hoffe jemand hat eine gute Variante um folgendes umzusetzen:

                      Ich möchte mittels Blockly ein Objektname (übergeordneter Name) auslesen und anschliessend den Wert in einem Datenpunkt setzen.

                      Hat jemand eine gutes Blockly um lediglich den Namen als Wert auszulesen?

                      Freue mich auf eure Lösungen und besten Dank.

                      Grüsse
                      Paddy

                      d4e43354-bc08-4b52-9bc1-6d62119604b8-image.png

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #12

                      @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

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      2
                      • P Offline
                        P Offline
                        paddy2
                        schrieb am zuletzt editiert von
                        #13

                        @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 Antwort Letzte Antwort
                        0
                        • P paddy2

                          @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 Offline
                          D Offline
                          dtp
                          schrieb am zuletzt editiert von dtp
                          #14

                          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?

                          ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • D 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?

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #15

                            @dtp

                            if(triggerId[0].startsWith('tradfri')) id = triggerId[0];
                            else id = triggerId[1]
                            

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            429

                            Online

                            32.6k

                            Benutzer

                            82.3k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe