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.
    • J
      jensven last edited by jensven

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

      Ich möchte alle meine Bewegungsdatenpunkte checken ob diese auf False stehen.
      Habe nun unter Aufzählung unter Functions die Kategorie "Bewegung" erstellt.
      Name: Bewegung
      Id bearbeiten: enmu_1 ( Standart ?)
      Hier habe ich dann alle Datenpunkte "presence" von den Sensoren reingepackt. Aber mit dem Blockly komm ich nun nicht weiter.
      Wie checke ich nun ob alle Datenpunkte auf false stehen? geht das überhaupt so?

      David G. Homoran 2 Replies Last reply Reply Quote 0
      • 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

                                753
                                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