Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Lichtsteuerung mit Bewegungsmelder und Vis-Button

    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

    Lichtsteuerung mit Bewegungsmelder und Vis-Button

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

      Hallo zusammen,

      ich möchte meine Raumbeleuchtung mit einem Bewegungsmelder sowie einem (Hardware)Taster und Vis-Button getrennt steuern.
      Heißt; sobald ich den Raum betrete soll der Bewegungsmelder auslösen und nach Zeit X (nach Verlassen des Raums) das Licht wieder ausschalten.
      Steuere ich aber nun mit dem Taster/Button das Licht, soll der Bewegungsmelder das Licht nicht mehr schalten können.

      Bewegungsmelder und Hardware-Taster ist kein Problem, das funktioniert soweit. Sobald ich den Taster betätige wird eine Variable innerhalb des Blockly Scripts auf true gesetzt und blockiert so den Bewegungsmelder.

      Wo ich nun aber nicht weiterkomme; wie kann ich den Button von meiner Visu einbinden, da dieser das Licht direkt steuert.
      Es handelt sich dabei um den jqui-Dialog Button. Im Prinzip bräuchte ich eine Variable/Datenpunkt der mir auf true gesetzt wird, sobald dieser Button das Licht einschaltet.

      d1ab1406-c6dc-458d-8ec8-ea6b7ec34569-image.png

      Vielleicht denke ich auch einfach zu kompliziert 😄

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

        @Phinix sagte in Lichtsteuerung mit Bewegungsmelder und Vis-Button:

        Im Prinzip bräuchte ich eine Variable/Datenpunkt der mir auf true gesetzt wird, sobald dieser Button das Licht einschaltet.

        Genau so!
        Eigenen Datenpunkt anlegen. Diesen über den Button steuern und bei Änderung des Wertes das Licht anschalten und die Sperre de/-aktivieren

        1 Reply Last reply Reply Quote 0
        • P
          Phinix last edited by

          @Homoran
          Aber der Dialog Button schreibt die Werte 25/50/75/100 direkt in den level State meiner Leuchte. Heißt ich müsste eine zweite Variable/Datenpunkt beschreiben können, damit ich die Abfrage machen kann, ... und an diesem Punkt komme ich nicht weiter, weil der Dialog Button nur den State direkt steuert.

          Homoran paul53 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Phinix last edited by

            @Phinix OK!

            Dann musst du den State der Leuchte Und den des Bewegungsmelders abgreifen und bei Änderung der Leuchte OHNE gleichzeitige Bewegung die Sperrvariable setzen

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

              @Phinix sagte:

              an diesem Punkt komme ich nicht weiter, weil der Dialog Button nur den State direkt steuert.

              Man kann auch die Quelle der Wertänderung auswerten.

              Blockly_temp.JPG

              1 Reply Last reply Reply Quote 0
              • P
                Phinix last edited by

                @Homoran Würde sich jemand zu dem Zeitpunkt im Raum befinden, würde der Bewegungsmelder auslösen, da dieser ja nicht gesperrt wird? Wenn ich keine andere Lösung finde, muss ich aber darauf zurückgreifen.

                @paul53 Das hört sich vielversprechend an. Du musst mir aber bei deinem ersten Trigger weiterhelfen.
                Du beschreibst die Variable "manuell" mit einem Wert (ich gehe mal davon aus, dass hier dann true geschrieben wird), aber was macht die Variable Ursprung /= system.adapter.javascript.0?

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

                  @Phinix sagte:

                  Ursprung /= system.adapter.javascript.0?

                  Wert und Ursprung findet man unter "Trigger". Ursprung enthält die Quelle der Änderung. Ist diese kein Skript und ist der Wert > 0, wird die Variable manuell = true.

                  1 Reply Last reply Reply Quote 0
                  • P
                    Phinix last edited by

                    @paul53 Ich glaube ich hab es nun verstanden; bei Skript gebe ich nun mein Skript an, welches bei Auslösen des Bewegungsmelders ausgeführt wird?

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

                      @Phinix sagte:

                      bei Skript gebe ich nun mein Skript an, welches bei Auslösen des Bewegungsmelders ausgeführt wird?

                      Nein, so wie gezeigt: "system.adapter.javascript.0", wenn die Skripte unter der Instanz 0 laufen.

                      P 2 Replies Last reply Reply Quote 0
                      • P
                        Phinix @paul53 last edited by

                        @paul53 Top, Vielen Dank, so hat es funktioniert!

                        1 Reply Last reply Reply Quote 0
                        • P
                          Phinix @paul53 last edited by Phinix

                          @paul53 Leider war ich doch etwas zu voreilig. Das Script funktioniert noch nicht so ganz. Wenn ich das Licht über die Vis schalte, wird meine Variable "manual" geschaltet, sollte eigentlich passen... aber sobald der BWM auslöst, wird die Variable an meinem ersten Trigger ebenfalls wieder wahr.

                          Ich habe mein Script mit angehängt, da ich meinen Fehler nicht finde. (Blockly)

                          var manual_active, timer_1;
                          
                          
                          // Bei Scriptstart Variable auf falsch setzen
                          manual_active = false;
                          // Überprüfen ob Licht über Vis gesteuert wird
                          on({id: new RegExp('hue\\.0\\.Philips_hue\\.Hue_iris_1\\.level' + "|" + 'hue\\.0\\.Philips_hue\\.Hue_iris_2\\.level' + "|" + 'hue\\.0\\.Philips_hue\\.Arbeitszimmer\\.on'), change: "ne"}, function (obj) {
                              (function () {if (timer_1) {clearTimeout(timer_1); timer_1 = null;}})();
                            manual_active = getState("hue.0.Philips_hue.Hue_iris_1.level").val && (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' || getState("hue.0.Philips_hue.Arbeitszimmer.on").val && (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0' || getState("hue.0.Philips_hue.Hue_iris_2.level").val && (obj.state ? obj.state.from : "") != 'system.adapter.javascript.0';
                            if (getState("hue.0.Philips_hue.Arbeitszimmer.level").val == 0 && getState("hue.0.Philips_hue.Hue_iris_2.level").val == 0 && getState("hue.0.Philips_hue.Hue_iris_1.level").val == 0) {
                              manual_active = false;
                            }
                          });
                          // Licht über Taster schalten
                          on({id: 'zigbee.0.04cf8cdf3c7984ac.button_3_click', val: true}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            (function () {if (timer_1) {clearTimeout(timer_1); timer_1 = null;}})();
                            getState("hue.0.Philips_hue.Arbeitszimmer.on", function (err, state) {
                                setState("hue.0.Philips_hue.Arbeitszimmer.on"/*Philips_hue.Arbeitszimmer.on*/, state ? !state.val : true);
                            });
                            manual_active = !manual_active;
                          });
                          // Licht über BWM schalten
                          on({id: 'zigbee.0.00158d0004666972.occupancy', change: "ne"}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            if (!manual_active) {
                              if (getState("zigbee.0.00158d0004666972.occupancy").val == false) {
                                timer_1 = setTimeout(function () {
                                  setState("hue.0.Philips_hue.Arbeitszimmer.on"/*Philips_hue.Arbeitszimmer.on*/, false);
                                }, 10000);
                              }
                              if (getState("zigbee.0.00158d0004666972.occupancy").val == true && compareTime('21:30', '07:30', "between", null)) {
                                (function () {if (timer_1) {clearTimeout(timer_1); timer_1 = null;}})();
                                setState("hue.0.Philips_hue.Arbeitszimmer.on"/*Philips_hue.Arbeitszimmer.on*/, true);
                              }
                            }
                          });
                          
                          //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMiUyMiUyMGlkJTNEJTIyM2MoQ2E0Wmc5dFglM0YuSzklMkJ2RDVQJTIyJTNFbWFudWFsX2FjdGl2ZSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjB0eXBlJTNEJTIydW5kZWZpbmVkJTIyJTIwaWQlM0QlMjJ0aW1lcl8xJTIyJTNFdGltZXJfMSUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyTm82KSU1RS5XVFp4RiFKITR3M2x2byUyMiUyMHglM0QlMjItMjM4JTIyJTIweSUzRCUyMi02NjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFQmVpJTIwU2NyaXB0c3RhcnQlMjBWYXJpYWJsZSUyMGF1ZiUyMGZhbHNjaCUyMHNldHplbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU0MF8lNUR6aVJVVXhkWDZYSHglN0J5QiU1RXIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNjKENhNFpnOXRYJTNGLks5JTJCdkQ1UCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW1hbnVhbF9hY3RpdmUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyJTNBZGU0Snc5dE9JNmlWXzklN0MlMjN4JTNGNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIlN0Rqang5VnElN0RZcCUzREZVV2ktTyUyQ0UlMkYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFJUMzJTlDYmVycHIlQzMlQkNmZW4lMjBvYiUyMExpY2h0JTIwJUMzJUJDYmVyJTIwVmlzJTIwZ2VzdGV1ZXJ0JTIwd2lyZCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyWU45N0R6dSU1RUltM091TzZtflR5JTdCJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjMlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRW5lJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQwJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyLk41JTVCVFpQOEJ6VnBUMGQlNUVWeCh0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuSHVlX2lyaXNfMS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQxJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyLV8lN0NaWUclMkJtbSU1QlN2ZG1fTCU1QlB1VSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkh1ZV9pcmlzXzIubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMjQxJTVFQ0FHVXgyUn5+U25RQ1dfKGwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5BcmJlaXRzemltbWVyLm9uJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19jbGVhcnRpbWVvdXQlMjIlMjBpZCUzRCUyMnAyJTVEblgwemIlNDAlMjVjcHFXeGp4SyUyM18lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOQU1FJTIyJTNFdGltZXJfMSUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUzQiUyNUIlMkZmJTIzTiUyMzVqblpPTCU1QnZQJTNBVnAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNjKENhNFpnOXRYJTNGLks5JTJCdkQ1UCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW1hbnVhbF9hY3RpdmUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjIubiU1RGRqNnRyJTJCJTdEbUotNzE5MCUyRkxOJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VPUiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyUSU3RGtIJTIzQSUyM3olMkIyeFF0dyUzRFMyJTIzUFYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU9SJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJoUClNJTNEOWN6fkJ3JTJCdTNhUnYlM0YlMkMlNUIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTI1T0w2N3c5JTI0JTVFMkp5cSUyNShzRyUzRFBNJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuSHVlX2lyaXNfMS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIxJTYwX3MpQ3dJXzlCLVAlMjQyNCU3RHMlM0FRJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VORVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMlBpJTNGLiU1QjhlaHYpOFh6bmRsJTQwdU0lNjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUuZnJvbSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlN0IlMkNKTDJPd0JVMmQlNUIweCUzREI2RFJDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXN5c3RlbS5hZGFwdGVyLmphdmFzY3JpcHQuMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyLkJ0RThaJTIzIXQlM0RZS211SGQlN0JXJTNEUyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJaMzQlMjRjJTVFQ0hfNldRTndBVzlBJTIzVSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkFyYmVpdHN6aW1tZXIub24lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyMFZhSWpMNnNqUSlucHMlM0FMWlFQdCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTkVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJGJTdDcHNLanQlM0JoVXUoX1dEJTNELmglMjUwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLmZyb20lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyVSU3QkJvJTdCcDhZZSUzQSU2ME4lMkZpJTJCajBCenklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFc3lzdGVtLmFkYXB0ZXIuamF2YXNjcmlwdC4wJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIyMEVPeldNLUIqWiU0MF91UXVBJTIzLTUlNUQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyVCU3QnRuWG8lNjBLWSU1RVZxJTVFKiUzQm5odypXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuSHVlX2lyaXNfMi5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIpSGhFVEgxNVVFUSUyNDglMjRIJTVEOGtXdCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTkVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjIlM0ZBJTdDJTVFazNiN35vNSUzQjklNURTQ1JFSGIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUuZnJvbSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJWRCU1RElvRSU0MEtGQ3AlM0ZJMkwlNURZRUglN0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFc3lzdGVtLmFkYXB0ZXIuamF2YXNjcmlwdC4wJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIlNUJFJTNGJTJDSmkxKm1DSmlZTCU3RDBpJTdCJTNEJTNCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJ5NSU3QmNVMlohcklIUDMyJTJDWUUwZG0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUFORCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMmhYfkJ3aSUyM08lM0RDUCU3Q2JZTzMlNUJsQ3clMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlN0JCNjR+V0JxaSU0MDhKISF4JTNGJTYwSiolN0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5BcmJlaXRzemltbWVyLmxldmVsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJyMUMlN0NpenglMkI3LkdKY1pvSSUyNDMlM0Z3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfb3BlcmF0aW9uJTIyJTIwaWQlM0QlMjJfY3JGeUJfbiUyQiUyNWlBdiUzQlFwTW52KCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQU5EJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyTk5OKjNDQy4lNUV6JTdDOGdndlYyRTNWJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyWHlIWEhjJTNBTHglMjVKM2lJKWtpbldLJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuSHVlX2lyaXNfMi5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTNBMyUyQjE0bSUyQjNfaEMqSXooNCUyQiU1RGx1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTdCTXlMOVFVfk5lS3BDUSU2MDJuSiUyNH4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJvY3ppV3A3XyUyNTR1Lm8lMkN1JTYwUiUyQjBxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuSHVlX2lyaXNfMS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIycyUyRl9aJTI0MSglN0IlM0ZjeCU2MCU2MDY2JTNCdWU4NCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyMnAuJTJDJTNGWFZuTiUyRiUyNC12ISU3Qy4lMkZHJTIzSSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyM2MoQ2E0Wmc5dFglM0YuSzklMkJ2RDVQJTIyJTIwdmFyaWFibGV0eXBlJTNEJTIyJTIyJTNFbWFudWFsX2FjdGl2ZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJEaVVndVBmdCU1Qn5QV1VDbVolN0IlNUJKOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyc3BEb2ZKZ1UpSmd4NHYlM0RPaXd6ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VMaWNodCUyMCVDMyVCQ2JlciUyMFRhc3RlciUyMHNjaGFsdGVuJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fZXh0JTIyJTIwaWQlM0QlMjIlNDByWWVTTERWMXBBRCUyQ2g5UyU3RCUyNEhzJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTkRJVElPTiUyMiUzRXRydWUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJXaVFnJTNGNGVxJTNGJTVFWXlVJTIzJTNGcn5aeWwlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0V6aWdiZWUuMC4wNGNmOGNkZjNjNzk4NGFjLmJ1dHRvbl8zX2NsaWNrJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lb3V0c19jbGVhcnRpbWVvdXQlMjIlMjBpZCUzRCUyMjZDQzVrJTIzRFEuQzclM0QlNjBkNlZiRCUyQiU3QiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lcl8xJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydG9nZ2xlJTIyJTIwaWQlM0QlMjIpQiU2MGYqRUF0JTI0SlQzRDI4SEZlWFolMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWh1ZS4wLlBoaWxpcHNfaHVlLkFyYmVpdHN6aW1tZXIub24lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiU0MFBfS0IqdiU3REYzbyU0MGElM0RlTmdyc0MlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNjKENhNFpnOXRYJTNGLks5JTJCdkQ1UCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW1hbnVhbF9hY3RpdmUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfbmVnYXRlJTIyJTIwaWQlM0QlMjJkJTVESSUyQ1ElN0RpJTVCam84UGIlN0QteiUzRkNIJTNCJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnF1R0d6RCUzQWZUJTJGJTNGJTQweFNrODElMjU3JTJGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIzYyhDYTRaZzl0WCUzRi5LOSUyQnZENVAlMjIlMjB2YXJpYWJsZXR5cGUlM0QlMjIlMjIlM0VtYW51YWxfYWN0aXZlJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMiU3QlpqRXFOayUzQi41MyU1QlphXzFQZFpoJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUxpY2h0JTIwJUMzJUJDYmVyJTIwQldNJTIwc2NoYWx0ZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMiU2MDIteCU3QiUyQipLeSU0MDEqT20qMTVDT2ElMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjIlNUVyKEUlN0RoJTdDNiU3QyUyMy1rMyUyQjFyU3F6UiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRXppZ2JlZS4wLjAwMTU4ZDAwMDQ2NjY5NzIub2NjdXBhbmN5JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyN1IlN0RjJTJGMThxLjIlMjRCSioxSXBsOG0lMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19uZWdhdGUlMjIlMjBpZCUzRCUyMk0wWiUyM2YhJTI1LSUyQmIhJTNEQVZIRGxlcTIlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCT09MJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyNlBTQjY3bEhwRVR+SFlRMEg3eXglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNjKENhNFpnOXRYJTNGLks5JTJCdkQ1UCUyMiUyMHZhcmlhYmxldHlwZSUzRCUyMiUyMiUzRW1hbnVhbF9hY3RpdmUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJEaVB3YyolM0R4Nm8oOCkzJTVFMSFjd18lMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJnSDFqSDRKOUIlM0ZYJTI0TiUyNWI5JTNBcG1XJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VFUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyZ3dkQUpMTXQwJTI0JTJGMzQlM0JZfnYoaTklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0V6aWdiZWUuMC4wMDE1OGQwMDA0NjY2OTcyLm9jY3VwYW5jeSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJseEcydy4uZiU3QkolNURZRmt4ME8tSzMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMn56cTRHMjBzWXNlcXRVZVF4OHpZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVyXzElM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkRFTEFZJTIyJTNFMTAlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlVOSVQlMjIlM0VzZWMlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJNZVBNWWMlMjRhJTVEVCUyNVRCVHpjZ05CISUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFaHVlLjAuUGhpbGlwc19odWUuQXJiZWl0c3ppbW1lci5vbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2Jvb2xlYW4lMjIlMjBpZCUzRCUyMkJrcSUyNFJqJTdEcSUyRlJTayUzQVFuNTRGJTVCVSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMl9heF8zITR0bFBFRUV2M1MlMkNYSSUyRiUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX29wZXJhdGlvbiUyMiUyMGlkJTNEJTIySCUzRiUzQiUzQiUyMzlwdnF3aVklMjMlMjM4JTVCVFIlNUQuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VBTkQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlM0QlMjU2KHNtUiFKcjQlMkZBWm4xISU3RCUyQjclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUVRJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjIlMjVJJTdENiUyM080TFBNJTI0JTI0JTI0QykydmglM0YuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFemlnYmVlLjAuMDAxNThkMDAwNDY2Njk3Mi5vY2N1cGFuY3klM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyJTNCKVNZJTdDJTIzMWYlNjBaM1RnfmwhNDkyOCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0aW1lX2NvbXBhcmVfZXglMjIlMjBpZCUzRCUyMkx2JTVFc3VscUlmJTQwc2VqNmQyRXolM0ElMjQlMjIlM0UlM0NtdXRhdGlvbiUyMGVuZF90aW1lJTNEJTIydHJ1ZSUyMiUyMGFjdHVhbF90aW1lJTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVVNFX0FDVFVBTF9USU1FJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1BUSU9OJTIyJTNFYmV0d2VlbiUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyU1RBUlRfVElNRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJDdiUyRmI3ZE9uKlQlM0F+NURYcyUyM2ZUJTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTIxJTNBMzAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyRU5EX1RJTUUlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTVCJTYwVmhMRCElNDBaMCU1Qm1ZY0MlNUVlZk5jJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRTA3JTNBMzAlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGltZW91dHNfY2xlYXJ0aW1lb3V0JTIyJTIwaWQlM0QlMjIlNUVacyUyMyElM0ZpOW5VNShhNFdfTWRpQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lcl8xJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyUChOa0xhKk1wfjdOJTQwNWMlM0ZRNmMxJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VodWUuMC5QaGlsaXBzX2h1ZS5BcmJlaXRzemltbWVyLm9uJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIySkhwYW0pZ2U3UndhcXJoUmJyZi0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFVFJVRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
                          
                          paul53 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @Phinix last edited by paul53

                            @Phinix
                            Für manual_active wertest Du 3 Datenpunkte aus: 1 "on" und 2 "level". Der BWM wirkt nur auf "on". Da ich kein Hue habe, für mein Verständnis:

                            • Wie ist die Hardware-Konstellation ?
                            • Gibt es direkte Verknüpfungen (Taster) ?
                            • Wenn "on" auf false geht, bleibt "level" erhalten oder geht "level" auf 0 ?

                            Zeile 22: Ich bin davon ausgegangen, dass der Taster per Hardware wirkt. Wenn der Taster per Script schaltet, funktioniert es so nicht.

                            @Phinix sagte in Lichtsteuerung mit Bewegungsmelder und Vis-Button:

                            sobald der BWM auslöst, wird die Variable an meinem ersten Trigger ebenfalls wieder wahr.

                            Das kann ich in einem Test nicht nachvollziehen:

                            13:27:25.693	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: Wert: 25, manuell: true
                            13:27:43.148	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: BWM: true
                            13:27:46.481	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: BWM: false
                            13:28:17.541	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: Wert: 0, manuell: false
                            13:28:28.169	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: BWM: true
                            13:28:28.172	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: Wert: true, manuell: false
                            13:28:31.787	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: BWM: false
                            13:28:41.800	info	javascript.1 (1906) script.js.blockly.Manuell_Blockly: Wert: false, manuell: false
                            

                            Blockly_temp.JPG

                            "test.bool" wird durch den BWM geschaltet.

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

                              @Phinix
                              Wenn der Taster per Script schaltet, muss er zusätzlich ausgewertet werden:

                              Blockly_temp.JPG

                              P 2 Replies Last reply Reply Quote 0
                              • P
                                Phinix @paul53 last edited by

                                @paul53
                                Ich versuche das Ganze mal etwas genauer darzustellen:

                                Ich habe eine Hue Bridge auf der der Raum "Arbeitszimmer" angelegt ist. "Arbeitszimmer beinhaltet zwei Iris Lampen (Dekolampen)
                                Über ioBroker steuere ich nun entweder den ganzen Raum bzw. die beiden Lampen einzeln (Kommunikation über den Hue Adapter)

                                Steuerung über Vis:

                                1. In Vis habe ich zwei jqui-Dialog Buttons (siehe erster Post) die die jeweilige Lampe direkt ansteuern (die Werte aus(0), 25, 50, 75, 100) werden hier direkt in den jeweiligen state level.dimmer geschrieben.
                                2. Ich habe einen weiteren Button der direkt true/false den state von "Arbeitszimmer" switch direkt steuert.

                                --> diese 3 Datenpunkte sind die Auswertung manual_active

                                Steuerung über Taster

                                1. Hier handelt es sich um einen Aqara Oppo Taster, dieser funkt über Zigbee und steuert über das Script den State switch von "Arbeitszimmer". Dieser wird über das Skript immer umgeschalten.
                                  --> Hier wird auch die Variable manual_active zum umschalten verwendet.

                                Steuerung über BWM

                                1. Der BWM soll das Licht nur zu einer bestimmten Uhrzeit einschalten (Nachtlicht) und dann natürlich auch wieder ausschalten nach Zeit X. Heißt wenn das Licht manuell eingeschaltet wird, soll es wieder manuell ausgeschaltet werden. Und wenn es automatisch eingeschaltet wird, soll es wieder automatisch ausgeschaltet werden.
                                  --> Ich weiß, man könnte natürlich sagen der BWM soll nur zur Nachtlichzeit aktiv werden und über den restlichen Tag schaltet man sowieso immer manuell, aber ich würde es gern flexibel lassen da ich hier die Zeiten noch anpasse oder über die aktuelle Helligkeit schalten lasse.

                                Ich werde nun nochmals deine Scripts testen und berichten.

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Phinix @paul53 last edited by Phinix

                                  @paul53
                                  So ich konnte nun das Script testen. Das Problem kommt vom Hue Adapter, bzw ich kann es auch nicht ganz nachvollziehen.
                                  Der BWM schaltet, Licht geht an, Variable manual_active ist falsch. Alles gut.
                                  Aber nach ein paar Sekunden werden die States vom Hue Adapter aktualisiert und setzen dadurch manual_active auf wahr.

                                  Hier mal im Log:

                                  2020-08-05 17:53:11.305  - javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Start
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: 0
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Licht an
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Manuell: 0
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Wert:  100
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Manuell: 0
                                  2020-08-05 17:53:11.305  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Wert:  100
                                  2020-08-05 17:53:13.727  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Manuell: 0
                                  2020-08-05 17:53:13.727  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Wert:  55
                                  2020-08-05 17:53:24.195  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Manuell: true
                                  2020-08-05 17:53:24.195  -  javascript.0 (1228) script.js.Lichtsteuerung.Control_Arbeitszimmer_Beleuchtung_neu: Wert:  100
                                  

                                  Man achte auf die zeitlichen Abstände der letzten vier Einträge. Obwohl eigentlich nichts mehr passieren sollte. Die Werte sind in den States konstant mit 100, ich weiß nicht woher die 55 kommt...

                                  Das ist mein Script dazu:

                                  c462ad0b-8127-4003-891a-340a3d1f4ba5-image.png

                                  Ich habe versucht das Ganze mit local_lock zu blockieren, also wenn der Adapter die Werte aktualisiert - aber die Zeiten variieren, von dem her kann ich dies nicht wirklich sauber abfangen.

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

                                    @Phinix sagte:

                                    ich weiß nicht woher die 55 kommt...

                                    Das ist doch eine Lichtsteuerung (keine Jalousien) ?
                                    Hast Du eine Rampe für die Änderung der Helligkeit eingestellt ?

                                    P 2 Replies Last reply Reply Quote 0
                                    • P
                                      Phinix @paul53 last edited by

                                      @paul53
                                      Ja es handelt sich dabei um eine Lichtsteuerung und eine Rampe habe ich nirgends eingestellt...

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        Phinix @paul53 last edited by

                                        @paul53
                                        Ich konnte nun das Script komplett zum Laufen bringen. Und zwar steuere ich nicht mehr den dimmer state sondern den bri (brightness) state der Lampen. Dieser wird beim synchronisieren nicht mehr abgeändert.
                                        Ich danke dir für deine Hilfe 🙂

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        403
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        blockly scenes
                                        3
                                        18
                                        1330
                                        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