NEWS
Lichtsteuerung mit Bewegungsmelder und Vis-Button
-
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.Vielleicht denke ich auch einfach zu kompliziert
-
@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 -
@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. -
@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
-
@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.
-
@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? -
@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.
-
@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?
-
@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.
-
@paul53 Top, Vielen Dank, so hat es funktioniert!
-
@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
-
@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
"test.bool" wird durch den BWM geschaltet.
-
@Phinix
Wenn der Taster per Script schaltet, muss er zusätzlich ausgewertet werden: -
@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:
- 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.
- 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
- 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
- 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.
-
@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:
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.
-
@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 ? -
@paul53
Ja es handelt sich dabei um eine Lichtsteuerung und eine Rampe habe ich nirgends eingestellt... -
@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