Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. mehrere unterschiedliche trigger auf ein Script?

    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

    mehrere unterschiedliche trigger auf ein Script?

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      chrbo80 last edited by

      Hi und einen schönen Sonntag!

      Ich habe ein Schalter-Script inkl. "Dimmer-Funktion" und nutze es, wie im blockly zu sehen ist, durch den Trigger des HMIP-Schalters. Wie kann ich das Script denn auch durch einen anderen Trigger (Bspw. durch das Schalten eines DP durch den iot-Adapter) ausführenlassen? Es sollte eine "Oder-Verknüpfung" sein, also entweder der Schalter oder der andere Trigger...

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <block type="on_ext" id="kdSs+KBTzLI=m)DV7yas" x="-237" y="37">
          <mutation items="1"></mutation>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id=")aV5)-~fe4J(r@_b@nO3">
              <field name="oid">hm-rpc.1.0019DA499FC935.1.PRESS_SHORT</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="51}(lu?^Z).k^gT-e4%L">
              <mutation else="1"></mutation>
              <value name="IF0">
                <block type="logic_compare" id="Dk$Wb@MY{YbvL9jXOq41">
                  <field name="OP">GT</field>
                  <value name="A">
                    <block type="get_value" id=":7WjN_`;VkomE,kPXhos">
                      <field name="ATTR">val</field>
                      <field name="OID">hue.0.Esstischlampe1.bri</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="i}JB23OXwrWax?1ByUiO">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id=")qsw+j;m02Cx`6-.=v#x">
                  <mutation delay_input="false"></mutation>
                  <field name="OID">hue.0.Esstischlampe1.bri</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_arithmetic" id=".(6tEl[fEMmc2;uR_cu;">
                      <field name="OP">ADD</field>
                      <value name="A">
                        <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                          <field name="NUM">1</field>
                        </shadow>
                        <block type="get_value" id="r7fv+$E~EO:yy=Y:Gl+H">
                          <field name="ATTR">val</field>
                          <field name="OID">hue.0.Esstischlampe1.bri</field>
                        </block>
                      </value>
                      <value name="B">
                        <shadow type="math_number" id="%8//^ClBW7h%dWv_*bRA">
                          <field name="NUM">30</field>
                        </shadow>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="p7ZZ_M03i7p;|500~H$T">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">hue.0.Esstischlampe2.bri</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="math_arithmetic" id="U}7ix%(B)|NLvo2TTlRk">
                          <field name="OP">ADD</field>
                          <value name="A">
                            <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="get_value" id="16byNH$fc*/vviXwWV0C">
                              <field name="ATTR">val</field>
                              <field name="OID">hue.0.Esstischlampe2.bri</field>
                            </block>
                          </value>
                          <value name="B">
                            <shadow type="math_number" id="GojfgI8Z(Z?CuPX(_`ys">
                              <field name="NUM">30</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="G7*E9`z(`h5GD.}@2ZR[">
                          <mutation delay_input="false"></mutation>
                          <field name="OID">hue.0.Esstischlampe3.bri</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="math_arithmetic" id="Y@;](Mp4tPbNveLj{,[8">
                              <field name="OP">ADD</field>
                              <value name="A">
                                <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="get_value" id="NiDu(mxc{bGew7y?hLmP">
                                  <field name="ATTR">val</field>
                                  <field name="OID">hue.0.Esstischlampe3.bri</field>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id=")J:ZVISU+M/JZVC=7J`u">
                                  <field name="NUM">30</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <statement name="ELSE">
                <block type="control" id="!-yaP26!u$fXuo|v[qc[">
                  <mutation delay_input="false"></mutation>
                  <field name="OID">hue.0.Esstischlampe1.bri</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id=".B/QgrHrD_z7F`Q%(y@m">
                      <field name="NUM">120</field>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="3:[sV_o`hS8)Ns^UKRHN">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">hue.0.Esstischlampe2.bri</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="math_number" id="%;olqmuLv(`9)45)u,e[">
                          <field name="NUM">120</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="wUS]3Fau83KiDpV{%}F(">
                          <mutation delay_input="false"></mutation>
                          <field name="OID">hue.0.Esstischlampe3.bri</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="math_number" id="a}WEnQsN#:64Md7{nQ|M">
                              <field name="NUM">120</field>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
          <next>
            <block type="on_ext" id="G^vD[|JHzMJ@)M${vk]G">
              <mutation items="1"></mutation>
              <field name="CONDITION">any</field>
              <field name="ACK_CONDITION"></field>
              <value name="OID0">
                <shadow type="field_oid" id="Y#p$Ygtew!PoJ|+BHnqE">
                  <field name="oid">hm-rpc.1.0019DA499FC935.2.PRESS_SHORT</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="control" id="hLCv86U=!1TpXIzp`SDZ">
                  <mutation delay_input="false"></mutation>
                  <field name="OID">hue.0.Esstischlampe1.bri</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_arithmetic" id="n8teKo?W{;QDg4B.(_HX">
                      <field name="OP">MINUS</field>
                      <value name="A">
                        <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                          <field name="NUM">1</field>
                        </shadow>
                        <block type="get_value" id="`ZCeP]|;!DOW%hTKGo{Z">
                          <field name="ATTR">val</field>
                          <field name="OID">hue.0.Esstischlampe1.bri</field>
                        </block>
                      </value>
                      <value name="B">
                        <shadow type="math_number" id="z4h1VBGCDElJ-{H_DXU-">
                          <field name="NUM">30</field>
                        </shadow>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="j}s(c3V^bEq^zB8@=mQ]">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">hue.0.Esstischlampe2.bri</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="math_arithmetic" id="2K.28rNk67Q0U?*HvBxc">
                          <field name="OP">MINUS</field>
                          <value name="A">
                            <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                              <field name="NUM">1</field>
                            </shadow>
                            <block type="get_value" id="QbXFrd4e[;e)wGYLkb.V">
                              <field name="ATTR">val</field>
                              <field name="OID">hue.0.Esstischlampe2.bri</field>
                            </block>
                          </value>
                          <value name="B">
                            <shadow type="math_number" id="6oa$q^TB%uX3DS0!p[Kg">
                              <field name="NUM">30</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="SOSC:~UL$P,@m%N)U-+m">
                          <mutation delay_input="false"></mutation>
                          <field name="OID">hue.0.Esstischlampe3.bri</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="math_arithmetic" id="--$Y1$9Vc$Es1$Hvsyf$">
                              <field name="OP">MINUS</field>
                              <value name="A">
                                <shadow type="math_number" id="zW=xkdj%k%!ZW?+c=qR9">
                                  <field name="NUM">1</field>
                                </shadow>
                                <block type="get_value" id="Z=iev|-dRN8teVsd;(38">
                                  <field name="ATTR">val</field>
                                  <field name="OID">hue.0.Esstischlampe3.bri</field>
                                </block>
                              </value>
                              <value name="B">
                                <shadow type="math_number" id="]r2GvXzKv%(7#X#roljv">
                                  <field name="NUM">30</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="on_ext" id="2nW6!Bt7H%aX`!`f!lI|">
                  <mutation items="1"></mutation>
                  <field name="CONDITION">any</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="CeEY;s{wFVSfK7!lHGyp">
                      <field name="oid">hm-rpc.1.0019DA499FC935.2.PRESS_LONG</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="control" id="V;0IG;WE;7Gw|Lt+V0Hs">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">hue.0.Esstischlampe1.on</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="nfd/DnM`~poW$b;CnJ@^">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="`.t6ET2O@G;%0+H(JPm%">
                          <mutation delay_input="false"></mutation>
                          <field name="OID">hue.0.Esstischlampe2.on</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="YIUi+bbbfz}=g:.C*5l|">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="6e5RK}Gn5={X{l~mix!Q">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">hue.0.Esstischlampe3.on</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="i**C*-]Q.M^[#B~sdk{i">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      

      Bildschirmfoto 2020-02-16 um 08.49.32.png

      DANKE!

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

        @chrbo80 sagte in mehrere unterschiedliche trigger auf ein Script?:

        Es sollte eine "Oder-Verknüpfung" sein, also entweder der Schalter oder der andere Trigger...

        Klick mal auf das Zahnrad

        C 1 Reply Last reply Reply Quote 0
        • C
          chrbo80 @Homoran last edited by

          @Homoran und wenn ich dann noch unterschiedliche Bedingungen in Bezug auf den trigger habe? Dann 2 falls Bedingungen darunter?

          C 1 Reply Last reply Reply Quote 0
          • C
            chrbo80 @chrbo80 last edited by

            @chrbo80 also ich meine unterschiedliche falls Bedingungen je nach trigger...

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

              @chrbo80 oder ein falls und ein sonstfalls
              falls sich da keine Wünsche überschneiden

              C 1 Reply Last reply Reply Quote 0
              • C
                chrbo80 @Homoran last edited by

                @Homoran kannst du mir mal ein beispiel zeigen? in meinem Beispiel würden die beiden Trigger so aussehen:

                Bildschirmfoto 2020-02-16 um 19.41.10.png

                Dann bräuchte ich aber für den "Alexa-Trigger" eine Bedienung bspw. auf einen DP, damit genau dieses Script ausgeführt wird. Diese bräuchte ich ja beim Schalter-Trigger nicht. Wie bekomme ich das in ein Script?

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

                  @chrbo80 sagte in mehrere unterschiedliche trigger auf ein Script?:

                  Dann bräuchte ich aber für den "Alexa-Trigger" eine Bedienung bspw. auf einen DP, damit genau dieses Script ausgeführt wird. Diese bräuchte ich ja beim Schalter-Trigger nicht. Wie bekomme ich das in ein Script?

                  Du hast doch einen trigger den Du für Alexa nutzen kannst, Deinen PRESS_SHORT. Den kannst Du in iot verwenden, genau als wenn Du den PRESS_SHORT von Hand drückst. Was soll ECHO DEVICE NAME da als trigger machen ?

                  C 3 Replies Last reply Reply Quote 0
                  • C
                    chrbo80 @dslraser last edited by

                    @dslraser ich würde ins script, wenn ich das nur für alexa nutzen würde, bspw. noch eine fals bedingung auf einen DP setzen, damit das nur ausgeführt wird, wenn zum einen Alexa gerufen würde (dann aktualisiert sich der name) und zum anderen der entsprechende DP durch den iot adapter getriggert wurde. wie sieht das dann zusammen mit meinem Schaltertrigger in einem blockly aus?

                    1 Reply Last reply Reply Quote 0
                    • C
                      chrbo80 @dslraser last edited by

                      @dslraser said in mehrere unterschiedliche trigger auf ein Script?:

                      @chrbo80 sagte in mehrere unterschiedliche trigger auf ein Script?:

                      Dann bräuchte ich aber für den "Alexa-Trigger" eine Bedienung bspw. auf einen DP, damit genau dieses Script ausgeführt wird. Diese bräuchte ich ja beim Schalter-Trigger nicht. Wie bekomme ich das in ein Script?

                      Du hast doch einen trigger den Du für Alexa nutzen kannst, Deinen PRESS_SHORT. Den kannst Du in iot verwenden, genau als wenn Du den PRESS_SHORT von Hand drückst. Was soll ECHO DEVICE NAME da als trigger machen ?

                      sorry, dass habe ich jetzt grade erst gerafft! soweit habe ich nicht gedacht und das werde ich probieren...! Danke

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

                        @chrbo80
                        es kann sein, das Dich iot anmeckert und Du den PRESS_SHORT nicht über iot eingefügt bekommst, dann kannst/musst Du es über den RAW von diesem DP manuell einfügen. Falls Du nicht weißt wie, dann melde Dich nochmal.

                        1 Reply Last reply Reply Quote 1
                        • C
                          chrbo80 last edited by

                          TOP - Dank Dir!

                          1 Reply Last reply Reply Quote 0
                          • C
                            chrbo80 @dslraser last edited by

                            @dslraser said in mehrere unterschiedliche trigger auf ein Script?:

                            @chrbo80 sagte in mehrere unterschiedliche trigger auf ein Script?:

                            Dann bräuchte ich aber für den "Alexa-Trigger" eine Bedienung bspw. auf einen DP, damit genau dieses Script ausgeführt wird. Diese bräuchte ich ja beim Schalter-Trigger nicht. Wie bekomme ich das in ein Script?

                            Du hast doch einen trigger den Du für Alexa nutzen kannst, Deinen PRESS_SHORT. Den kannst Du in iot verwenden, genau als wenn Du den PRESS_SHORT von Hand drückst. Was soll ECHO DEVICE NAME da als trigger machen ?

                            Wenn ich über die Objekte manuell den DP des Schalters schalten will, kommt folgender Log:

                            Bildschirmfoto 2020-02-16 um 20.11.12.png

                            Was soll das?

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

                              @chrbo80

                              habe ich auch, es wird zwar ausgeführt, aber der Fehler ist nicht okay. Dann mache es doch über einen eigenen Button.
                              Wo hast Du Deine eigenen Datenpunkte, unter javascript.x oder unter 0_userdata.0 ?

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                chrbo80 @dslraser last edited by

                                @dslraser said in mehrere unterschiedliche trigger auf ein Script?:

                                @chrbo80

                                habe ich auch, es wird zwar ausgeführt, aber der Fehler ist nicht okay. Dann mache es doch über einen eigenen Button.
                                Wo hast Du Deine eigenen Datenpunkte, unter javascript.x oder unter 0_userdata.0 ?

                                Userdata

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

                                  @chrbo80

                                  Ich erstelle Datenpunkte mit einen Script von Mic. Wenn Du in die Funktion rein klickst, dann kannst Du ab Zeile 116 den Datenpunkt ändern.
                                  So würde der DP jetzt angelegt

                                  ['Alexa.Button.Licht_dimmen', {'name': 'Licht Dimmen','type': 'boolean', 'read': true, 'write': true, 'role': 'button','def':false, "smartName": {"de": "Esstischlampe Dimmer","smartType": "SWITCH"} }],
                                  

                                  Da </> drauf klicken zum änder ab Zeile 116

                                  Bildschirmfoto 2020-02-16 um 20.43.12.png

                                  Der SmartName ist da auch drinn und wird dann automatisch so wie im Script angegeben in iot eingefügt. Du mußt nur einmal anschließend iot öffnen und schauen ob der DP da ist und dann einmal über den Sprachbefehl: Alexa, suche neue Geräte diesen neuen DP suchen lassen. Anschließend kannst Du den als zweiten Trigger in Dein Blockly von oben einfügen. Dann sollte, wenn Du den so wie hier angegeben verwenden würdest, mit: Alexa, Esstischlampe Dimmer an, das Blockly ausgeführt werden.

                                  <xml xmlns="http://www.w3.org/1999/xhtml">
                                   <block type="procedures_defcustomnoreturn" id="Q6*2#9#;FNeNnQsQ=FO*" x="12" y="63">
                                     <mutation statements="false"></mutation>
                                     <field name="NAME">Datenpunkte_anlegen</field>
                                     <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjAgKDE3IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZToKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgICAgICBbJ1Rlc3QuVGVzdDEnLCB7J25hbWUnOidUZXN0IDEnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonaW5mbycsICdkZWYnOidIZWxsbycgfV0sCiAgICAgICAgWydUZXN0LlRlc3QyJywgeyduYW1lJzonVGVzdCAyJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J2luZm8nLCAnZGVmJzonSGVsbG8nIH1dLAogICAgXTsKICAgIGNyZWF0ZVVzZXJTdGF0ZXMoJzBfdXNlcmRhdGEuMCcsIGZhbHNlLCBzdGF0ZXNUb0NyZWF0ZSk7CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiBlLmcuICcwX3VzZXJkYXRhLjAnIG9yICdqYXZhc2NyaXB0LngnLgogKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNlICAgICAgICAgRm9yY2Ugc3RhdGUgY3JlYXRpb24gKG92ZXJ3cml0ZSksIGlmIHN0YXRlIGlzIGV4aXN0aW5nLgogKiBAcGFyYW0ge2FycmF5fSBzdGF0ZXNUb0NyZWF0ZSAgU3RhdGUocykgdG8gY3JlYXRlLiBzaW5nbGUgYXJyYXkgb3IgYXJyYXkgb2YgYXJyYXlzCiAqIEBwYXJhbSB7b2JqZWN0fSBbY2FsbGJhY2tdICAgICBPcHRpb25hbDogYSBjYWxsYmFjayBmdW5jdGlvbiAtLSBUaGlzIHByb3ZpZGVkIGZ1bmN0aW9uIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgYWxsIHN0YXRlcyBhcmUgY3JlYXRlZC4KICovCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICAvLyBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKQoKCiAgICAvLyBWYWxpZGF0ZSAid2hlcmUiCiAgICBpZiAod2hlcmUuZW5kc1dpdGgoJy4nKSkgd2hlcmUgPSB3aGVyZS5zbGljZSgwLCAtMSk7IC8vIFJlbW92ZSB0cmFpbGluZyBkb3QKICAgIGlmICggKHdoZXJlLm1hdGNoKC9eamF2YXNjcmlwdC4oWzAtOV18WzEtOV1bMC05XSkkLykgPT0gbnVsbCkgJiYgKHdoZXJlLm1hdGNoKC9eMF91c2VyZGF0YS4wJC8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgIGxldCBjb3VudGVyID0gLTE7CiAgICBzdGF0ZXNUb0NyZWF0ZS5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtKSB7CiAgICAgICAgY291bnRlciArPSAxOwogICAgICAgIGlmIChMT0dfREVCVUcpIGxvZyAoJ1tEZWJ1Z10gQ3VycmVudGx5IHByb2Nlc3NpbmcgZm9sbG93aW5nIHN0YXRlOiBbJyArIHBhcmFtWzBdICsgJ10nKTsKCiAgICAgICAgLy8gQ2xlYW4KICAgICAgICBsZXQgc3RhdGVJZCA9IHBhcmFtWzBdOwogICAgICAgIGlmICghIHN0YXRlSWQuc3RhcnRzV2l0aCh3aGVyZSkpIHN0YXRlSWQgPSB3aGVyZSArICcuJyArIHN0YXRlSWQ7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVJZCA9IHN0YXRlSWQucmVwbGFjZSgvXC4qXC4vZywgJy4nKTsgLy8gcmVwbGFjZSBhbGwgbXVsdGlwbGUgZG90cyBsaWtlICcuLicsICcuLi4nIHdpdGggYSBzaW5nbGUgJy4nCiAgICAgICAgY29uc3QgRlVMTF9TVEFURV9JRCA9IHN0YXRlSWQ7CgogICAgICAgIGlmKCAoJChGVUxMX1NUQVRFX0lEKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUoRlVMTF9TVEFURV9JRCkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICBpZiAoV0FSTiAmJiAhZm9yY2UpIGxvZygnU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICBpZiAoIVdBUk4gJiYgTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gU3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwoKICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBleGlzdHMgYW5kIHNoYWxsIG5vdCBiZSBvdmVyd3JpdHRlbiBzaW5jZSBmb3JjZT1mYWxzZQogICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB3YXMgcHJvdmlkZWQsIHdoaWNoIHdlIGFyZSBnb2luZyB0byBleGVjdXRlIG5vdy4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIG91dCBhbmQgY29udGludWUgd2l0aCBuZXh0IGVsZW1lbnQgaW4gbG9vcC4KICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gLy8gaWYoIWZvcmNlKQogICAgICAgIH0KCiAgICAgICAgLyoqKioqKioqKioqKgogICAgICAgICAqIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgKioqKioqKioqKioqLwogICAgICAgIGxldCBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIG9iai5jb21tb24gPSBwYXJhbVsxXTsKICAgICAgICBzZXRPYmplY3QoRlVMTF9TVEFURV9JRCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdCBmb3Igc3RhdGUgWycgKyBGVUxMX1NUQVRFX0lEICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgRlVMTF9TVEFURV9JRCArICddJykKICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGlmKHBhcmFtWzFdLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJyc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGluaXQgPSBwYXJhbVsxXS5kZWY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHNldFN0YXRlKEZVTExfU1RBVEVfSUQsIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gc2V0U3RhdGUgZHVyY2hnZWbDvGhydDogJyArIEZVTExfU1RBVEVfSUQpOwogICAgICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0sIERFTEFZICsgKDIwICogY291bnRlcikgKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7Cn0KCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIFsnQWxleGEuQnV0dG9uLkxpY2h0X2RpbW1lbicsIHsnbmFtZSc6ICdMaWNodCBEaW1tZW4nLCd0eXBlJzogJ2Jvb2xlYW4nLCAncmVhZCc6IHRydWUsICd3cml0ZSc6IHRydWUsICdyb2xlJzogJ2J1dHRvbicsJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVzc3Rpc2NobGFtcGUgRGltbWVyIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKCl07ICAgIApjcmVhdGVVc2VyU3RhdGVzKCcwX3VzZXJkYXRhLjAnLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUpOw==</field>
                                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                   </block>
                                   <block type="procedures_callcustomnoreturn" id=")mkV#y*GjLhBQ@,dfLM`" x="13" y="112">
                                     <mutation name="Datenpunkte_anlegen"></mutation>
                                   </block>
                                  </xml>
                                  

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  863
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  blockly javascript
                                  3
                                  15
                                  540
                                  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