NEWS
Zigbee ConBee II und Ikea Tradfri Dimmer klein
-
Jemand eine Idee?
-
@DennisMenger Hast du die Fernbedienung mit dem congee II gepaired und einzelnen Lampen zugeordnet, oder hast du die FB direkt mit den Lampen gepaired ?
A.
-
@Asgothian über den Conbee in der Phoscon-App direkt die Lampen der Fernbedienung zugeordnet
-
@DennisMenger Dann müsste die FB im "Sensoren" Baum im ioBroker auftauchen.
A.
-
@Asgothian Jup da ist sie drin. Und nun?
-
@DennisMenger
starte bitte den deconz adapter mal neu, und prüfe dann ob die Datenpunkte angepasst werden wenn du die knöpfe der FB drückst.A,
-
@Asgothian Ja, lastupdated und buttonevent werden geändert
-
@DennisMenger
Ok.. dann verstehe ich die Frage nicht. Was kommt denn nun nicht im ioBroker an ?A.
-
@Asgothian Die States bei den Lichtern (Bereich Lights) werden nicht angepasst. Und die brauche ich für meine Vis.
-
@DennisMenger
OK, jetzt hab ich es verstanden. Das ist aber normal - du solltest wenn du die Taster mit Gruppen nutzt auch die Gruppen als Status in der Vis nutzen, da bei Zigbee Anpassungen an den Gruppen nicht zwangsweise dazu führen das der Status der einzelnen Lampen aktualisiert wird.A.
-
@Asgothian Ok danke. Das muss ich mir dann noch mal anschauen.
-
Wenn ich heute Abend daheim bin kann ich mein Script posten, wie ich Tradfri im ioBroker nutze. Funktioniert alles wie im "original" (an, aus, heller/dunkler/Farbwechsel sowohl mit Click als mit gedrückt halten). Auch hab ich den Bug umgangen wenn eine IKEA LED angesteuert werden soll. Da lässt sich die Farbtemperatur ja aktuell nicht richtig setzen.
Man kann mit der Tradfri Fernbedienung mittels ioBroker dann natürlich auch andere Dinge machen als nur Lampen steuern. Das Teil ist echt eine sehr günstige Allround Lösung zum steuern verschiedenster Anwendungsfälle.
-
@Thomas-Winkler das würde mich auch freuen.
Gerade das mit dem Farbwechsel. Ist der Bug, dass sich der Wert für den Farbwechseln in den Objekten nicht korrekt verändert, bzw. gesetzt bleibt? -
Jupp. Genau das. Setzen funktioniert, aber er ändert sich halt nicht so dass man den Umweg über ne eigene Hilfsvariable gehen muss. Ich bin heute Abend noch unterwegs, ich versuche daran zu denken es hier noch zu posten wenn ich daheim bin. Ansonsten morgen Abend.
-
Also das hier ist mein Blocky für die Tradfri Bedienung:
var buttonpressed, Intervall3, Intervall4, Intervall, Intervall2; on({id: "deconz.0.Sensors.5.buttonpressed"/*WZ Fernbedienung buttonpressed*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; buttonpressed = parseFloat(getState("deconz.0.Sensors.5.buttonpressed").val); if (buttonpressed == 1002) { setState("deconz.0.Lights.2.on"/*WZ Stehlampe on*/, (!getState("deconz.0.Lights.2.on").val)); } else if (buttonpressed == 2002) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 75); setState("deconz.0.Lights.2.dimup"/*WZ Stehlampe dimup*/, true); } else if (buttonpressed == 3002) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 75); setState("deconz.0.Lights.2.dimdown"/*WZ Stehlampe dimdown*/, true); } else if (buttonpressed == 4002) { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) - 90), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); } else if (buttonpressed == 5002) { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) + 90), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); } else if (buttonpressed == 2001) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 20); Intervall = setInterval(function () { setState("deconz.0.Lights.2.dimup"/*WZ Stehlampe dimup*/, true); }, 1000); } else if (buttonpressed == 2003) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); } else if (buttonpressed == 3001) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 20); Intervall2 = setInterval(function () { setState("deconz.0.Lights.2.dimdown"/*WZ Stehlampe dimdown*/, true); }, 1000); } else if (buttonpressed == 3003) { (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})(); } else if (buttonpressed == 4001) { Intervall3 = setInterval(function () { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) - 25), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); }, 500); } else if (buttonpressed == 4003) { (function () {if (Intervall3) {clearInterval(Intervall3); Intervall3 = null;}})(); } else if (buttonpressed == 5001) { Intervall4 = setInterval(function () { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) + 25), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); }, 500); } else if (buttonpressed == 5003) { (function () {if (Intervall4) {clearInterval(Intervall4); Intervall4 = null;}})(); } }); false && false;
WZ Stehlampe ct fake ist die Hilfsvariable (mußt initial mit nen vernünftigen Wert füllen wie z.B. "100". Der Rest sind alles Verweise auf die Tradfri Bedienung und eine Tradfri LED.
-
Hallo,
@lobomau said in Zigbee ConBee II und Ikea Tradfri Dimmer klein:
@ebu soweit bin ich noch nicht. Wie lerne ich ihn an Phoscon an?
Welches Gerät wählt man aus? Schalter -> Neuen Schalter auswählen -> Andere? Dann 10s auf Pairing Knopf?
So hatte ich es gemacht, Dimmer hat sich aber mit einer Birne gekoppelt.
Edit: hab es hinbekommen. Ich war schon auf dem richtigen Weg... nur zu weit weg vom Gateway.Darf ich da nochmal nachhaken:
Was meinst Du mit "auf dem richtigen Weg"?Ich sitze hier auch von einem der kleinen quadratischen Tradfri-Dimmer und versuche ihn mit phoscon zu pairen. (Direkt, kein IKEA-Gateway).
Geht nicht.
Weder über "neuer Schalter" -> IKEA noch "anderer Schalter" noch als Sensor.
Und das Ding liegt keine 10cm vom Conbee-Stick entfernt.Ich drücke jeweils großzügige 10 Sek auf den Knopf, aber da tut sich nichts.
Stattdessen hat sich der Dimmer mal eben die Tradfri-Birne, die ich schon mit phoscon gepaired hatte, gekrallt, obwohl die gar nicht im pairing-Modus war - an sich funktionieren tut er also, nur nicht mit phoscon.Funktioniert der Dimmer nun direkt mit phoscon oder nur wenn man ein IKEA-Gateway hat?
Vielen Dank und Grüße,
Jan -
@jan_ funktioniert direkt. Ich habe kein Ikea tradfri gateway.
-
@Thomas-Winkler said in Zigbee ConBee II und Ikea Tradfri Dimmer klein:
var buttonpressed, Intervall3, Intervall4, Intervall, Intervall2;
leider kann ich das Skript nicht importieren sind evtl noch manuelle Vorarbeiten nötig?:
Error: textToDom was unable to parse: <xml xmlns="http://www.w3.org/1999/xhtml">var buttonpressed, Intervall3, Intervall4, Intervall, Intervall2; on({id: "deconz.0.Sensors.5.buttonpressed"/*WZ Fernbedienung buttonpressed*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; buttonpressed = parseFloat(getState("deconz.0.Sensors.5.buttonpressed").val); if (buttonpressed == 1002) { setState("deconz.0.Lights.2.on"/*WZ Stehlampe on*/, (!getState("deconz.0.Lights.2.on").val)); } else if (buttonpressed == 2002) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 75); setState("deconz.0.Lights.2.dimup"/*WZ Stehlampe dimup*/, true); } else if (buttonpressed == 3002) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 75); setState("deconz.0.Lights.2.dimdown"/*WZ Stehlampe dimdown*/, true); } else if (buttonpressed == 4002) { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) - 90), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); } else if (buttonpressed == 5002) { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) + 90), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); } else if (buttonpressed == 2001) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 20); Intervall = setInterval(function () { setState("deconz.0.Lights.2.dimup"/*WZ Stehlampe dimup*/, true); }, 1000); } else if (buttonpressed == 2003) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); } else if (buttonpressed == 3001) { setState("deconz.0.Lights.2.dimspeed"/*WZ Stehlampe dimspeed*/, 20); Intervall2 = setInterval(function () { setState("deconz.0.Lights.2.dimdown"/*WZ Stehlampe dimdown*/, true); }, 1000); } else if (buttonpressed == 3003) { (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})(); } else if (buttonpressed == 4001) { Intervall3 = setInterval(function () { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) - 25), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); }, 500); } else if (buttonpressed == 4003) { (function () {if (Intervall3) {clearInterval(Intervall3); Intervall3 = null;}})(); } else if (buttonpressed == 5001) { Intervall4 = setInterval(function () { setState("0_userdata.0.WZ_Stehlampe_ct_fake"/*WZ Stehlampe ct fake*/, (parseFloat(getState("0_userdata.0.WZ_Stehlampe_ct_fake").val) + 25), true); setState("deconz.0.Lights.2.ct"/*WZ Stehlampe ct*/, getState("0_userdata.0.WZ_Stehlampe_ct_fake").val); }, 500); } else if (buttonpressed == 5003) { (function () {if (Intervall4) {clearInterval(Intervall4); Intervall4 = null;}})(); }}); false && false;</xml>
-
@jan_
Wenn es so wie bei mir war, sind die Dinger gepaired, nur Phoscon zeigt sie nicht an.
Versuch mal folgendes:
In Phoscon guck mal unter "Hilfe" -> alte Web-Version -> wireless Light Control öffnen(2016).
Dann kommt man zu der alten Software, welche dir die Dimmer anzeigen sollte und du Gruppen anlegen kannst, um diese zu steuern.Bei mir hat das zumindest so funktioniert, warum auch immer.
Gruß,
io_laurent -
Das Script funktioniert so nicht mehr bzw. man kann den Fernbedienung jetzt besser steuern im ioBroker. Da sind neue Datenpunkte hinzu gekommen. Und ich kann jetzt auch die Farbtemperatur problemlos ohne Hilfsvariable steuern. Der Bug scheint also auch behoben. Am besten ist es den deconz Adapter zu deaktivieren, alle deconz Datenpunkte zu löschen und den Adapter dann wieder zu aktivieren. Aktuell schaut mein Script so aus (gedrückt halten passiert aktuell noch nichts, dass habe ich noch nicht implementiert).
var Helligkeit, Wei_C3_9Fwert; Helligkeit = 10; Wei_C3_9Fwert = 50; // An/Aus on({id: "deconz.0.Sensors.5.buttonevent.1.release_press"/*Release after press*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; getState("deconz.0.Groups.5.on", function (err, state) { setState("deconz.0.Groups.5.on"/*Wohnzimmer on*/, state ? !state.val : true); }); }); // Heller on({id: "deconz.0.Sensors.5.buttonevent.2.release_press"/*Release after press*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deconz.0.Groups.5.level"/*Wohnzimmer level*/, (getState("deconz.0.Groups.5.level").val + Helligkeit)); }); // Dunkler on({id: "deconz.0.Sensors.5.buttonevent.3.release_press"/*Release after press*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deconz.0.Groups.5.level"/*Wohnzimmer level*/, (getState("deconz.0.Groups.5.level").val - Helligkeit)); }); // Farbton Gelber on({id: "deconz.0.Sensors.5.buttonevent.5.release_press"/*Release after press*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deconz.0.Groups.5.ct"/*Wohnzimmer ct*/, (getState("deconz.0.Groups.5.ct").val - Wei_C3_9Fwert)); }); // Farbton Weißer on({id: "deconz.0.Sensors.5.buttonevent.4.release_press"/*Release after press*/, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("deconz.0.Groups.5.ct"/*Wohnzimmer ct*/, (getState("deconz.0.Groups.5.ct").val + Wei_C3_9Fwert)); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIydmclNUVPJTVCRFZXJTdDRyUyNXJ4dSF2cSUzRHVwJTIyJTNFSGVsbGlna2VpdCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMmVLMEchXyUyQ0olNUVlITVIMERyOTIlMkYzJTIyJTNFV2VpJUMzJTlGd2VydCUzQyUyRnZhcmlhYmxlJTNFJTNDJTJGdmFyaWFibGVzJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyWCU1RW0lMkNtJTNGRyUzRkNifmIhdkpic1l4ZSUyMiUyMHglM0QlMjItMTIlMjIlMjB5JTNEJTIyLTE0MTIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnZnJTVFTyU1QkRWVyU3Q0clMjVyeHUhdnElM0R1cCUyMiUzRUhlbGxpZ2tlaXQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMmh2SihWJTNBakpRMzZ6dmxpJTNGQWt5MiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMlJBJTI0YSUzQkRqJTVEZiUyQmlONjYlMkIlMkNBRTdpJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJlSzBHIV8lMkNKJTVFZSE1SDBEcjkyJTJGMyUyMiUzRVdlaSVDMyU5RndlcnQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMm9KJTNBJTdETkJoM1IlM0Y1bnNrQiUyNEFwdFElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0U1MCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyWnlrYXlqbCU3RGVWTiUyQyU2MGclMkZCJTNCLiUzQlMlMjIlMjB4JTNEJTIyLTEyJTIyJTIweSUzRCUyMi0xMzEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUFuJTJGQXVzJTNDJTJGZmllbGQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb24lMjIlMjBpZCUzRCUyMiUzRkMlM0IwY0RYLWYlNURBVmdMVWhhTXJQJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuU2Vuc29ycy41LmJ1dHRvbmV2ZW50LjEucmVsZWFzZV9wcmVzcyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFdHJ1ZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRvZ2dsZSUyMiUyMGlkJTNEJTIyQ09CJTI1JTI0d2VzcyU2MHEtbFklNDBhJTVELXghJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuR3JvdXBzLjUub24lM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMjZwJTVCa2I4JTNBJTI1bmslN0NydTUlN0N4an42SSUyMiUyMHglM0QlMjIxNyUyMiUyMHklM0QlMjItMTEwNiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VIZWxsZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyMyh4bDBQbF8lMkY2TXVna29oaTclNUIlNDAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5TZW5zb3JzLjUuYnV0dG9uZXZlbnQuMi5yZWxlYXNlX3ByZXNzJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyKlVRcHMqbGk0Ty53UlNiZnB4MFUlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5Hcm91cHMuNS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyVCUyNEx1JTI1azBHViFPUSUzQW8xbiUyQmlDLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQUREJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJMdTklN0JacygyQlEuMnJJNylFckslMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5Hcm91cHMuNS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJhdENoWClOTmglMjMlMjMzQiUyNGslMkN+fi1kJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ2ZyU1RU8lNUJEVlclN0NHJTI1cnh1IXZxJTNEdXAlMjIlM0VIZWxsaWdrZWl0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjJpcyUyQ2ElN0QlM0YlNDA5KElfJTVEKG8qSG0lN0RmdSUyMiUyMHglM0QlMjIxMyUyMiUyMHklM0QlMjItODYyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUR1bmtsZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyc1ElMkYlMkJmLkhCd19mbWJhaSghaSUzREglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5TZW5zb3JzLjUuYnV0dG9uZXZlbnQuMy5yZWxlYXNlX3ByZXNzJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyUWdsJTNEaUg2YkZVKXF+JTVCcEdxaU0lMjQlMjIlM0UlM0NtdXRhdGlvbiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGh0bWwlMjIlMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5Hcm91cHMuNS5sZXZlbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyV0lUSF9ERUxBWSUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfYXJpdGhtZXRpYyUyMiUyMGlkJTNEJTIyJTVCZiUzQmVXVmNYVipYJTdEJTdEfk10eGdaTCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTUlOVVMlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMiglMjVCTFVyMnAlMkYoLiU2MG9XaTgyNDNtJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuR3JvdXBzLjUubGV2ZWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyV0gtaUQwR2ElN0NuJTYwQiU2MCU1REdRN3glMjVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJ2ZyU1RU8lNUJEVlclN0NHJTI1cnh1IXZxJTNEdXAlMjIlM0VIZWxsaWdrZWl0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb21tZW50JTIyJTIwaWQlM0QlMjIuQiUzQSUyNEY1T3RNMjRwXyU3RHB2VlhKaSUyMiUyMHglM0QlMjIxMyUyMiUyMHklM0QlMjItNjEyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRUZhcmJ0b24lMjBHZWxiZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIySTRscCUzRikpUkZ+SSUyNFRoN2UlM0F1ITElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VkZWNvbnouMC5TZW5zb3JzLjUuYnV0dG9uZXZlbnQuNS5yZWxlYXNlX3ByZXNzJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyKVVmMSUzRnN3T3d1JTI1JTJDR0RZJTIzJTI1ZyFuJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuR3JvdXBzLjUuY3QlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX2FyaXRobWV0aWMlMjIlMjBpZCUzRCUyMi5iUEVxLnIqd3EzJTJGKDdISjZHJTIzJTdDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VNSU5VUyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyRzYlNURzKH5xVWZWWSUyQkN+a2VzaSFjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuR3JvdXBzLjUuY3QlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTVEblo0JTdDJTVEKXEtY09aKSU2MCUyNSU3QyUzRFolMjR+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJlSzBHIV8lMkNKJTVFZSE1SDBEcjkyJTJGMyUyMiUzRVdlaSVDMyU5RndlcnQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMjdUdVhCOG1KZXMlMjUlMjVpa3QlN0RLSSU1QkYlMjIlMjB4JTNEJTIyMTMlMjIlMjB5JTNEJTIyLTM2MiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VGYXJidG9uJTIwV2VpJUMzJTlGZXIlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIycFF3SkU4QiU0MCUyQiU3QmN4cWglMjRyT3clN0RlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZGVjb256LjAuU2Vuc29ycy41LmJ1dHRvbmV2ZW50LjQucmVsZWFzZV9wcmVzcyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFdHJ1ZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMiU1RFB0TXclMjM2blAlMjRmJTdDZSU2MHkubGRrNyUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWRlY29uei4wLkdyb3Vwcy41LmN0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9hcml0aG1ldGljJTIyJTIwaWQlM0QlMjJKfjd6JTQwaWIlMkJlKlh6cCFiY3FEJTdEKSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFQUREJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ+d2woQyU3Q1olN0JKMkNGKUslNDAoRmhIKCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWRlY29uei4wLkdyb3Vwcy41LmN0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTElM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlAlNUJPU0dmTSFRJTVCJTVFSiU3Q0tvJTVEYVVrYyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyZUswRyFfJTJDSiU1RWUhNUgwRHI5MiUyRjMlMjIlM0VXZWklQzMlOUZ3ZXJ0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=