Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Logikwert-Datenpunkt in IOT-Adapter

    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

    Logikwert-Datenpunkt in IOT-Adapter

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

      Hallo liebes Forum,

      vor einiger Zeit hatte ich schon Mal ein Thema eröffnet, worum es darin ging, wie man mit Alexa Abfragen machen kann über den Alexa 2.0 - Adapter. Dort wurde mir empfohlen, den IOT-Adapter zu wählen und am Besten dazu die Assistenz-Lizenz zu erwerben.

      Gemacht --> Getan!

      Nun habe ich Skripte erstellt, welche von Alexa getriggert werden sollen. Also ein Logikdatenpunkt erstellt, worauf ein Skript dann anfangen soll zu arbeiten. Ich möchte nun den Datenpunkt im IOT-Adapter hinterlegen und mir wird ständig eine Fehlermeldung ausgeworfen, dass dies nicht möglich sei!
      00b0f85c-8b8f-407d-8a83-e3e838b849c0-image.png

      Kann mir vielleicht jemand helfen, dass ich mit Alexa diesen Datenpunkt triggern kann?
      Vielen Dank schon Mal! Ich wünsche Euch einen guten Rutsch ins neue Jahr.

      Gruß
      Dennis

      dslraser 1 Reply Last reply Reply Quote 0
      • M
        Muchul last edited by Muchul

        Hallo,
        Stell mal den Datenpunkt so ein das er geschrieben werden darf.
        Unmittelbar danach in in den iot Adapter einfügen.

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

          @Scripthase
          wenn Du in den Objekten auf Deinen Datenpunkt gehst,(rechts das Bleistiftsymbol anklicken und dann wieder ganz recht in RAW, kannst Du das auch selbst einfügen. Geht eigentlich sogar schneller.
          Hier ein Beispiel:
          Bildschirmfoto 2019-12-31 um 19.10.15.png

          mit diesen Teil ergänzen, wobei Fensteransage in diesem Fall der smartName ist.

          ,
              "smartName": {
                "de": "Fensteransage",
                "smartType": "SWITCH"
              }
            },
          

          daraus wird dann in iot das hier (den smartType, hier im Beispiel = Switch, kannst Du auch direkt einstellen)

          Bildschirmfoto 2019-12-31 um 19.12.46.png

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

            @dslraser
            Vielen Dank für deine Antwort!
            Ich habe es Mal nach deinem Weg angewendet und es scheint zu funktionieren. Komisch! Wieso muss man es denn über diesen Weg machen? Mit der Berechtigung anpassen hat es nicht funktioniert, aber hier über das bisschen Code anpassen schon.

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

              @Scripthase
              warum das so ist kann ich Dir nicht sagen. Ich erstelle meine eigenen Datenpunkte alle per Script / Blockly und dabei füge ich dann nach Bedarf gleich den smartNamen und den Typ direkt mit ein.

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

                @dslraser
                Entschuldige, wenn ich so dumm frage... Wie erstellst Du deine Datenpunkte per Skript / Blockly?
                Ich erstelle die immer unter den Objekten.

                dslraser 2 Replies Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @Scripthase last edited by

                  @Scripthase sagte in Logikwert-Datenpunkt in IOT-Adapter:

                  @dslraser
                  Entschuldige, wenn ich so dumm frage... Wie erstellst Du deine Datenpunkte per Skript / Blockly?
                  Ich erstelle die immer unter den Objekten.

                  Hier mal ein Beispiel. (zwei Beispiele)
                  Hier wird in der ersten Funktion ein Datenpunkt erstellt unter Javascript.0
                  Im zweiten Beispiel unter 0_userdata.0 (das ist eine Vorlage von paul53 )

                  zum "umgestalten" der Datenpunkte einfach da </> rauf klicken und dann ändern.

                  Bildschirmfoto 2020-01-01 um 13.08.28.png

                  <xml xmlns="http://www.w3.org/1999/xhtml">
                   <block type="procedures_defcustomnoreturn" id="}`|TJu~h$I)LcxvN*p|[" x="13" y="13">
                     <mutation statements="false"></mutation>
                     <field name="NAME">Datenpunkt_im_Javascript_Ordner_anlegen</field>
                     <field name="SCRIPT">Ly9EYXRlbnB1bmt0IEJ1dHRvbiBmw7xyIEFuc2FnZSBlcnN0ZWxsZW4KY3JlYXRlU3RhdGUoIkVpZ2VuZV9EYXRlbnB1bmt0ZS4wMUFsZXhhMkFuc2FnZW4uQW5zYWdlbi5GZW5zdGVyYW5zYWdlIiwgewogICAgbmFtZTogJ0ZlbnN0ZXJhbnNhZ2UnLCAKICAgICJyb2xlIjogImJ1dHRvbiIsCiAgICAidHlwZSI6ICJidXR0b24iLAogICAgInJlYWQiOiBmYWxzZSwKICAgICJ3cml0ZSI6IHRydWUsCiAgICAic21hcnROYW1lIjogewogICAgImRlIjogIkZlbnN0ZXJhbnNhZ2UiLAogICAgInNtYXJ0VHlwZSI6ICJTV0lUQ0giCn0KfSk7</field>
                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                   </block>
                   <block type="procedures_callcustomnoreturn" id="Cs[B(f2xL,GNDwczSxmg" x="13" y="63">
                     <mutation name="Datenpunkt_im_Javascript_Ordner_anlegen"></mutation>
                   </block>
                   <block type="procedures_defcustomnoreturn" id="W*N4e![)YJVOn7OYX5n." x="13" y="113">
                     <mutation statements="false"></mutation>
                     <field name="NAME">Datenpunkt_in_0_userdata_anlegen</field>
                     <field name="SCRIPT">Ly8gRGF0ZW5wdW5rdCB1bnRlciAwX3VzZXJkYXRhLjAgZXJzdGVsbGVuCmNvbnN0IGRwMDAxID0gJzAxQWxleGEuQW5zYWdlbi5GZW5zdGVyYW5zYWdlJzsKY29uc3QgZHRwMDAxID0ge3R5cGU6ICdidXR0b24nLCByZWFkOiBmYWxzZSwgd3JpdGU6IHRydWUsIG5hbWU6ICdGZW5zdGVyYW5zYWdlJyxyb2xlOiAnYnV0dG9uJywic21hcnROYW1lIjogeyJkZSI6ICJGZW5zdGVyYW5zYWdlIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9fTsKIApmdW5jdGlvbiBjcmVhdGVEcDAwMShpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJ25vY2ggbGVlcic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaW5pdCA9IGNvbW1vbi5kZWY7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAwMSgnMF91c2VyZGF0YS4wLicgKyBkcDAwMSwgZHRwMDAxKTs=</field>
                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                   </block>
                   <block type="procedures_callcustomnoreturn" id="K|oI^L_Ms_x$zi}Ga}f!" x="13" y="163">
                     <mutation name="Datenpunkt_in_0_userdata_anlegen"></mutation>
                   </block>
                  </xml>
                  

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

                    @Scripthase
                    wenn es mehrere sind, dann nummeriere ich die einfach durch und erstelle die in einem einzigen Schritt. Wenn Du mal irgendetwas neu aufsetzen willst, dann sind alle Datenpunkte mit einem Klick wieder erstellt.

                    Beispiel: (kannst Du ja hinterher wieder löschen)

                    <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomnoreturn" id="|YOBZy0(J_8~^4VAn@z%" x="13" y="263">
                     <mutation statements="false"></mutation>
                     <field name="NAME">Datenpunkte_anlegen</field>
                     <field name="SCRIPT">Ly8jIyMjIyMjIyMjIyMjIyMjIyMjIy0tLUZlbnN0ZXIgQW56YWhsIGdla2lwcHQtZ2XDtmZmbmV0LWdlc2NobG9zc2VuLWdlc2FtdC0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjCgovLyBEYXRlbnB1bmt0IHVudGVyIDBfdXNlcmRhdGEuMCBlcnN0ZWxsZW4KY29uc3QgZHAwMDEgPSAnRmVuc3Rlcl96YWVobGVuLjAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnOwpjb25zdCBkdHAwMDEgPSB7dHlwZTogJ251bWJlcicsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzAxX0FuemFobF9GZW5zdGVyX2dla2lwcHQnLHJvbGU6ICdudW1iZXInfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAwMShpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJ25vY2ggbGVlcic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaW5pdCA9IGNvbW1vbi5kZWY7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge3NldFN0YXRlKGlkLCBpbml0LCB0cnVlKTt9LDEwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9Cn0KY3JlYXRlRHAwMDEoJzBfdXNlcmRhdGEuMC4nICsgZHAwMDEsIGR0cDAwMSk7CgovLyBEYXRlbnB1bmt0IHVudGVyIDBfdXNlcmRhdGEuMCBlcnN0ZWxsZW4KY29uc3QgZHAwMDIgPSAnRmVuc3Rlcl96YWVobGVuLjAyX0FuemFobF9GZW5zdGVyX29mZmVuJzsKY29uc3QgZHRwMDAyID0ge3R5cGU6ICdudW1iZXInLCByZWFkOiB0cnVlLCB3cml0ZTogZmFsc2UsIG5hbWU6ICcwMl9BbnphaGxfRmVuc3Rlcl9vZmZlbicscm9sZTogJ251bWJlcid9OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDAyKGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAwMignMF91c2VyZGF0YS4wLicgKyBkcDAwMiwgZHRwMDAyKTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAwMyA9ICdGZW5zdGVyX3phZWhsZW4uMDNfQW56YWhsX0ZlbnN0ZXJfZ2VzY2hsb3NzZW4nOwpjb25zdCBkdHAwMDMgPSB7dHlwZTogJ251bWJlcicsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzAzX0FuemFobF9GZW5zdGVyX2dlc2NobG9zc2VuJyxyb2xlOiAnbnVtYmVyJ307CiAKZnVuY3Rpb24gY3JlYXRlRHAwMDMoaWQsIGNvbW1vbikgewogICAgaWYoJChpZCkubGVuZ3RoKSBsb2coJ0RhdGVucHVua3QgJyArIGlkICsgJyBleGlzdGllcnQgYmVyZWl0cyAhJywgJ3dhcm4nKTsKICAgIGVsc2UgewogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLmNvbW1vbiA9IGNvbW1vbjsKICAgICAgICBvYmoubmF0aXZlID0ge307CiAgICAgICAgc2V0T2JqZWN0KGlkLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgaWYgKGVycikgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0OiAnICsgZXJyKQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKGNvbW1vbi5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnbnVtYmVyJykgaW5pdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICdub2NoIGxlZXInOwogICAgICAgICAgICAgICAgfSBlbHNlIGluaXQgPSBjb21tb24uZGVmOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtzZXRTdGF0ZShpZCwgaW5pdCwgdHJ1ZSk7fSwxMDAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQp9CmNyZWF0ZURwMDAzKCcwX3VzZXJkYXRhLjAuJyArIGRwMDAzLCBkdHAwMDMpOwoKLy8gRGF0ZW5wdW5rdCB1bnRlciAwX3VzZXJkYXRhLjAgZXJzdGVsbGVuCmNvbnN0IGRwMDA0ID0gJ0ZlbnN0ZXJfemFlaGxlbi4wNF9BbnphaGxfRmVuc3Rlcl9nZXNhbXQnOwpjb25zdCBkdHAwMDQgPSB7dHlwZTogJ251bWJlcicsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzA0X0FuemFobF9GZW5zdGVyX2dlc2FtdCcscm9sZTogJ251bWJlcid9OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDA0KGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAwNCgnMF91c2VyZGF0YS4wLicgKyBkcDAwNCwgZHRwMDA0KTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMtLS1GZW5zdGVyIG9mZmVuZS1nZWtpcHB0ZSBGZW5zdGVyIExpc3RlLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAwNSA9ICdGZW5zdGVyX3phZWhsZW4uMDVfb2ZmZW5lX2dla2lwcHRlX0ZlbnN0ZXJfTGlzdGUnOwpjb25zdCBkdHAwMDUgPSB7dHlwZTogJ3N0cmluZycsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzA1X29mZmVuZV9nZWtpcHB0ZV9GZW5zdGVyX0xpc3RlJyxyb2xlOiAnc3RyaW5nJ307CiAKZnVuY3Rpb24gY3JlYXRlRHAwMDUoaWQsIGNvbW1vbikgewogICAgaWYoJChpZCkubGVuZ3RoKSBsb2coJ0RhdGVucHVua3QgJyArIGlkICsgJyBleGlzdGllcnQgYmVyZWl0cyAhJywgJ3dhcm4nKTsKICAgIGVsc2UgewogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLmNvbW1vbiA9IGNvbW1vbjsKICAgICAgICBvYmoubmF0aXZlID0ge307CiAgICAgICAgc2V0T2JqZWN0KGlkLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgaWYgKGVycikgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0OiAnICsgZXJyKQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKGNvbW1vbi5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnbnVtYmVyJykgaW5pdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICdub2NoIGxlZXInOwogICAgICAgICAgICAgICAgfSBlbHNlIGluaXQgPSBjb21tb24uZGVmOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtzZXRTdGF0ZShpZCwgaW5pdCwgdHJ1ZSk7fSwxMDAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQp9CmNyZWF0ZURwMDA1KCcwX3VzZXJkYXRhLjAuJyArIGRwMDA1LCBkdHAwMDUpOwoKLy8jIyMjIyMjIyMjIyMjIyMjIyMjIy0tLURQIGdlc2FtdGUgRmVuc3RlciBMaXN0ZSBtaXQgWnVzdGFuZCBhbmxlZ2VuLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAwNiA9ICdGZW5zdGVyX3phZWhsZW4uMDZfZ2VzYW10ZV9GZW5zdGVyX0xpc3RlJzsKY29uc3QgZHRwMDA2ID0ge3R5cGU6ICdzdHJpbmcnLCByZWFkOiB0cnVlLCB3cml0ZTogZmFsc2UsIG5hbWU6ICcwNl9nZXNhbXRlX0ZlbnN0ZXJfTGlzdGUnLHJvbGU6ICdzdHJpbmcnfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAwNihpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJ25vY2ggbGVlcic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaW5pdCA9IGNvbW1vbi5kZWY7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge3NldFN0YXRlKGlkLCBpbml0LCB0cnVlKTt9LDEwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9Cn0KY3JlYXRlRHAwMDYoJzBfdXNlcmRhdGEuMC4nICsgZHAwMDYsIGR0cDAwNik7CgovLyMjIyMjIyMjIyMjIyMjIyMjIyMjLS0tRmVuc3RlciBMaXN0ZSBpUW9udHJvbCBhbmxlZ2VuLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAwNyA9ICdGZW5zdGVyX3phZWhsZW4uMDdfaVFvbnRyb2xfRmVuc3Rlcl9MaXN0ZSc7CmNvbnN0IGR0cDAwNyA9IHt0eXBlOiAnc3RyaW5nJywgcmVhZDogdHJ1ZSwgd3JpdGU6IGZhbHNlLCBuYW1lOiAnMDdfaVFvbnRyb2xfRmVuc3Rlcl9MaXN0ZScscm9sZTogJ3N0cmluZyd9OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDA3KGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAwNygnMF91c2VyZGF0YS4wLicgKyBkcDAwNywgZHRwMDA3KTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMtLS1EUCBOYWNocmljaHRlbnZlcnNhbmQgVGVsZWdyYW0gYW5zY2hhbHRlbi1hdXNzY2hhbHRlbiBhbmxlZ2VuLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAwOCA9ICdOYWNocmljaHRlbnZlcnNhbmQuVGVsZWdyYW0uMDFUZWxlZ3JhbV9OYWNocmljaHRlbnZlcnNhbmRfRmVuc3Rlcl96YWVobGVuJzsKY29uc3QgZHRwMDA4ID0ge3R5cGU6ICdib29sZWFuJywgcmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUsIG5hbWU6ICcwMVRlbGVncmFtX05hY2hyaWNodGVudmVyc2FuZF9GZW5zdGVyX3phZWhsZW4nLHJvbGU6ICdzd2l0Y2gnfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAwOChpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAwOCgnMF91c2VyZGF0YS4wLicgKyBkcDAwOCwgZHRwMDA4KTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMtLS1EUCBOYWNocmljaHRlbnZlcnNhbmQgRS1NYWlsIGFuc2NoYWx0ZW4tYXVzc2NoYWx0ZW4gYW5sZWdlbi0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjCgovLyBEYXRlbnB1bmt0IHVudGVyIDBfdXNlcmRhdGEuMCBlcnN0ZWxsZW4KY29uc3QgZHAwMDkgPSAnTmFjaHJpY2h0ZW52ZXJzYW5kLkVNYWlsLjAxRU1haWxfTmFjaHJpY2h0ZW52ZXJzYW5kX0ZlbnN0ZXJfemFlaGxlbic7CmNvbnN0IGR0cDAwOSA9IHt0eXBlOiAnYm9vbGVhbicsIHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlLCBuYW1lOiAnMDFFTWFpbF9OYWNocmljaHRlbnZlcnNhbmRfRmVuc3Rlcl96YWVobGVuJyxyb2xlOiAnc3dpdGNoJ307CiAKZnVuY3Rpb24gY3JlYXRlRHAwMDkoaWQsIGNvbW1vbikgewogICAgaWYoJChpZCkubGVuZ3RoKSBsb2coJ0RhdGVucHVua3QgJyArIGlkICsgJyBleGlzdGllcnQgYmVyZWl0cyAhJywgJ3dhcm4nKTsKICAgIGVsc2UgewogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLmNvbW1vbiA9IGNvbW1vbjsKICAgICAgICBvYmoubmF0aXZlID0ge307CiAgICAgICAgc2V0T2JqZWN0KGlkLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgaWYgKGVycikgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0OiAnICsgZXJyKQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKGNvbW1vbi5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnbnVtYmVyJykgaW5pdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJ25vY2ggbGVlcic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaW5pdCA9IGNvbW1vbi5kZWY7CiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge3NldFN0YXRlKGlkLCBpbml0LCB0cnVlKTt9LDEwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9Cn0KY3JlYXRlRHAwMDkoJzBfdXNlcmRhdGEuMC4nICsgZHAwMDksIGR0cDAwOSk7CgovLyMjIyMjIyMjIyMjIyMjIyMjIyMjLS0tQWxleGEgRGF0ZW5wdW5rdGUgYW5sZWdlbi0tLSMjIyMjIyMjIyMjIyMjIyMjIyMjCgovLyBEYXRlbnB1bmt0IHVudGVyIDBfdXNlcmRhdGEuMCBlcnN0ZWxsZW4KY29uc3QgZHAwMTAgPSAnQWxleGFfQW5zYWdlbi5TdGltbWVuLjAxQWxleGEnOwpjb25zdCBkdHAwMTAgPSB7dHlwZTogJ2Jvb2xlYW4nLCByZWFkOiB0cnVlLCB3cml0ZTogdHJ1ZSwgbmFtZTogJzAxQWxleGEnLHJvbGU6ICdzd2l0Y2gnLCJzbWFydE5hbWUiOiB7ImRlIjogIkFsZXhhIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9fTsKIApmdW5jdGlvbiBjcmVhdGVEcDAxMChpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxMCgnMF91c2VyZGF0YS4wLicgKyBkcDAxMCwgZHRwMDEwKTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxMSA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDJIYW5zJzsKY29uc3QgZHRwMDExID0ge3R5cGU6ICdib29sZWFuJywgcmVhZDogdHJ1ZSwgd3JpdGU6IHRydWUsIG5hbWU6ICcwMkhhbnMnLHJvbGU6ICdzd2l0Y2gnLCJzbWFydE5hbWUiOiB7ImRlIjogIkhhbnMiLCJzbWFydFR5cGUiOiAiU1dJVENIIn19OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDExKGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxMSgnMF91c2VyZGF0YS4wLicgKyBkcDAxMSwgZHRwMDExKTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxMiA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDNWaWNraSc7CmNvbnN0IGR0cDAxMiA9IHt0eXBlOiAnYm9vbGVhbicsIHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlLCBuYW1lOiAnMDNWaWNraScscm9sZTogJ3N3aXRjaCcsInNtYXJ0TmFtZSI6IHsiZGUiOiAiVmlja2kiLCJzbWFydFR5cGUiOiAiU1dJVENIIn19OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDEyKGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxMignMF91c2VyZGF0YS4wLicgKyBkcDAxMiwgZHRwMDEyKTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxMyA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDRDb25jaGl0YSc7CmNvbnN0IGR0cDAxMyA9IHt0eXBlOiAnYm9vbGVhbicsIHJlYWQ6IHRydWUsIHdyaXRlOiB0cnVlLCBuYW1lOiAnMDRDb25jaGl0YScscm9sZTogJ3N3aXRjaCcsInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn19OwogCmZ1bmN0aW9uIGNyZWF0ZURwMDEzKGlkLCBjb21tb24pIHsKICAgIGlmKCQoaWQpLmxlbmd0aCkgbG9nKCdEYXRlbnB1bmt0ICcgKyBpZCArICcgZXhpc3RpZXJ0IGJlcmVpdHMgIScsICd3YXJuJyk7CiAgICBlbHNlIHsKICAgICAgICB2YXIgb2JqID0ge307CiAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgIG9iai5jb21tb24gPSBjb21tb247CiAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnbm9jaCBsZWVyJzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxMygnMF91c2VyZGF0YS4wLicgKyBkcDAxMywgZHRwMDEzKTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxNCA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDVBbGV4YV9zc21sJzsKY29uc3QgZHRwMDE0ID0ge3R5cGU6ICdzdHJpbmcnLCByZWFkOiB0cnVlLCB3cml0ZTogZmFsc2UsIG5hbWU6ICcwNUFsZXhhX3NzbWwnLHJvbGU6ICdzdHJpbmcnfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAxNChpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxNCgnMF91c2VyZGF0YS4wLicgKyBkcDAxNCwgZHRwMDE0KTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxNSA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDZIYW5zX3NzbWwnOwpjb25zdCBkdHAwMTUgPSB7dHlwZTogJ3N0cmluZycsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzA2SGFuc19zc21sJyxyb2xlOiAnc3RyaW5nJ307CiAKZnVuY3Rpb24gY3JlYXRlRHAwMTUoaWQsIGNvbW1vbikgewogICAgaWYoJChpZCkubGVuZ3RoKSBsb2coJ0RhdGVucHVua3QgJyArIGlkICsgJyBleGlzdGllcnQgYmVyZWl0cyAhJywgJ3dhcm4nKTsKICAgIGVsc2UgewogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLmNvbW1vbiA9IGNvbW1vbjsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJzxzcGVhaz48dm9pY2UgbmFtZT0iSGFucyI+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxNSgnMF91c2VyZGF0YS4wLicgKyBkcDAxNSwgZHRwMDE1KTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxNiA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDdWaWNraV9zc21sJzsKY29uc3QgZHRwMDE2ID0ge3R5cGU6ICdzdHJpbmcnLCByZWFkOiB0cnVlLCB3cml0ZTogZmFsc2UsIG5hbWU6ICcwN1ZpY2tpX3NzbWwnLHJvbGU6ICdzdHJpbmcnfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAxNihpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnPHNwZWFrPjx2b2ljZSBuYW1lPSJWaWNraSI+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxNignMF91c2VyZGF0YS4wLicgKyBkcDAxNiwgZHRwMDE2KTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxNyA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDhDb25jaGl0YV9zc21sJzsKY29uc3QgZHRwMDE3ID0ge3R5cGU6ICdzdHJpbmcnLCByZWFkOiB0cnVlLCB3cml0ZTogZmFsc2UsIG5hbWU6ICcwOENvbmNoaXRhX3NzbWwnLHJvbGU6ICdzdHJpbmcnfTsKIApmdW5jdGlvbiBjcmVhdGVEcDAxNyhpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIHNldE9iamVjdChpZCwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgIGlmIChlcnIpIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdDogJyArIGVycikKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZihjb21tb24uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgIGlmKGNvbW1vbi50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpbml0ID0gY29tbW9uLmRlZjsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7c2V0U3RhdGUoaWQsIGluaXQsIHRydWUpO30sMTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxNygnMF91c2VyZGF0YS4wLicgKyBkcDAxNywgZHRwMDE3KTsKCi8vIERhdGVucHVua3QgdW50ZXIgMF91c2VyZGF0YS4wIGVyc3RlbGxlbgpjb25zdCBkcDAxOCA9ICdBbGV4YV9BbnNhZ2VuLlN0aW1tZW4uMDlzc21sX2VuZGUnOwpjb25zdCBkdHAwMTggPSB7dHlwZTogJ3N0cmluZycsIHJlYWQ6IHRydWUsIHdyaXRlOiBmYWxzZSwgbmFtZTogJzA5c3NtbF9lbmRlJyxyb2xlOiAnc3RyaW5nJ307CiAKZnVuY3Rpb24gY3JlYXRlRHAwMTgoaWQsIGNvbW1vbikgewogICAgaWYoJChpZCkubGVuZ3RoKSBsb2coJ0RhdGVucHVua3QgJyArIGlkICsgJyBleGlzdGllcnQgYmVyZWl0cyAhJywgJ3dhcm4nKTsKICAgIGVsc2UgewogICAgICAgIHZhciBvYmogPSB7fTsKICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgb2JqLmNvbW1vbiA9IGNvbW1vbjsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJzwvdm9pY2U+PC9zcGVhaz4nOwogICAgICAgICAgICAgICAgfSBlbHNlIGluaXQgPSBjb21tb24uZGVmOwogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtzZXRTdGF0ZShpZCwgaW5pdCwgdHJ1ZSk7fSwxMDAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQp9CmNyZWF0ZURwMDE4KCcwX3VzZXJkYXRhLjAuJyArIGRwMDE4LCBkdHAwMTgpOwoKLy8gRGF0ZW5wdW5rdCB1bnRlciAwX3VzZXJkYXRhLjAgZXJzdGVsbGVuCmNvbnN0IGRwMDE5ID0gJ0FsZXhhX0Fuc2FnZW4uQW5zYWdlbi5GZW5zdGVyYW5zYWdlJzsKY29uc3QgZHRwMDE5ID0ge3R5cGU6ICdidXR0b24nLCByZWFkOiBmYWxzZSwgd3JpdGU6IHRydWUsIG5hbWU6ICdGZW5zdGVyYW5zYWdlJyxyb2xlOiAnYnV0dG9uJywic21hcnROYW1lIjogeyJkZSI6ICJGZW5zdGVyYW5zYWdlIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9fTsKIApmdW5jdGlvbiBjcmVhdGVEcDAxOShpZCwgY29tbW9uKSB7CiAgICBpZigkKGlkKS5sZW5ndGgpIGxvZygnRGF0ZW5wdW5rdCAnICsgaWQgKyAnIGV4aXN0aWVydCBiZXJlaXRzICEnLCAnd2FybicpOwogICAgZWxzZSB7CiAgICAgICAgdmFyIG9iaiA9IHt9OwogICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICBvYmouY29tbW9uID0gY29tbW9uOwogICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICBzZXRPYmplY3QoaWQsIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICBpZiAoZXJyKSBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3Q6ICcgKyBlcnIpCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgaWYoY29tbW9uLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICBpZihjb21tb24udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgaWYoY29tbW9uLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJ25vY2ggbGVlcic7CiAgICAgICAgICAgICAgICB9IGVsc2UgaW5pdCA9IGNvbW1vbi5kZWY7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KfQpjcmVhdGVEcDAxOSgnMF91c2VyZGF0YS4wLicgKyBkcDAxOSwgZHRwMDE5KTsK</field>
                     <comment pinned="false" h="80" w="160">legt Datenpunkte für den die Anzahl gekippter/geöffneter/geschlossenen/gesamt Fenster an</comment>
                    </block>
                    

                    ergibt das hier (aber noch ohne Daten, hier sind die Datenpunkte schon befüllt, die Funktion verwende ich in einem kompletten Blockly)
                    Bildschirmfoto 2020-01-01 um 13.21.10.png

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate
                    FAQ Cloud / IOT
                    HowTo: Node.js-Update
                    HowTo: Backup/Restore
                    Downloads
                    BLOG

                    512
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    alexa iot
                    3
                    8
                    1033
                    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