NEWS
[gelöst]Unterkategorien mit ID-Selector ansprechen
-
Hallo zusammen,
Ich habe hier einmal eine Frage zu dem Aufbau einer Liste in einem Blockly-Skript per ID-Selector (Es ist meine erste Frage, also bitte verzeiht mir mein Halbwissen):var telegramText, Nachrichtentext, i, n_; function subsequenceFromStartLast(sequence, at1) { var start = at1; var end = sequence.length - 1 + 1; return sequence.slice(start, end); } // Senden aller aktuellen Tagesverbrauchswerte an Telegram-Bot telegramText = 'Stromgestern'; on({ id: 'telegram.0.communicate.request' /* Letzte empfangene Anfrage */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (('' + getState('telegram.0.communicate.request').val).indexOf(telegramText) + 1 > 0) { // Verbrauchswerte aktuelle Zählerstände sammeln Nachrichtentext += String('------- Hauptzähler -------' + '\n'); var i_list = Array.prototype.slice.apply($('state[state.id=*.day](List_Meter=*daily)')); for (var i_index in i_list) { i = i_list[i_index]; // Verbrauchswerte im Nachrichtentext verketten Nachrichtentext += String(('' + (await getObjectAsync(i)).common.name)); n_ = (await getObjectAsync(i)).common.name.indexOf('==') + 1; Nachrichtentext += String(['\n','--------------',subsequenceFromStartLast((await getObjectAsync(i)).common.name, (n_ - 1)),' : ',Math.round(getState(i).val * 10) / 10,' ',(await getObjectAsync(i)).common.unit,'\n'].join('')); } Nachrichtentext += String('------- Unterzähler 01 -------' + '\n'); var i_list2 = Array.prototype.slice.apply($('state[state.id=*](List_Meter.meter_01.U01_consumption.U01_cons_daily=*)')); for (var i_index2 in i_list2) { i = i_list2[i_index2]; // Verbrauchswerte im Nachrichtentext verketten n_ = (await getObjectAsync(i)).common.name.indexOf('==') + 1; Nachrichtentext += String(['\n','--------------',subsequenceFromStartLast((await getObjectAsync(i)).common.name, (n_ - 1)),' : ',Math.round(getState(i).val * 10) / 10,' ',(await getObjectAsync(i)).common.unit,'\n'].join('')); } console.info(Nachrichtentext); // Telegramm Nachricht sendTo('telegram', 'send', { text: Nachrichtentext, }); } }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyJTJGcWFOKiU3RFMlMkM0UWhoJTdERHghS2hQKiUyMiUzRXRlbGVncmFtVGV4dCUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMjNaTyljUHJZMVVzZSUzQlNoYnRNSjElMjIlM0VOYWNocmljaHRlbnRleHQlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjIlM0JOOCU1RTFnUnhfJTQwQWE1a0w2JTVCKmVPJTIyJTNFaSUzQyUyRnZhcmlhYmxlJTNFJTNDdmFyaWFibGUlMjBpZCUzRCUyMiU1Qm0xKHp5UyU1RUZHNSUyNSU1RFJLYyUyNHIlMkZRJTIyJTNFbl8lM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMm5FcCUyQnIlMjNDamhBITh+ZlAlMjQ0a1VFJTIyJTIweCUzRCUyMi0xMzM3JTIyJTIweSUzRCUyMi00NTEzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09NTUVOVCUyMiUzRVNlbmRlbiUyMGFsbGVyJTIwYWt0dWVsbGVuJTIwVGFnZXN2ZXJicmF1Y2hzd2VydGUlMjBhbiUyMFRlbGVncmFtLUJvdCUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMk8hflAlM0JzMEY4ZSUyNX5qJTNGd2NqWlFWJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMkZxYU4qJTdEUyUyQzRRaGglN0REeCFLaFAqJTIyJTNFdGVsZWdyYW1UZXh0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMio1S2k1a1BKLWhRKCU3Q20lM0RpSFR3JTVEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRVN0cm9tZ2VzdGVybiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyJTVFVXN3aEg2ZndfJTI0Z1NVb1MxWHF4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFdGVsZWdyYW0uMC5jb21tdW5pY2F0ZS5yZXF1ZXN0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VhbnklM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyKVIocjhOMnh5TSU3RCUzRiUyRkhJdiUyQyUzQWshJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyISEzbGMua01KIU1HT3MlNUJqJTJCN21SJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VHVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfaW5kZXhPZiUyMiUyMGlkJTNEJTIyJTIzUXMlMkJBQ2VWZW9CcVZ1LTJ5cDl+JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyRU5EJTIyJTNFRklSU1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udmVydF90b3N0cmluZyUyMiUyMGlkJTNEJTIyNCU2MF9rQyU0MER5Z34uJTI0KEYhcVElNDB3OCUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJsaGJ0X1FLJTI0V1NYdiU1RXZhdi5fJTJGYyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXRlbGVncmFtLjAuY29tbXVuaWNhdGUucmVxdWVzdCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJGSU5EJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnMyLSUyQiU1RChxLThXTyglM0Y3JTVEJTVCNEEoaSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VhYmMlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkolN0RHITlndyUzQXBPc1k5X0Y3KDIhYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTJGcWFOKiU3RFMlMkM0UWhoJTdERHghS2hQKiUyMiUzRXRlbGVncmFtVGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMiU1QjdFKSU3QmUlNUJBdGgyZiUzQlNHJTNGeGpBJTJGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMnhnVS4lNURfYWd6a0slNUVrQTN1JTQwbXMoJTIyJTIwZGlzYWJsZWQlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VpbmZvJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjIlMjNTJTdCOHEqeiU1QiUzQnBDfiUzQSUzQX41TC5xJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnZlcnRfdG9zdHJpbmclMjIlMjBpZCUzRCUyMjRkc3VKbyUyNCU2MFFsJTYwbSU1RXJDWSU1RTl1LSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIybyU3RDl0JTNBVyUzQiUyM3NCemkqNSglNUQqS1dVJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRVN0cm9tZ2VzdGVybiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyfi4lMjNLfkQlMjVCVW94OEUtcHF5aCUzRjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVmVyYnJhdWNoc3dlcnRlJTIwYWt0dWVsbGUlMjBaJUMzJUE0aGxlcnN0JUMzJUE0bmRlJTIwc2FtbWVsbiUzQyUyRmZpZWxkJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfYXBwZW5kJTIyJTIwaWQlM0QlMjJCMjl2NCUyQyUyNG9uQmglM0E3JTdDJTJGcUFtaiElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNaTyljUHJZMVVzZSUzQlNoYnRNSjElMjIlM0VOYWNocmljaHRlbnRleHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTI1OUlGaCUyQ18lNUJ3KTBabmw5WW4lM0FEdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIycik5JTNENyU3Q0l4V34xaiU3QyphcGxOdG0lMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyMiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMkhVZVN4JTNBfmxlYiU1RVl6ZCUyQ2NzJTVCJTI0JTVCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRS0tLS0tLS0lMjBIYXVwdHolQzMlQTRobGVyJTIwLS0tLS0tLSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X25ld2xpbmUlMjIlMjBpZCUzRCUyMmVhJTNGWVpNcH5KU0VtJTI1JTVEVCUyMyUzQnQlM0JCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVHlwZSUyMiUzRSU1Q24lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2ZvckVhY2glMjIlMjBpZCUzRCUyMkJfOXVYIVNaJTYwSSUyMzNmJTIzNXclM0JZJTQwJTdDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0JOOCU1RTFnUnhfJTQwQWE1a0w2JTVCKmVPJTIyJTNFaSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTElTVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnNlbGVjdG9yJTIyJTIwaWQlM0QlMjIlM0Rod2VXYXclMkZOLlI3R2glNURWJTJCZC5RJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXN0YXRlJTVCc3RhdGUuaWQlM0QqLmRheSU1RChMaXN0X01ldGVyJTNEKmRhaWx5KSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMmUhfiUyNSU0MGhIayUyRmQ3R3NpYXVQKWglMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVmVyYnJhdWNoc3dlcnRlJTIwaW0lMjBOYWNocmljaHRlbnRleHQlMjB2ZXJrZXR0ZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2FwcGVuZCUyMiUyMGlkJTNEJTIyXyEpJTQwNFZmTDkuR3dVaSUzQSU2MGFIJTQwYiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyM1pPKWNQclkxVXNlJTNCU2hidE1KMSUyMiUzRU5hY2hyaWNodGVudGV4dCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlMjU5SUZoJTJDXyU1QncpMFpubDlZbiUzQUR2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udmVydF90b3N0cmluZyUyMiUyMGlkJTNEJTIyMmhOSGoxWC1NZ2clM0R3eDctJTJDeiouJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjIwJTJDJTNGUDdWan5hRSUyRmJGaEtfZ2Y3ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0Vjb21tb24ubmFtZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlNyJTIzbzN5VXcqcWE4NnZlcWhuflYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQk44JTVFMWdSeF8lNDBBYTVrTDYlNUIqZU8lMjIlM0VpJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZGVidWclMjIlMjBpZCUzRCUyMmdkb2h3eik1Nyh1dm9+MTAlM0RFJTI0JTNEJTIyJTIwZGlzYWJsZWQlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VpbmZvJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjIlMjNTJTdCOHEqeiU1QiUzQnBDfiUzQSUzQX41TC5xJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyJTNBOX4uUn45eGkxJTVEMk8lNUIyJTJCUm9oeSUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udmVydF90b3N0cmluZyUyMiUyMGlkJTNEJTIySVMqZCU1RSklMkZjJTdEJTdEM2pRLVFEUiU0MCU3Q3IlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMmclMjVTa0MlMkNmdCU3RGNtSHlST3YoJTJGZjAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFY29tbW9uLm5hbWUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnJWcnMlMkMlNUV5TE9jRGJkJTdEJTI1KnBkJTI0MSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRU9iamVjdCUyMElEJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJoMVklNUIlM0F2eFJpakUuWWxBV1BRcHUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQk44JTVFMWdSeF8lNDBBYTVrTDYlNUIqZU8lMjIlM0VpJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyYSUzQSU2MFlUZjk4NHVIKUJqJTJGOFIlMkZ3dCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VtZXRlcl8wMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyMG1feVQ3byUyNDFqcmEwcUJWWjRXTiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTVCbTEoenlTJTVFRkc1JTI1JTVEUktjJTI0ciUyRlElMjIlM0VuXyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2luZGV4T2YlMjIlMjBpZCUzRCUyMkp6JTIzTTU2TjhwTCUzRkdNaCU2MDMuWTQ0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyRU5EJTIyJTNFRklSU1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlX3ZhciUyMiUyMGlkJTNEJTIyR0lGJTVFcSglMkJLJTdDT3clN0IlNUJ+eGElMkJvJTdEXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0Vjb21tb24ubmFtZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMnIlMkIlN0IhMFglNUI0OFU2SSUyQlolMjUlMjNYTX5QJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0JOOCU1RTFnUnhfJTQwQWE1a0w2JTVCKmVPJTIyJTNFaSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJGSU5EJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiU1QnZlJTJGaWQlMjNmYkY4NkJ6LTEoRCUyNTUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNEJTNEJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9hcHBlbmQlMjIlMjBpZCUzRCUyMjhEdGIoNVBiSG45JTNCTSUyNFB4Z2ZDaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyM1pPKWNQclkxVXNlJTNCU2hidE1KMSUyMiUzRU5hY2hyaWNodGVudGV4dCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlMjU5SUZoJTJDXyU1QncpMFpubDlZbiUzQUR2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9qb2luJTIyJTIwaWQlM0QlMjJybCktdWElM0RzJTNBQXglM0JJJTVEc24lMjNCcHglMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyOCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfbmV3bGluZSUyMiUyMGlkJTNEJTIyTDMtUlguZE0lN0RmVHFCJTIzeCUzQUF5biolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJUeXBlJTIyJTNFJTVDbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJaLiUzRFJpNSU1QiU1RVRnJTNGQyU3Q0QlNjB5JTNBJTVEJTNGRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UtLS0tLS0tLS0tLS0tLSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2dldFN1YnN0cmluZyUyMiUyMGlkJTNEJTIyLkFHOVctM3VIck9zVDNjYS0lMkIzRyUyMiUzRSUzQ211dGF0aW9uJTIwYXQxJTNEJTIydHJ1ZSUyMiUyMGF0MiUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSEVSRTElMjIlM0VGUk9NX1NUQVJUJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSEVSRTIlMjIlM0VMQVNUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJTVFJJTkclMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjJhbn4lM0J1QWYlNjB6UFc1JTI0JTVCZEElMkMlMjVGOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0Vjb21tb24ubmFtZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMkhiY0U4JTNCMCUyRksqUSU2MC1iWSUzRmFwNiUyRiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCTjglNUUxZ1J4XyU0MEFhNWtMNiU1QiplTyUyMiUzRWklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyJTdER0JuJTNGRyU1RWUwTCU1QnElNUQlM0YlMjR6KCglM0ZsJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlNUJtMSh6eVMlNUVGRzUlMjUlNURSS2MlMjRyJTJGUSUyMiUzRW5fJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIoJTNGclk4bVklNjAlNDAtRHB0TmIwJTI1UWglMjUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfcm5kZml4ZWQlMjIlMjBpZCUzRCUyMnEuJTIzQm4wT0FZJTI0ZlJWJTI0JTVFRjB0MXclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJuJTIyJTNFMSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyeCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyU2U2dVByJTNBKiU3QlRXNyU3QzY4NEpCVV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UzLjEyMzQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMmF1RGJZbm8lMkNUVERwa0N+KmYlM0JwOSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnJWcnMlMkMlNUV5TE9jRGJkJTdEJTI1KnBkJTI0MSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRU9iamVjdCUyMElEJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJVflZZJTdDYiUyMyU2ME4pTUMlM0RuVThSKHRnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0JOOCU1RTFnUnhfJTQwQWE1a0w2JTVCKmVPJTIyJTNFaSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQURENSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMnkoRzUpWiUyQjUlNDBfdyh+NClGSlhBJTJDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDYlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjJMJTI0JTVENHglMkM2YmgwJTNBUVQ3WiUzRCh1Ni0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFY29tbW9uLnVuaXQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnJWcnMlMkMlNUV5TE9jRGJkJTdEJTI1KnBkJTI0MSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRU9iamVjdCUyMElEJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJ6R3BvOSU3QndIZ191ZHB3RXMlMjRqT1UlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQk44JTVFMWdSeF8lNDBBYTVrTDYlNUIqZU8lMjIlM0VpJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDclMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X25ld2xpbmUlMjIlMjBpZCUzRCUyMm5nfmZEV05WYXglN0IlMkIlNUVBY0oxeGQuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVHlwZSUyMiUzRSU1Q24lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dF9hcHBlbmQlMjIlMjBpZCUzRCUyMiUzQkZ3KiU3Q09rUkI5MzElMkMwb2k5JTNBcG4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNaTyljUHJZMVVzZSUzQlNoYnRNSjElMjIlM0VOYWNocmljaHRlbnRleHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTI1OUlGaCUyQ18lNUJ3KTBabmw5WW4lM0FEdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIydyU1Qi0lNDBENDlSJTNGQSUyQyUyQn4lN0MlM0ItSSklN0RZJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjIlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjI1MXp5JTJGJTdCS1coWHRNUUxlUlAlM0IlMjVuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRS0tLS0tLS0lMjBVbnRlcnolQzMlQTRobGVyJTIwMDElMjAtLS0tLS0tJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfbmV3bGluZSUyMiUyMGlkJTNEJTIySU9XVnM5MXBXc3E5aE0lM0YlMjUhYlglNUUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJUeXBlJTIyJTNFJTVDbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfZm9yRWFjaCUyMiUyMGlkJTNEJTIyMlpUUn4lNUIlMkJHd3kwQyUzQWYlMjV2JTdEdTRJJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlM0JOOCU1RTFnUnhfJTQwQWE1a0w2JTVCKmVPJTIyJTNFaSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTElTVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnNlbGVjdG9yJTIyJTIwaWQlM0QlMjI4N01jQyU3Q3dsUEswOHV3JTI1VVQlN0M4dyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VzdGF0ZSU1QnN0YXRlLmlkJTNEKiU1RChMaXN0X01ldGVyLm1ldGVyXzAxLlUwMV9jb25zdW1wdGlvbi5VMDFfY29uc19kYWlseSUzRCopJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMkRPJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29tbWVudCUyMiUyMGlkJTNEJTIyUmNEaHMlNUJoJTNEdSk1JTNBWjclN0MlN0NFWSUyM1QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT01NRU5UJTIyJTNFVmVyYnJhdWNoc3dlcnRlJTIwaW0lMjBOYWNocmljaHRlbnRleHQlMjB2ZXJrZXR0ZW4lM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2FwcGVuZCUyMiUyMGlkJTNEJTIyZC1YRSU1QnhKWFZfa3NGIWQuJTYwZHElM0ElMjIlMjBkaXNhYmxlZCUzRCUyMnRydWUlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMjNaTyljUHJZMVVzZSUzQlNoYnRNSjElMjIlM0VOYWNocmljaHRlbnRleHQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTI1OUlGaCUyQ18lNUJ3KTBabmw5WW4lM0FEdiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnZlcnRfdG9zdHJpbmclMjIlMjBpZCUzRCUyMmNjTmstYkchLTRMJTNGJTdEJTJDR0gxMldwJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjIlMkNiJTVEMGlaJTJDSXElNUJQSWN1JTVFJTNGN1hUKiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0Vjb21tb24ubmFtZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMlouJTdEJTIzJTJCYyUyNFU0NShjMzJsJTdEJTI0JTIzJTNCOCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCTjglNUUxZ1J4XyU0MEFhNWtMNiU1QiplTyUyMiUzRWklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyKTduJTIzViUyQ2JjJTYwdzAuJTIzcSUyNF90SEZtJTIyJTIwZGlzYWJsZWQlM0QlMjJ0cnVlJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VpbmZvJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyQ3B0UiUyM3IlMkYwJTNEcnAlMjRYaWZZNkhkeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0V0ZXN0JTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2pvaW4lMjIlMjBpZCUzRCUyMk4lMjMwZ0l4UXFWeUZEJTJGNHJxZ3dwMiUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIyJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udmVydF90b3N0cmluZyUyMiUyMGlkJTNEJTIyWVdZRU5TMSUzQmElMkNpcDRobzFZbCUzQlMlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZV92YXIlMjIlMjBpZCUzRCUyMiUyRlA0US5PeHVjJTJCTW9xJTdCJTdEUCUzQW9SLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0Vjb21tb24ubmFtZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMmIpUTN0JTI1JTI1SVFUNiUzRiU1RCUzRnozOTRNNiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCTjglNUUxZ1J4XyU0MEFhNWtMNiU1QiplTyUyMiUzRWklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJ3QkJYJTQwKkxyX1pLdE0lN0QlNUUzTkp+ciUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VtZXRlcl8wMSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIyWThyISUyNTFoUUwlNDAhOC1kJTYwciUyNTRYdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTVCbTEoenlTJTVFRkc1JTI1JTVEUktjJTI0ciUyRlElMjIlM0VuXyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2luZGV4T2YlMjIlMjBpZCUzRCUyMmJIJTdDR2YpM3RRJTJCSSUzRCUyNWlHZShnTGYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJFTkQlMjIlM0VGSVJTVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjIxJTdDbSU1RWZITThEaWchJTVEJTVCfnYlM0FxaVQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFY29tbW9uLm5hbWUlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnJWcnMlMkMlNUV5TE9jRGJkJTdEJTI1KnBkJTI0MSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRU9iamVjdCUyMElEJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJPSk9senklMkJjVmFhSEglMjNoJTNEVyhlWSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCTjglNUUxZ1J4XyU0MEFhNWtMNiU1QiplTyUyMiUzRWklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyRklORCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJUd0drU3olM0FITEElNjA5WmRjITAwJTQwdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0QlM0QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2FwcGVuZCUyMiUyMGlkJTNEJTIyIWR2bzBMJTJGUWpuJTdCJTI1aWslM0FDb00lMjRjJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIzWk8pY1ByWTFVc2UlM0JTaGJ0TUoxJTIyJTNFTmFjaHJpY2h0ZW50ZXh0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiUyNTlJRmglMkNfJTVCdykwWm5sOVluJTNBRHYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2pvaW4lMjIlMjBpZCUzRCUyMiUzQTclMkIlMkZqWDc3dnk1UiU0MHZCNCUyNFklN0JqJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjglMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X25ld2xpbmUlMjIlMjBpZCUzRCUyMmQyRSUzQnRJTnVQSE5vJTJGRyU2MDJsJTYwJTIzZyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlR5cGUlMjIlM0UlNUNuJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMiU1QnAlMjVOaSUzRlUlN0QlMjN0bUY4WHpxVnNMdSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UtLS0tLS0tLS0tLS0tLSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2dldFN1YnN0cmluZyUyMiUyMGlkJTNEJTIyenQyJTdCSiU3REQlMjNKOHMlMjVyUWdxbVp6KCUyMiUzRSUzQ211dGF0aW9uJTIwYXQxJTNEJTIydHJ1ZSUyMiUyMGF0MiUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSEVSRTElMjIlM0VGUk9NX1NUQVJUJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSEVSRTIlMjIlM0VMQVNUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJTVFJJTkclMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWVfdmFyJTIyJTIwaWQlM0QlMjJObVlnZksxeSU3QloyYi4lN0QzKF8lN0QlM0J2JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRWNvbW1vbi5uYW1lJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJyVnJzJTJDJTVFeUxPY0RiZCU3RCUyNSpwZCUyNDElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VPYmplY3QlMjBJRCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyb0RkbjQzTW1BbVY2V29oRjRsJTVEVSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyJTNCTjglNUUxZ1J4XyU0MEFhNWtMNiU1QiplTyUyMiUzRWklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQVQxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyUmtlOENIY01pWCUzRiglN0RnKS1CVCUzQXclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiU1Qm0xKHp5UyU1RUZHNSUyNSU1RFJLYyUyNHIlMkZRJTIyJTNFbl8lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmk0JTdCVGE5aFVKODUlN0Nsb1ZIJTVCRmxDJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMCUzQSUyMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX3JuZGZpeGVkJTIyJTIwaWQlM0QlMjJ5JTYwJTQwNyUzRkttRTRzZSUyNXAqKk0lNUJjbSU3RCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm4lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJ4JTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjJTZTZ1UHIlM0EqJTdCVFc3JTdDNjg0SkJVXyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTMuMTIzNCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlX3ZhciUyMiUyMGlkJTNEJTIyJTVCOU5GeEUyMjVLeElWSm9IVE8zJTI0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyclZycyUyQyU1RXlMT2NEYmQlN0QlMjUqcGQlMjQxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFT2JqZWN0JTIwSUQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMjc4JTIzUFIlNUIxJTdEYjMyU09qR3ZpWUglN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQk44JTVFMWdSeF8lNDBBYTVrTDYlNUIqZU8lMjIlM0VpJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ1JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyQyUyNVQlMjNfLiUyRiUyQyUyQ35sJTdCWFB0JTJGa0xWbSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ2JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlX3ZhciUyMiUyMGlkJTNEJTIyLksubGZVRCElMkJ1aDklNUVMZ1JuUTN0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRWNvbW1vbi51bml0JTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjJyVnJzJTJDJTVFeUxPY0RiZCU3RCUyNSpwZCUyNDElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VPYmplY3QlMjBJRCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyT1clNDAlN0JhJTJGMSU3QlROTnclM0ElNUVQZlAzeEYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUzQk44JTVFMWdSeF8lNDBBYTVrTDYlNUIqZU8lMjIlM0VpJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDclMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X25ld2xpbmUlMjIlMjBpZCUzRCUyMlIlNjB1SGRuJTJDJTJCTSUyRkxfJTdDSmVIRzYlNUUlN0QlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJUeXBlJTIyJTNFJTVDbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJkZWJ1ZyUyMiUyMGlkJTNEJTIyUE9xX1M2LiUzRGkpISUyRmklMjM5ZiU3Q2olM0RBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0VpbmZvJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMjIlMjNTJTdCOHEqeiU1QiUzQnBDfiUzQSUzQX41TC5xJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRlc3QlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMiU2MFVOVk84Q3MlNUVyR0xGJTIzUDhDTTNUJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIzWk8pY1ByWTFVc2UlM0JTaGJ0TUoxJTIyJTNFTmFjaHJpY2h0ZW50ZXh0JTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbW1lbnQlMjIlMjBpZCUzRCUyMlI4KUMlN0NlNVI0LUUlNUVodzJfMyhZSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkNPTU1FTlQlMjIlM0VUZWxlZ3JhbW0lMjBOYWNocmljaHQlMjAlM0MlMkZmaWVsZCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZWxlZ3JhbSUyMiUyMGlkJTNEJTIyRU1JUCFhJTVCcmFyciUyMzYlNjBtWG4xeiglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlNUQU5DRSUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTE9HJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTSUxFTlQlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyUEFSU0VNT0RFJTIyJTNFZGVmYXVsdCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyRVNDQVBJTkclMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyRElTQUJMRV9XRUJfUEFHRV9QUkVWSUVXJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk1FU1NBR0UlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyWGwlMjNwZiU1RXR0eHNMZmFPT3NQZ2RnJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyRm9wdCUyRmlvYnJva2VyJTJGaW9icm9rZXItZGF0YSUyRmVjaGFydHMtdGVtcC1waG90by5qcGclM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMjRUOCUyQiU1RGhPMCUzQXlFNHklN0IlMkMyTkV1NSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyM1pPKWNQclkxVXNlJTNCU2hidE1KMSUyMiUzRU5hY2hyaWNodGVudGV4dCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
Damit sollen alle Energiezähler-Tagesverbräuche in einer Telegrammnachricht versendet werden.
Um jetzt nicht im Objektbaum "hin- und herzulaufen" dachte ich, ich erstelle zur besseren Übersicht unter Kategorien eine weitere Struktur für meine Energiezähler:
Diese versuche ich nun seit geraumer Zeit (bisher dachte ich, es liegt an meinen bescheidenen Java-Script / Blockly Kenntnissen) in einer For-Each Schleife zu durchlaufen, aber bekommen die nicht "gepackt".
Nun habe ich gerade diesen
Re: [Gelöst] Mal wieder IDs vom Selektor
älteren Beitrag gefunden, der aber davon spricht, das die von mir gedachte Funktion (Kategorie-Struktur durchlaufen) gar nicht so gewollt ist. Der entsprechende Git-Hub Eintrag https://github.com/ioBroker/ioBroker.admin/issues/1278
wurde geschlossen.Auch hier: https://www.iobroker.net/#de/documentation/admin/enums.md
und hier: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#---selector
konnte ich nichts finden, was mir geholfen hat, dass Problem zu lösenJetzt meine Fragen:
- Was ist der Grund, weshalb keine Kategoriestrukturen aufgebaut werden sollen?
- Wie programmiere ich das sauber, ohne jedes Element einzeln ansprechen zu müssen? Alliasse funktionieren bei mir irgendwie nicht ( da arbeite ich noch dran, habe auch noch Updates vom Proxmox-System vor mir ... mal sehen ...), Linkeddevices habe ich aber mit einer (hoffentlich) sauberen Struktur aufgesetzt.
Besten Dank vorab für eure Hilfe!
Grüße
-
@meisterschatten sagte::
var i_list = Array.prototype.slice.apply($('state[state.id=*.day](List_Meter=*daily)'));
Wildcards können im Selektor nur für die ID verwendet werden.
-
@meisterschatten
Lege die nicht als "enum" sondern als "function" an.Dann kannst Du so darauf zugreifen:
const i_List = Array.prototype.slice.apply($("(functions=window)"));
-
Bei den Fenstern klappt es. Da habe ich auch nicht so viele Ebenen.
Bei den Energiezählern habe ich aber 3 Ebenen ( Hauptzähler, Unterzähler 1, …) da geht es nicht.
Ich wollte auch „Ordnung“ haben und nicht alles unter „Functions“ gequetscht. Genaugenommen ist es ja auch keine Funktion. -
@meisterschatten sagte: Bei den Energiezählern habe ich aber 3 Ebenen ( Hauptzähler, Unterzähler 1, …) da geht es nicht.
Unterebenen machen bei Enums keinen Sinn. Du kannst durchaus eine Kategorie "List_Meter" verwenden und direkt darunter die Aufzählungen erstellen. Beispiel:
Der Selektor wäre:
var i_list = Array.prototype.slice.apply($('*(List_Meter=H00_cons_daily)'));
-
@paul53
Erstmal Danke für die Hilfe!
Ich habe es jetzt wie von Dir beschrieben aufgebaut (hätte es lieber geordneter - aber man passt sich ja an wo man kann ). Die Objekte werden gefunden, allerdings bekomme ich den Objektnamen nicht:// Verbrauchswerte aktuelle Zählerstände sammeln Nachrichtentext += String('------- Hauptzähler -------' + '\n'); var i_list = Array.prototype.slice.apply($('*(List_Meter=meter_00_cons_daily)')); for (var i_index in i_list) { i = i_list[i_index]; // Verbrauchswerte im Nachrichtentext verketten Nachrichtentext += String(('' + (await getObjectAsync(i)).common.name)); }
Wo ist mein Fehler?
Das Abrufen von Objektwerten klappt dagegen... -
@meisterschatten sagte: Wo ist mein Fehler?
Poste bitte das Blockly, denn der gezeigte Javascript-Code ist unvollständig.
-
@paul53
ok, hoffe ich mache das jetzt richtig:<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</variable> <variable id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</variable> <variable id=";N8^1gRx_@Aa5kL6[*eO">i</variable> <variable id="[m1(zyS^FG5%]RKc$r/Q">n_</variable> </variables> <block type="comment" id="nEp+r#CjhA!8~fP$4kUE" x="-1337" y="-4513"> <field name="COMMENT">Senden aller aktuellen Tagesverbrauchswerte an Telegram-Bot</field> <next> <block type="variables_set" id="O!~P;s0F8e%~j?wcjZQV"> <field name="VAR" id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</field> <value name="VALUE"> <block type="text" id="*5Ki5kPJ-hQ(|m=iHTw]"> <field name="TEXT">Stromgestern</field> </block> </value> <next> <block type="on" id="^UswhH6fw_$gSUoS1Xqx"> <field name="OID">telegram.0.communicate.request</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id=")R(r8N2xyM}?/HIv,:k!"> <value name="IF0"> <block type="logic_compare" id="!!3lc.kMJ!MGOs[j+7mR"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="#Qs+ACeVeoBqVu-2yp9~"> <field name="END">FIRST</field> <value name="VALUE"> <block type="convert_tostring" id="4`_kC@Dyg~.$(F!qQ@w8"> <value name="VALUE"> <block type="get_value" id="lhbt_QK$WSXv^vav._/c"> <field name="ATTR">val</field> <field name="OID">telegram.0.communicate.request</field> </block> </value> </block> </value> <value name="FIND"> <shadow type="text" id="s2-+](q-8WO(?7][4A(i"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="J}G!9gw:pOsY9_F7(2!b"> <field name="VAR" id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="[7E){e[Ath2f;SG?xjA/"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="xgU.]_agzkK^kA3u@ms(" disabled="true"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="convert_tostring" id="4dsuJo$`Ql`m^rCY^9u-"> <value name="VALUE"> <block type="text" id="o}9t:W;#sBzi*5(]*KWU"> <field name="TEXT">Stromgestern</field> </block> </value> </block> </value> <next> <block type="comment" id="~.#K~D%BUox8E-pqyh?3"> <field name="COMMENT">Verbrauchswerte aktuelle Zählerstände sammeln</field> <next> <block type="text_append" id="B29v4,$onBh:7|/qAmj!"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> <value name="TEXT"> <shadow type="text" id="%9IFh,_[w)0Znl9Yn:Dv"> <field name="TEXT"></field> </shadow> <block type="text_join" id="r)9=7|IxW~1j|*aplNtm"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="HUeSx:~leb^Yzd,cs[$["> <field name="TEXT">------- Hauptzähler -------</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="ea?YZMp~JSEm%]T#;t;B"> <field name="Type">\n</field> </block> </value> </block> </value> <next> <block type="controls_forEach" id="B_9uX!SZ`I#3f#5w;Y@|"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> <value name="LIST"> <block type="selector" id="=hweWaw/N.R7Gh]V+d.Q"> <field name="TEXT">*(List_Meter=meter_00_cons_daily)</field> </block> </value> <statement name="DO"> <block type="comment" id="e!~%@hHk/d7GsiauP)h%"> <field name="COMMENT">Verbrauchswerte im Nachrichtentext verketten</field> <next> <block type="debug" id="gdohwz)57(uvo~10=E$="> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="text_join" id=":9~.R~9xi1]2O[2+Rohy"> <mutation items="2"></mutation> <value name="ADD0"> <block type="convert_tostring" id="IS*d^)/c}}3jQ-QDR@|r"> <value name="VALUE"> <block type="get_value_var" id="g%SkC,ft}cmHyROv(/f0"> <field name="ATTR">common.name</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="h1Y[:vxRijE.YlAWPQpu"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="a:`YTf984uH)Bj/8R/wt"> <field name="TEXT">meter_00</field> </block> </value> </block> </value> <next> <block type="variables_set" id="0m_yT7o$1jra0qBVZ4WN"> <field name="VAR" id="[m1(zyS^FG5%]RKc$r/Q">n_</field> <value name="VALUE"> <block type="text_indexOf" id="Jz#M56N8pL?GMh`3.Y44"> <field name="END">FIRST</field> <value name="VALUE"> <block type="get_value_var" id="GIF^q(+K|Ow{[~xa+o}_"> <field name="ATTR">common.name</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="r+{!0X[48U6I+Z%#XM~P"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> <value name="FIND"> <shadow type="text" id="[ve/id#fbF86Bz-1(D%5"> <field name="TEXT">==</field> </shadow> </value> </block> </value> <next> <block type="text_append" id="8Dtb(5PbHn9;M$PxgfCh"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> <value name="TEXT"> <shadow type="text" id="%9IFh,_[w)0Znl9Yn:Dv"> <field name="TEXT"></field> </shadow> <block type="text_join" id="rl)-ua=s:Ax;I]sn#Bpx"> <mutation items="8"></mutation> <value name="ADD0"> <block type="text_newline" id="L3-RX.dM}fTqB#x:Ayn*"> <field name="Type">\n</field> </block> </value> <value name="ADD1"> <block type="text" id="Z.=Ri5[^Tg?C|D`y:]?D"> <field name="TEXT">--------------</field> </block> </value> <value name="ADD2"> <block type="text_getSubstring" id=".AG9W-3uHrOsT3ca-+3G"> <mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"> <block type="get_value_var" id="an~;uAf`zPW5$[dA,%F9"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="HbcE8;0/K*Q`-bY?ap6/"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> <value name="AT1"> <block type="variables_get" id="}GBn?G^e0L[q]?$z((?l"> <field name="VAR" id="[m1(zyS^FG5%]RKc$r/Q">n_</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text" id="(?rY8mY`@-DptNb0%Qh%"> <field name="TEXT"> : </field> </block> </value> <value name="ADD4"> <block type="math_rndfixed" id="q.#Bn0OAY$fRV$^F0t1w"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="Se6uPr:*{TW7|684JBU_"> <field name="NUM">3.1234</field> </shadow> <block type="get_value_var" id="auDbYno,TTDpkC~*f;p9"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="U~VY|b#`N)MC=nU8R(tg"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> </block> </value> <value name="ADD5"> <block type="text" id="y(G5)Z+5@_w(~4)FJXA,"> <field name="TEXT"> </field> </block> </value> <value name="ADD6"> <block type="get_value_var" id="L$]4x,6bh0:QT7Z=(u6-"> <field name="ATTR">common.unit</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="zGpo9{wHg_udpwEs$jOU"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> <value name="ADD7"> <block type="text_newline" id="ng~fDWNVax{+^AcJ1xd."> <field name="Type">\n</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id="POq_S6.=i)!/i#9f|j=A"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="`UNVO8Cs^rGLF#P8CM3T"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> </block> </value> <next> <block type="comment" id="R8)C|e5R4-E^hw2_3(YJ"> <field name="COMMENT">Telegramm Nachricht </field> <next> <block type="telegram" id="EMIP!a[rarr#6`mXn1z("> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="Xl#pf^ttxsLfaOOsPgdg"> <field name="TEXT">/opt/iobroker/iobroker-data/echarts-temp-photo.jpg</field> </shadow> <block type="variables_get" id="4T8+]hO0:yE4y{,2NEu5"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@meisterschatten sagte in Unterkategorien in Kategorien mit ID-Selector ansprechen:
hoffe ich mache das jetzt richtig:
bitte auch als Screenshot.
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
-
@homoran
Danke für den Hinweis, das hatte ich noch nicht gelesen.
Ist im Spoiler hinzugefügt. -
@meisterschatten sagte: bekomme ich den Objektnamen nicht
Die Datenpunktnamen mit angehängtem "meter_00" werden nicht in der Schleife ausgegeben?
Wert ist an dieser Stelle sicher falsch:
Da der Datenpunktname mehrmals verwendet wird, setze ihn zu Beginn der Schleife besser in eine Variable.
-
@paul53 Natürlich, "Wert" steht da nur noch aus meinen Tests.
Debug Output bei "Objektname" ist:17.11.2024, 14:08:11.236 [info ]: javascript.0 (9603) Stopping script script.js.Energie.Tagesverbraeuche_heute 17.11.2024, 14:08:11.238 [info ]: javascript.1 (9618) Stopping script script.js.Energie.Tagesverbraeuche_heute 17.11.2024, 14:08:11.326 [info ]: javascript.0 (9603) Start JavaScript script.js.Energie.Tagesverbraeuche_heute (Blockly) 17.11.2024, 14:08:11.335 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: subscribe: {"pattern":{"id":"telegram.0.communicate.request","change":"any","q":0},"name":"script.js.Energie.Tagesverbraeuche_heute"} 17.11.2024, 14:08:11.335 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 17.11.2024, 14:09:35.303 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: getState(id=telegram.0.communicate.request, timerId=undefined) => {"val":"[Michael]Stromgestern","ack":true,"ts":1731848975301,"q":0,"from":"system.adapter.telegram.0","user":"system.user.admin","lc":1731842969177} 17.11.2024, 14:09:35.411 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: getObject(id=statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day, enumName=null) => {"common":{"type":"number","role":"value","name":{"en":"Daily value","de":"Tageswert","ru":"Ежедневная стоимость","pt":"Valor diário","nl":"Daily waarde","fr":"Valeur quotidienne","it":"Valore giornaliero","es":"Valor diario","pl":"Daily","uk":"Добова норма","zh-cn":"每日价值"},"write":false,"read":true,"custom":{"sql.1":{"enabled":true,"storageType":"","counter":false,"aliasId":"","debounceTime":500,"blockTime":0,"changesOnly":true,"changesRelogInterval":30,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"retention":0,"customRetentionDuration":365,"maxLength":0,"enableDebugLogs":true,"debounce":1000,"ignoreZero":true}}},"native":{"addr":"linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol"},"type":"state","_id":"statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"from":"system.adapter.statistics.0","user":"system.user.admin","ts":1731101038184} 17.11.2024, 14:09:35.411 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: [object Object]meter_00 17.11.2024, 14:09:35.412 [info ]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: getObject(id=statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day, enumName=null) => {"common":{"type":"number","role":"value","name":{"en":"Daily value","de":"Tageswert","ru":"Ежедневная стоимость","pt":"Valor diário","nl":"Daily waarde","fr":"Valeur quotidienne","it":"Valore giornaliero","es":"Valor diario","pl":"Daily","uk":"Добова норма","zh-cn":"每日价值"},"write":false,"read":true,"custom":{"sql.1":{"enabled":true,"storageType":"","counter":false,"aliasId":"","debounceTime":500,"blockTime":0,"changesOnly":true,"changesRelogInterval":30,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"retention":0,"customRetentionDuration":365,"maxLength":0,"enableDebugLogs":true,"debounce":1000,"ignoreZero":true}}},"native":{"addr":"linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol"},"type":"state","_id":"statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"from":"system.adapter.statistics.0","user":"system.user.admin","ts":1731101038184} 17.11.2024, 14:09:35.413 [error]: javascript.0 (9603) script.js.Energie.Tagesverbraeuche_heute: TypeError: (intermediate value).common.name.indexOf is not a function 17.11.2024, 14:09:35.413 [error]: javascript.0 (9603) at Object.<anonymous> (script.js.Energie.Tagesverbraeuche_heute:24:50)
-
@meisterschatten sagte: [object Object]meter_00
Die Datenpunktnamen sind mehrsprachig.
Aus deinem ersten Post entnehme ich, dass die DP-Namen alle gleich sind: "Tageswert".EDIT: Mit mehrsprachigem Namen versuche es mal so:
Was möchtest du als Nachricht ausgeben?
Die "==" befinden sich in der Datenpunkt-ID - nicht im Namen! -
@paul53
Vielen Dank Paul!
Ja der Objektname ist mehrsprachig, wie ich auch gerade festgestellt habe.
Ich habe es zwar zwischenzeitlich selbst gelöst, aber deine Lösung mit "de" finde ich sicherer, als bei mir mit Auswahl nach Index.Hier noch meine Lösung:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</variable> <variable id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</variable> <variable id=";N8^1gRx_@Aa5kL6[*eO">i</variable> <variable id="Q#9rHor5!ZZ4!,mL@YD{">Objectname</variable> <variable id="[m1(zyS^FG5%]RKc$r/Q">n_</variable> </variables> <block type="comment" id="nEp+r#CjhA!8~fP$4kUE" x="-1337" y="-4513"> <field name="COMMENT">Senden aller aktuellen Tagesverbrauchswerte an Telegram-Bot</field> <next> <block type="variables_set" id="O!~P;s0F8e%~j?wcjZQV"> <field name="VAR" id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</field> <value name="VALUE"> <block type="text" id="*5Ki5kPJ-hQ(|m=iHTw]"> <field name="TEXT">Stromgestern</field> </block> </value> <next> <block type="on" id="^UswhH6fw_$gSUoS1Xqx"> <field name="OID">telegram.0.communicate.request</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id=")R(r8N2xyM}?/HIv,:k!"> <value name="IF0"> <block type="logic_compare" id="!!3lc.kMJ!MGOs[j+7mR"> <field name="OP">GT</field> <value name="A"> <block type="text_indexOf" id="#Qs+ACeVeoBqVu-2yp9~"> <field name="END">FIRST</field> <value name="VALUE"> <block type="convert_tostring" id="4`_kC@Dyg~.$(F!qQ@w8"> <value name="VALUE"> <block type="get_value" id="lhbt_QK$WSXv^vav._/c"> <field name="ATTR">val</field> <field name="OID">telegram.0.communicate.request</field> </block> </value> </block> </value> <value name="FIND"> <shadow type="text" id="s2-+](q-8WO(?7][4A(i"> <field name="TEXT">abc</field> </shadow> <block type="variables_get" id="J}G!9gw:pOsY9_F7(2!b"> <field name="VAR" id="/qaN*}S,4Qhh}Dx!KhP*">telegramText</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="[7E){e[Ath2f;SG?xjA/"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="xgU.]_agzkK^kA3u@ms(" disabled="true"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="convert_tostring" id="4dsuJo$`Ql`m^rCY^9u-"> <value name="VALUE"> <block type="text" id="o}9t:W;#sBzi*5(]*KWU"> <field name="TEXT">Stromgestern</field> </block> </value> </block> </value> <next> <block type="comment" id="~.#K~D%BUox8E-pqyh?3"> <field name="COMMENT">Verbrauchswerte aktuelle Zählerstände sammeln</field> <next> <block type="text_append" id="B29v4,$onBh:7|/qAmj!"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> <value name="TEXT"> <shadow type="text" id="%9IFh,_[w)0Znl9Yn:Dv"> <field name="TEXT"></field> </shadow> <block type="text_join" id="r)9=7|IxW~1j|*aplNtm"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="HUeSx:~leb^Yzd,cs[$["> <field name="TEXT">------- Hauptzähler -------</field> </block> </value> <value name="ADD1"> <block type="text_newline" id="ea?YZMp~JSEm%]T#;t;B"> <field name="Type">\n</field> </block> </value> </block> </value> <next> <block type="controls_forEach" id="B_9uX!SZ`I#3f#5w;Y@|"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> <value name="LIST"> <block type="selector" id="=hweWaw/N.R7Gh]V+d.Q"> <field name="TEXT">*(List_Meter=meter_00_cons_daily)</field> </block> </value> <statement name="DO"> <block type="comment" id="e!~%@hHk/d7GsiauP)h%"> <field name="COMMENT">Verbrauchswerte im Nachrichtentext verketten</field> <next> <block type="variables_set" id="]/E%[5#Jq;oDsymAx2MN"> <field name="VAR" id="Q#9rHor5!ZZ4!,mL@YD{">Objectname</field> <value name="VALUE"> <block type="convert_tostring" id="IS*d^)/c}}3jQ-QDR@|r"> <value name="VALUE"> <block type="lists_getIndex" id="8vLv_CfKKy6^R#qFsy]v"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="get_value_var" id="g%SkC,ft}cmHyROv(/f0"> <field name="ATTR">common.name</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="h1Y[:vxRijE.YlAWPQpu"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> <value name="AT"> <block type="math_number" id="z||Bm=;k0p4u^Kcc4Bz~"> <field name="NUM">2</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="gdohwz)57(uvo~10=E$="> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="text_join" id=":9~.R~9xi1]2O[2+Rohy"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="-dh/AW;U3cl*@d(rZWuK"> <field name="VAR" id="Q#9rHor5!ZZ4!,mL@YD{">Objectname</field> </block> </value> <value name="ADD1"> <block type="text" id="a:`YTf984uH)Bj/8R/wt"> <field name="TEXT">meter_00</field> </block> </value> </block> </value> <next> <block type="variables_set" id="0m_yT7o$1jra0qBVZ4WN"> <field name="VAR" id="[m1(zyS^FG5%]RKc$r/Q">n_</field> <value name="VALUE"> <block type="text_indexOf" id="Jz#M56N8pL?GMh`3.Y44"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="O?S@|nD,)l`e?0Lv%W`H"> <field name="VAR" id="Q#9rHor5!ZZ4!,mL@YD{">Objectname</field> </block> </value> <value name="FIND"> <shadow type="text" id="[ve/id#fbF86Bz-1(D%5"> <field name="TEXT">==</field> </shadow> </value> </block> </value> <next> <block type="text_append" id="8Dtb(5PbHn9;M$PxgfCh"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> <value name="TEXT"> <shadow type="text" id="%9IFh,_[w)0Znl9Yn:Dv"> <field name="TEXT"></field> </shadow> <block type="text_join" id="rl)-ua=s:Ax;I]sn#Bpx"> <mutation items="8"></mutation> <value name="ADD0"> <block type="text_newline" id="L3-RX.dM}fTqB#x:Ayn*"> <field name="Type">\n</field> </block> </value> <value name="ADD1"> <block type="text" id="Z.=Ri5[^Tg?C|D`y:]?D"> <field name="TEXT">--------------</field> </block> </value> <value name="ADD2"> <block type="text_getSubstring" id=".AG9W-3uHrOsT3ca-+3G"> <mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"> <block type="variables_get" id="eBW^_V!+xC[(K`2X{{~)"> <field name="VAR" id="Q#9rHor5!ZZ4!,mL@YD{">Objectname</field> </block> </value> <value name="AT1"> <block type="variables_get" id="}GBn?G^e0L[q]?$z((?l"> <field name="VAR" id="[m1(zyS^FG5%]RKc$r/Q">n_</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text" id="(?rY8mY`@-DptNb0%Qh%"> <field name="TEXT"> : </field> </block> </value> <value name="ADD4"> <block type="math_rndfixed" id="q.#Bn0OAY$fRV$^F0t1w"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="Se6uPr:*{TW7|684JBU_"> <field name="NUM">3.1234</field> </shadow> <block type="get_value_var" id="auDbYno,TTDpkC~*f;p9"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="U~VY|b#`N)MC=nU8R(tg"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> </block> </value> <value name="ADD5"> <block type="text" id="y(G5)Z+5@_w(~4)FJXA,"> <field name="TEXT"> </field> </block> </value> <value name="ADD6"> <block type="get_value_var" id="L$]4x,6bh0:QT7Z=(u6-"> <field name="ATTR">common.unit</field> <value name="OID"> <shadow type="field_oid" id="rVrs,^yLOcDbd}%*pd$1"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="zGpo9{wHg_udpwEs$jOU"> <field name="VAR" id=";N8^1gRx_@Aa5kL6[*eO">i</field> </block> </value> </block> </value> <value name="ADD7"> <block type="text_newline" id="ng~fDWNVax{+^AcJ1xd."> <field name="Type">\n</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="debug" id="POq_S6.=i)!/i#9f|j=A"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="2#S{8q*z[;pC~::~5L.q"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="`UNVO8Cs^rGLF#P8CM3T"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> </block> </value> <next> <block type="comment" id="R8)C|e5R4-E^hw2_3(YJ"> <field name="COMMENT">Telegramm Nachricht </field> <next> <block type="telegram" id="EMIP!a[rarr#6`mXn1z("> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="Xl#pf^ttxsLfaOOsPgdg"> <field name="TEXT">/opt/iobroker/iobroker-data/echarts-temp-photo.jpg</field> </shadow> <block type="variables_get" id="4T8+]hO0:yE4y{,2NEu5"> <field name="VAR" id="3ZO)cPrY1Use;ShbtMJ1">Nachrichtentext</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@paul53 said in Unterkategorien in Kategorien mit ID-Selector ansprechen:
@meisterschatten sagte: [object Object]meter_00
Die Datenpunktnamen sind mehrsprachig.
Aus deinem ersten Post entnehme ich, dass die DP-Namen alle gleich sind: "Tageswert".EDIT: Mit mehrsprachigem Namen versuche es mal so:
Was möchtest du als Nachricht ausgeben?
Die "==" befinden sich in der Datenpunkt-ID - nicht im Namen!OK, ID<>Namen, das habe ich übersehen. Wie bekomme ich denn die ID?
-
@meisterschatten sagte: Hier noch meine Lösung:
Ersetze an den beiden Stellen die Variable
Objectname
durch die Variablei
:@meisterschatten sagte in Unterkategorien in Kategorien mit ID-Selector ansprechen:
Wie bekomme ich denn die ID?
Ist in
i
enthalten. -
@paul53
Wunderbar, so klappt es!Jetzt habe ich noch zwei Verständnisprobleme:
-
Der Objektname scheint bei mir leer zu sein - kann ich den selber definieren (z.B. mit einem anderen Skript)?
-
Die Einheit scheint durch linkeddevices nicht an das verlinkte Objekt übergeben worden sein. Kann man das irgendwo einstellen, oder muss ich mir die Einheit aus dem Ursprungsobjekt holen?
Edit aktuelle Einstellung verlinkte Objekte:
PS: Was ist denn hier die "Währung" für gute/sehr hilfreiche Beiträge?
-
-
@meisterschatten sagte: muss ich mir die Einheit aus dem Ursprungsobjekt holen?
Die Einheit muss im per Blockly ausgewerteten Datenpunkt "statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day" stehen.
@meisterschatten sagte in Unterkategorien in Kategorien mit ID-Selector ansprechen:
Was ist denn hier die "Währung" für gute/sehr hilfreiche Beiträge?
Ein Klick auf den Pfeil nach oben:
-
@paul53 said in Unterkategorien in Kategorien mit ID-Selector ansprechen:
Die Einheit muss im per Blockly ausgewerteten Datenpunkt "statistics.0.save.sumDelta.linkeddevices.0.++HSS7.B.01KG.VK==DDC1+01KG.HZ=BF010.HZ=BF010&TotE_B_TotVol.day" stehen.
Ist bei mir leider nicht der Fall. Hatte die linkeddevices im Verdacht, aber dort sind Einheiten drin. Nur in den Wertem vom statistics-Adapter nicht. Finde dafür auch keine Einstellung.
-
@meisterschatten sagte: in den Wertem vom statistics-Adapter nicht. Finde dafür auch keine Einstellung.
Trage die Einheiten manuell nach oder gebe im Blockly den Text "kWh" ein.