Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Erldigt/Erklärt] IDs vom Selektor erklären...

    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

    [Erldigt/Erklärt] IDs vom Selektor erklären...

    This topic has been deleted. Only users with topic management privileges can see it.
    • David G.
      David G. @jensven last edited by David G.

      @jensven
      Am besten erstellt man anhand des Selektors eine Liste.
      Dann kann man das schön in einer Schleife zählen.
      Schaue grad mal, ob ich ein Beispiel von mir finde.

      EDIT:
      So zähle ich die Personen im Haushalt.
      Kann man ja eigentlich 1 zu 1 übertragen.
      Zähle eben ob der Wert "wahr" ist, musst bei der Bedienung einfach ein "nicht" rein machen, dann zählst du "false".

      Screenshot_20220325-101407_Chrome.jpg

      <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="VcPB}Mo,3;h?eFz5y3,9" x="12" y="188">
       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
       <field name="CONDITION">ne</field>
       <field name="ACK_CONDITION"></field>
       <value name="OID0">
         <shadow type="field_oid" id="D;~M|o)V,v~OJvu0z0*K">
           <field name="oid">default</field>
         </shadow>
         <block type="selector" id="dyB#r/MInVq,!oc3*~k:">
           <field name="TEXT">state[id=*](functions='person_anwesend')</field>
         </block>
       </value>
       <statement name="STATEMENT">
         <block type="variables_set" id="a-#j-C+dG39,;X9gc6~=">
           <field name="VAR" id="C+A8~N.7^hJE`LW7BTpW">zaehlen</field>
           <value name="VALUE">
             <block type="math_number" id=";}$}:oih~#:O4JFunr[3">
               <field name="NUM">0</field>
             </block>
           </value>
           <next>
             <block type="controls_forEach" id="Fk!M(04z(({2UHJ(9r%9">
               <field name="VAR" id="Pz{lULKJJMW5!LQk;3$g">i</field>
               <value name="LIST">
                 <block type="selector" id="?W-pDE84bSVxnrY-93P{">
                   <field name="TEXT">state[id=*](functions='person_anwesend')</field>
                 </block>
               </value>
               <statement name="DO">
                 <block type="controls_if" id="(nx#hiTP5}sd#}9c}y(=">
                   <value name="IF0">
                     <block type="get_value_var" id="n5em6T8A~*z^`:J!/*jw">
                       <field name="ATTR">val</field>
                       <value name="OID">
                         <shadow type="text" id="D;rQK7@5BeoZ!{J9^QVU">
                           <field name="TEXT"></field>
                         </shadow>
                         <block type="variables_get" id="k|;8sOR/EatWK!MAW~cu">
                           <field name="VAR" id="Pz{lULKJJMW5!LQk;3$g">i</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="math_change" id="d=gM][C,2MsRZ,]D-/uo">
                       <field name="VAR" id="C+A8~N.7^hJE`LW7BTpW">zaehlen</field>
                       <value name="DELTA">
                         <shadow type="math_number" id="8_O9ZG7]Eaj;OpS)_+Ow">
                           <field name="NUM">1</field>
                         </shadow>
                         <block type="math_number" id=",N;;dtXG4gen(p:^#0xk">
                           <field name="NUM">1</field>
                         </block>
                       </value>
                     </block>
                   </statement>
                 </block>
               </statement>
               <next>
                 <block type="control" id="||DEM*2rLOKMq!wH+3?R">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">0_userdata.0.Anwesenheit.Anzahl_Personen_Home_Ping_Fence</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="variables_get" id="GA2F[@3~U08EwQSD5|p-">
                       <field name="VAR" id="C+A8~N.7^hJE`LW7BTpW">zaehlen</field>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
           </next>
         </block>
       </statement>
      </block>
      

      1 Reply Last reply Reply Quote 1
      • arteck
        arteck Developer Most Active last edited by

        guckstdu

        https://forum.iobroker.net/topic/53641/frage-zu-schleifen-und-listen/4?_=1648192032014

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @jensven last edited by

          @jensven sagte in IDs vom Selektor erklären...:

          hoffe ich bin mit der Frage hier richtig anstatt im Blockly Unterforum

          frage ich mich gerade auch.

          Arbeiten mit einem Selector ist für mich nicht unbedingt Einsteigerniveau.

          1 Reply Last reply Reply Quote 0
          • J
            jensven last edited by

            danke für die schnelle anregungen/hilfen
            @Homoran vllt. dann doch lieber in Blockly verschieben?

            @arteck @David-G

            einmal sehe ich

            channel[state.id=...]
            

            und einmal

            state[id=*]functions='.....')
            

            was ist da der unterschied?

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

              @jensven

              Wenn ich mich nicht irre (verbessert mich), werden einmal die Funktionen abgefragt ( wie in meinem Beispiel oder wie du es vor hast).

              Im anderen Beispiel im Link wird direkt der Pfad zu den Datenpunkten (mit einem * als Platzhalter) angegeben.
              Das macht zB Sinn, wenn du von allen Homatic Geräten den Batteriestatus abfragen willst. Dann gibst du den Pfad zum Akkudatenpunkt an und beim Gerät ein *.
              zB

              hm-rpc.0.*.0.LOW_BAT
              

              So findet er den LOW_BAT von allen Geräten.

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

                @david-g
                verstehe ich das richtig dass ich dann mit

                channel[state.id=precense]
                

                alle Datenpunkte "precense" in meiner Datenbank durchsuche und nicht in der von mir erstellten Aufzählung

                und mit

                state[id=*]functions='Bewegung')
                

                werden nur die Datenpunkten abgefragt die ich auch in dieser Aufzählung drinne habe?

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

                  @jensven

                  Genau.
                  Wobei "alle" relativ ist. Eben unter dem Pfad den du angegeben hast.
                  Ob man da einfach nur *.precense eingeben kann und er das überall findet weiß ich nicht. Müsste man testen.

                  1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active last edited by dslraser

                    ich habe das z.B. so (für eine Aufzählung)

                    9460804B-5DB4-415C-B17A-F4FB876E3059.jpeg

                    9CFE3725-F457-4A47-8141-B6A28D032224.jpeg

                    wobei die Schreibweise (groß/klein) übereinstimmen muss. (der Teil hinter enum.functions. ist der gesuchte)

                    1 Reply Last reply Reply Quote 0
                    • J
                      jensven last edited by jensven

                      Ich habe jetzt mal folgendes versucht:
                      state[id].jpg
                      functions.jpg
                      Aber es kam nie zu nem debug output.
                      Hab natürlich nen sensor zum auslösen jedes mal gebracht.

                      ich hab das ja so richtig gemacht oder?
                      Die direkten datenpunkte von precense rein gemacht
                      aufzaehlung.jpg

                      paul53 David G. N 3 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @jensven last edited by paul53

                        @jensven sagte: es kam nie zu nem debug output.

                        Javascript-Instanz neu starten.
                        Im ersten Fall ist im Trigger ein Hochkomma zu viel oder zu wenig.

                        *.presence(functions=bewegung_alle)
                        
                        J 1 Reply Last reply Reply Quote 1
                        • David G.
                          David G. @jensven last edited by

                          @jensven

                          Und beim oberen Trigger fehlt ein Anführungszeichen oder?

                          1 Reply Last reply Reply Quote 0
                          • N
                            Nordischerjung @jensven last edited by Nordischerjung

                            @jensven war quatsch von mir

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

                              @paul53
                              das mit dem

                              *.
                              

                              war es dann. Ich hatte ja die ganze Zeit

                              id=presence
                              

                              drinnen stehen (c und s hatte ich dabei auch vertauscht)

                              Unbenannt.jpg

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              879
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              7
                              14
                              928
                              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