anlegen_in arry trenner id anzahl_geraete_aktiv alexa_instanz_0 alexa_instanz_1 Datenpruefung emoji_ausgabe_an welche_geraete emoji_ausgabe_aus einzahl_geraet anzahl_geraete_inaktiv ansage warten anzahl_geraete_gesamt angesprochener_echo_instanz_0 e_mail_empfaenger nachricht_ausgabe angesprochener_echo_instanz_1 Steckdosen liste_geraete_aktiv speak_volume_instanz_0 07_ansage_button_eDP etage speak_volume_instanz_1 Lichter speicherort liste_geraete_inaktiv angesprochener_echo_instanz_0_neu angesprochener_echo_instanz_1_neu ansage_einleitungssatz objekt_id_01alexa_eDP emoji_⚑️ Bewegungsmelder emoji_πŸ‘ ueberschrift selektor liste_geraete_aktiv_gesamt speak_volume_instanz_0_neu Ansagelautstaerke speak_volume_instanz_1_neu 02_anzahl_aktiv_eDP objekt_id_05alexa_ssml_eDP objekt_id_09ende_ssml_eDP objekt_id_02hans_eDP emoji_πŸ’‘ ein liste_geraete_aktiv_html 03_liste_aktiv_eDP objekt_id_06hans_ssml_eDP objekt_id_03vicki_eDP emoji_πŸ‘ eine liste_geraete_inaktiv_html objekt_id_07vicki_ssml_eDP objekt_id_04conchita_eDP pfad_geraete_zaehlen htmlText objekt_id_08conchita_ssml_eDP geraet_aktiv 06_liste_aktiv_emojis_eDP geraet_inaktiv logmeldung emoji_βœ… 01_anzahl_gesamt_eDP blockly_start_geraete_zaehlen_einlesen formatierte_ausgabe_zum_start 04_liste_gesamt_eDP 05_liste_html_eDP emoji_❌ emoji_❗️ emoji_☝️ emoji_πŸ‘ˆ emoji_πŸ‘€ emoji_🧯 emoji_πŸ”” objekt_id_email_versenden objekt_id_email_senden Datenpunkte_anlegen LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBPbmx5IGZvciAwX3VzZXJkYXRhLjA6IFRocm93cyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgZm9yY2U9ZmFsc2UuIERlZmF1bHQgaXMgZmFsc2UsIHNvIG5vIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBleGlzdHMuCiAgICBjb25zdCBMT0dfREVCVUcgPSBmYWxzZTsgLy8gVG8gZGVidWcgdGhpcyBmdW5jdGlvbiwgc2V0IHRvIHRydWUKICAgIC8vIFBlciBpc3N1ZSAjNDc0IChodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc0KSwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgZXhlY3V0ZXMgdGhlIGNhbGxiYWNrIAogICAgLy8gYmVmb3JlIHRoZSBzdGF0ZSBpcyBhY3R1YWwgY3JlYXRlZC4gVGhlcmVmb3JlLCB3ZSB1c2UgYSBzZXRUaW1lb3V0IGFuZCBjb3VudGVyIGFzIGEgd29ya2Fyb3VuZC4KICAgIGNvbnN0IERFTEFZID0gNTA7IC8vIERlbGF5IGluIG1pbGxpc2Vjb25kcyAobXMpLiBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCgogICAgLy8gVmFsaWRhdGUgIndoZXJlIgogICAgaWYgKHdoZXJlLmVuZHNXaXRoKCcuJykpIHdoZXJlID0gd2hlcmUuc2xpY2UoMCwgLTEpOyAvLyBSZW1vdmUgdHJhaWxpbmcgZG90CiAgICBpZiAoICh3aGVyZS5tYXRjaCgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pKSR8MF91c2VyZGF0YVwuMCQpLykgPT0gbnVsbCkgKSB7CiAgICAgICAgbG9nKCdUaGlzIHNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHRvIGNyZWF0ZSBzdGF0ZXMgdW5kZXIgWycgKyB3aGVyZSArICddJywgJ2Vycm9yJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFByZXBhcmUgInN0YXRlc1RvQ3JlYXRlIiBzaW5jZSB3ZSBhbHNvIGFsbG93IGEgc2luZ2xlIHN0YXRlIHRvIGNyZWF0ZQogICAgaWYoIUFycmF5LmlzQXJyYXkoc3RhdGVzVG9DcmVhdGVbMF0pKSBzdGF0ZXNUb0NyZWF0ZSA9IFtzdGF0ZXNUb0NyZWF0ZV07IC8vIHdyYXAgaW50byBhcnJheSwgaWYganVzdCBvbmUgYXJyYXkgYW5kIG5vdCBpbnNpZGUgYW4gYXJyYXkKCiAgICAvLyBBZGQgIndoZXJlIiB0byBTVEFURVNfVE9fQ1JFQVRFCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGV0IGxwUGF0aCA9IHN0YXRlc1RvQ3JlYXRlW2ldWzBdLnJlcGxhY2UoL1wuKlwuL2csICcuJyk7IC8vIHJlcGxhY2UgYWxsIG11bHRpcGxlIGRvdHMgbGlrZSAnLi4nLCAnLi4uJyB3aXRoIGEgc2luZ2xlICcuJwogICAgICAgIGxwUGF0aCA9IGxwUGF0aC5yZXBsYWNlKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSlcLil8MF91c2VyZGF0YVwuMFwuKS8sJycpIC8vIHJlbW92ZSBhbnkgamF2YXNjcmlwdC54LiAvIDBfdXNlcmRhdGEuMC4gZnJvbSBiZWdpbm5pbmcKICAgICAgICBscFBhdGggPSB3aGVyZSArICcuJyArIGxwUGF0aDsgLy8gYWRkIHdoZXJlIHRvIGJlZ2lubmluZyBvZiBzdHJpbmcKICAgICAgICBzdGF0ZXNUb0NyZWF0ZVtpXVswXSA9IGxwUGF0aDsKICAgIH0KCiAgICBpZiAod2hlcmUgIT0gJzBfdXNlcmRhdGEuMCcpIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIGphdmFzY3JpcHQueAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgbGV0IGxvb3BJbml0ID0gKGxvb3BQYXJhbVsxXVsnZGVmJ10gPT0gdW5kZWZpbmVkKSA/IG51bGwgOiBsb29wUGFyYW1bMV1bJ2RlZiddOyAvLyBtaW1pYyBzYW1lIGJlaGF2aW9yIGFzIGNyZWF0ZVN0YXRlIGlmIG5vIGluaXQgdmFsdWUgaXMgcHJvdmlkZWQKICAgICAgICAgICAgY3JlYXRlU3RhdGUobG9vcFBhcmFtWzBdLCBsb29wSW5pdCwgZm9yY2UsIGxvb3BQYXJhbVsxXSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciAwX3VzZXJkYXRhLjAKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIGxldCBjb3VudGVyID0gLTE7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgY291bnRlciArPSAxOwogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2cgKCdbRGVidWddIEN1cnJlbnRseSBwcm9jZXNzaW5nIGZvbGxvd2luZyBzdGF0ZTogWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBpZiggKCQobG9vcFBhcmFtWzBdKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUobG9vcFBhcmFtWzBdKSkgKSB7IC8vIFdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzgKICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICAgICAgaWYgKFdBUk4gJiYgIWZvcmNlKSBsb2coJ1N0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICAgICAgaWYgKCFXQVJOICYmIExPR19ERUJVRykgbG9nKCdbRGVidWddIFN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwogICAgICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGUgZXhpc3RzIGFuZCBzaGFsbCBub3QgYmUgb3ZlcndyaXR0ZW4gc2luY2UgZm9yY2U9ZmFsc2UKICAgICAgICAgICAgICAgICAgICAvLyBTbywgd2UgZG8gbm90IHByb2NlZWQuCiAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gd2FzIHByb3ZpZGVkLCB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSBub3cuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gb3V0IGFuZCBjb250aW51ZSB3aXRoIG5leHQgZWxlbWVudCBpbiBsb29wLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBpZighZm9yY2UpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgICAgbGV0IG9iaiA9IHt9OwogICAgICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICAgICAgb2JqLmNvbW1vbiA9IGxvb3BQYXJhbVsxXTsKICAgICAgICAgICAgc2V0T2JqZWN0KGxvb3BQYXJhbVswXSwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0IGZvciBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddOiAnICsgZXJyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKQogICAgICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbG9vcFBhcmFtWzFdLmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobG9vcFBhcmFtWzBdLCBpbml0LCB0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBzZXRTdGF0ZSBkdXJjaGdlZsO8aHJ0OiAnICsgbG9vcFBhcmFtWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgREVMQVkgKyAoMjAgKiBjb3VudGVyKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKZXRhZ2UgPSAnSGF1cycKZ2VyYWV0ID0gJ0xpY2h0ZXInCgpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICAvL1N0aW1tZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMUFsZXhhJywgeyduYW1lJzonMDFBbGV4YScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQWxleGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDJIYW5zJywgeyduYW1lJzonMDJIYW5zJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiSGFucyIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wM1ZpY2tpJywgeyduYW1lJzonMDNWaWNraScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIlZpY2tpIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA0Q29uY2hpdGEnLCB7J25hbWUnOicwNENvbmNoaXRhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiQ29uY2hpdGEiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDVBbGV4YV9zc21sJywgeyduYW1lJzonMDVBbGV4YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJBbGV4YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNkhhbnNfc3NtbCcsIHsnbmFtZSc6JzA2SGFuc19zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJIYW5zIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA3Vmlja2lfc3NtbCcsIHsnbmFtZSc6JzA3Vmlja2lfc3NtbCcsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6JzxzcGVhaz48dm9pY2UgbmFtZT0iVmlja2kiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDhDb25jaGl0YV9zc21sJywgeyduYW1lJzonMDhDb25jaGl0YV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJDb25jaGl0YSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOXNzbWxfZW5kZScsIHsnbmFtZSc6JzA5c3NtbF9lbmRlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPC92b2ljZT48L3NwZWFrPicgfV0sCiAgICAvL0Fuc2FnZSBCdXR0b24KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLjA3XycrW2V0YWdlXSsnXycrW2dlcmFldF0rJ2Fuc2FnZScsIHsnbmFtZSc6ICcwN18nK1tldGFnZV0rJ18nK1tnZXJhZXRdKydhbnNhZ2UnLCd0eXBlJzogJ2Jvb2xlYW4nLCAncmVhZCc6IHRydWUsICd3cml0ZSc6IHRydWUsICdyb2xlJzogJ2J1dHRvbicsJ2RlZic6dHJ1ZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAnJytbZ2VyYWV0XSsnJysnYW5zYWdlJysnICcrW2V0YWdlXSwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLCAKICAgIC8vR2VyYWV0ZSB6YWVobGVuCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wMV9BbnphaGxfJytbZ2VyYWV0XSsnX2dlc2FtdCcsIHsnbmFtZSc6JzAxX0FuemFobF8nK1tnZXJhZXRdKydfZ2VzYW10JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonJytbZ2VyYWV0XSsnJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLjAyX0FuemFobF8nK1tnZXJhZXRdKydfYWt0aXYnLCB7J25hbWUnOicwMl9BbnphaGxfJytbZ2VyYWV0XSsnX2FrdGl2JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonJytbZ2VyYWV0XSsnJywgJ2RlZic6MCB9XSwgICAgCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wM19ha3RpdmVfJytbZ2VyYWV0XSsnX0xpc3RlJywgeyduYW1lJzonMDNfYWt0aXZlXycrW2dlcmFldF0rJ19MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wNF9nZXNhbXRlXycrW2dlcmFldF0rJ19MaXN0ZScsIHsnbmFtZSc6JzA0X2dlc2FtdGVfJytbZ2VyYWV0XSsnX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLjA1X2h0bWxfJytbZ2VyYWV0XSsnX0xpc3RlJywgeyduYW1lJzonMDVfaHRtbF8nK1tnZXJhZXRdKydfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uJytbZ2VyYWV0XSsnX3phZWhsZW4uJytbZXRhZ2VdKycuMDZfYWt0aXZlXycrW2dlcmFldF0rJ19MaXN0ZV9taXRfRW1vamlzJywgeyduYW1lJzonMDZfYWt0aXZlXycrW2dlcmFldF0rJ19MaXN0ZV9taXRfRW1vamlzJywgJ3R5cGUnOidtaXhlZCcsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J21peGVkJywgJ2RlZic6J25vY2ggbGVlcicgfV0sICAgCiAgICAvL0UtTWFpbCBOYWNocmljaHRlbnZlcnNhbmQKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLkVNQUlMXycrW2dlcmFldF0rJ18nK1tldGFnZV0rJ19WZXJzYW5kX2FuX2F1cycsIHsnbmFtZSc6J0VNQUlMXycrW2dlcmFldF0rJ18nK1tldGFnZV0rJ19WZXJzYW5kX2FuX2F1cycsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonc3dpdGNoJywgJ2RlZic6ZmFsc2UgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy5FTUFJTF8nK1tnZXJhZXRdKydzdGF0dXNfJytbZXRhZ2VdKydfc2VuZGVuJywgeyduYW1lJzonRU1BSUxfJytbZ2VyYWV0XSsnc3RhdHVzXycrW2V0YWdlXSsnX3NlbmRlbicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywgJ2RlZic6ZmFsc2UsICJzbWFydE5hbWUiOiB7ImRlIjogIkVNQUlMICIrW2dlcmFldF0rJycrJ3N0YXR1cycrJyAnK1tldGFnZV0rJyBzZW5kZW4nLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgIApdOwoKY3JlYXRlVXNlclN0YXRlcyhhbmxlZ2VuX2luLCBmYWxzZSwgc3RhdGVzVG9DcmVhdGUsIGZ1bmN0aW9uKCl7OwogICAgbWFpbigpOwp9KTsKCgo= Datenpunkte erstellen zaehlen Beschreibe diese Funktion … anzahl_geraete_aktiv 0 anzahl_geraete_inaktiv 0 anzahl_geraete_gesamt 0 liste_geraete_aktiv liste_geraete_inaktiv liste_geraete_aktiv_gesamt liste_geraete_aktiv_html liste_geraete_inaktiv_html htmlText <!DOCTYPE html><html lang="de"><head><title> welche_geraete </title><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body> <p style="color:#0000FF; font-family:Helvetica; font-weight: bold"> welche_geraete status etage </p> <p style="color:#ff0000; font-family:Helvetica; font-weight: bold">letze Γ„nderung: custom TT.MM.JJJJ SS:mm:ss </p> <table border="8" cellspacing="10" cellpadding="20" style="color:black; font-family:Helvetica;background-image: linear-gradient(42deg,transparent,lightblue);"> <tr style="color:#0000FF"; font-weight: bold"><td> welche_geraete etage &ensp;&ensp;&ensp;</td><td>Status</td></tr> <tr><td> geraet_aktiv selektor anzahl_geraete_gesamt 1 GT val geraet_aktiv 0 anzahl_geraete_aktiv 1 INSERT LAST liste_geraete_aktiv geraet_aktiv OR Steckdosen Lichter an Bewegungsmelder aktiv INSERT LAST liste_geraete_aktiv_html geraet_aktiv <td><span style="color:#FF0000"> </span> geraet_inaktiv selektor EQ val geraet_inaktiv 0 anzahl_geraete_inaktiv 1 INSERT LAST liste_geraete_inaktiv geraet_inaktiv OR Steckdosen Lichter aus Bewegungsmelder inaktiv INSERT LAST liste_geraete_inaktiv_html geraet_inaktiv <td> true FALSE Object ID 01_anzahl_gesamt_eDP TRUE anzahl_geraete_gesamt 0 true FALSE Object ID 02_anzahl_aktiv_eDP TRUE anzahl_geraete_aktiv 0 Text eingeschaltet EQ anzahl_geraete_aktiv 0 true FALSE Object ID 03_liste_aktiv_eDP TRUE OR Steckdosen Lichter Die welche_geraete sind ΓΌberall ausgeschaltet. Bewegungsmelder Die welche_geraete sind alle inaktiv. 0 true FALSE Object ID 03_liste_aktiv_eDP TRUE TEXT 1 liste_geraete_aktiv , 0 Text Gesamt EQ anzahl_geraete_aktiv 0 true FALSE Object ID 04_liste_gesamt_eDP TRUE TEXT 1 liste_geraete_inaktiv , 0 NEQ anzahl_geraete_aktiv 0 true FALSE Object ID 04_liste_gesamt_eDP TRUE TEXT 1 liste_geraete_aktiv , , TEXT 1 liste_geraete_inaktiv , 0 EQ anzahl_geraete_aktiv anzahl_geraete_gesamt true FALSE Object ID 04_liste_gesamt_eDP TRUE TEXT 1 liste_geraete_aktiv , 0 html EQ anzahl_geraete_aktiv 0 true FALSE Object ID 05_liste_html_eDP TRUE htmlText TEXT 1 liste_geraete_inaktiv_html <tr><td> </table></body> 0 NEQ anzahl_geraete_aktiv 0 true FALSE Object ID 05_liste_html_eDP TRUE htmlText TEXT 1 liste_geraete_aktiv_html <tr><td> <tr><td> TEXT 1 liste_geraete_inaktiv_html <tr><td> </table></body> 0 EQ anzahl_geraete_aktiv anzahl_geraete_gesamt true FALSE Object ID 05_liste_html_eDP TRUE htmlText TEXT 1 liste_geraete_aktiv_html <tr><td> </table></body> 0 alexa2_adapter_instanz_0 Beschreibe diese Funktion … alexa_instanz_0 alexa2.0.History.serialNumber any default alexa_instanz_0 angesprochener_echo_instanz_0 AND EQ FIRST FROM_START alexa_instanz_0 8 alexa2.0 FIRST FROM_START alexa_instanz_0 8 .Echo-Devices. val alexa_instanz_0 .Commands.ssml speak_volume_instanz_0 AND EQ FIRST FROM_START alexa_instanz_0 8 alexa2.0 FIRST FROM_START alexa_instanz_0 8 .Echo-Devices. val alexa_instanz_0 .Commands.speak-volume angesprochener_echo_instanz_0_neu FIRST FROM_START alexa_instanz_0 8 .Echo-Devices. val alexa_instanz_0 .Commands.ssml speak_volume_instanz_0_neu FIRST FROM_START alexa_instanz_0 8 .Echo-Devices. val alexa_instanz_0 .Commands.speak-volume any default 07_ansage_button_eDP AND EQ angesprochener_echo_instanz_0 TRUE EQ state.from system.adapter.iot.0 false FALSE Object ID speak_volume_instanz_0_neu TRUE Ansagelautstaerke 0 Sprachausgabe am ECHO false FALSE Object ID angesprochener_echo_instanz_0_neu TRUE ansage 0 log logmeldung FIRST FROM_END angesprochener_echo_instanz_0_neu 15 ausgefΓΌhrt βœ… arry, trenner cmV0dXJuIGFycnkuam9pbih0cmVubmVyKTs= Beschreibe diese Funktion … email_senden Beschreibe diese Funktion … FALSE e_mail_empfaenger nachricht_ausgabe etage welche_geraete status alexa2_adapter_instanz_1 Beschreibe diese Funktion … alexa_instanz_1 alexa2.1.History.serialNumber any default alexa_instanz_1 angesprochener_echo_instanz_1 AND EQ FIRST FROM_START alexa_instanz_1 8 alexa2.1 FIRST FROM_START alexa_instanz_1 8 .Echo-Devices. val alexa_instanz_1 .Commands.ssml speak_volume_instanz_1 AND EQ FIRST FROM_START alexa_instanz_1 8 alexa2.1 FIRST FROM_START alexa_instanz_1 8 .Echo-Devices. val alexa_instanz_1 .Commands.speak-volume angesprochener_echo_instanz_1_neu FIRST FROM_START alexa_instanz_1 8 .Echo-Devices. val alexa_instanz_1 .Commands.ssml speak_volume_instanz_1_neu FIRST FROM_START alexa_instanz_1 8 .Echo-Devices. val alexa_instanz_1 .Commands.speak-volume any default 07_ansage_button_eDP AND EQ angesprochener_echo_instanz_1 TRUE EQ state.from system.adapter.iot.0 false FALSE Object ID speak_volume_instanz_1_neu TRUE Ansagelautstaerke 0 Sprachausgabe am ECHO false FALSE Object ID angesprochener_echo_instanz_1_neu TRUE ansage 0 log logmeldung FIRST FROM_END angesprochener_echo_instanz_1_neu 15 ausgefΓΌhrt βœ… getParentName dmFyIG5hbWUgPSBnZXRPYmplY3QoaWQpLmNvbW1vbi5uYW1lOw0KDQppZiAobmFtZS5zdWJzdHIoIC0zKSA9PSAoJy5vbicpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtMyk7DQppZiAobmFtZS5zdWJzdHIoIC02KSA9PSAoJy5TVEFURScpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtNik7DQppZiAobmFtZS5zdWJzdHIoIC02KSA9PSAoJy5zdGF0ZScpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtNik7DQppZiAobmFtZS5zdWJzdHIoIC02KSA9PSAoJy5MRVZFTCcpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtNik7DQppZiAobmFtZS5zdWJzdHIoIC03KSA9PSAoJy5NT1RJT04nKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTcpOw0KaWYgKG5hbWUuc3Vic3RyKCAtOSkgPT0gKCcucHJlc2VuY2UnKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTkpOw0KaWYgKG5hbWUuc3Vic3RyKCAtMTMpID09ICgnIFN3aXRjaCBzdGF0ZScpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtMTMpOw0KaWYgKG5hbWUuc3Vic3RyKCAtMjUpID09ICgnLlBSRVNFTkNFX0RFVEVDVElPTl9TVEFURScpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtMjUpOw0KDQplbHNlIHJldHVybiAnR2VyYWV0IHVuYmVrYW5udCc7DQoNCmlkID0gaWQuc3Vic3RyaW5nKDAsIGlkLmxhc3RJbmRleE9mKCcuJykpOw0KaWYoZXhpc3RzT2JqZWN0KGlkKSAmJiBnZXRPYmplY3QoaWQpLnR5cGUgPT0gJ2NoYW5uZWwnKSByZXR1cm4gZ2V0T2JqZWN0KGlkKS5jb21tb24ubmFtZTsNCmlkID0gaWQuc3Vic3RyaW5nKDAsIGlkLmxhc3RJbmRleE9mKCcuJykpOw0KaWYoZXhpc3RzT2JqZWN0KGlkKSAmJiBnZXRPYmplY3QoaWQpLnR5cGUgPT0gJ2NoYW5uZWwnKSByZXR1cm4gZ2V0T2JqZWN0KGlkKS5jb21tb24ubmFtZTsNCg0KZWxzZSByZXR1cm4gJ0dlcmFldCB1bmJla2FubnQnOw== Beschreibe diese Funktion … ansage_wiedergabe Beschreibe diese Funktion … Datenpruefung EQ val 02_anzahl_aktiv_eDP 0 ansage_einleitungssatz , alle welche_geraete sind inaktiv. NEQ val 02_anzahl_aktiv_eDP 0 ansage_einleitungssatz val 03_liste_aktiv_eDP , alle anderen welche_geraete sind inaktiv. ansage val objekt_id_01alexa_eDP val objekt_id_05alexa_ssml_eDP Datenpruefung val objekt_id_09ende_ssml_eDP val objekt_id_02hans_eDP val objekt_id_06hans_ssml_eDP Datenpruefung val objekt_id_09ende_ssml_eDP val objekt_id_03vicki_eDP val objekt_id_07vicki_ssml_eDP Datenpruefung val objekt_id_09ende_ssml_eDP val objekt_id_04conchita_eDP val objekt_id_08conchita_ssml_eDP Datenpruefung val objekt_id_09ende_ssml_eDP emoji_an Beschreibe diese Funktion … emoji_ausgabe_an Steckdosen emoji_ausgabe_an emoji_⚑️ an Lichter emoji_ausgabe_an emoji_πŸ’‘ an Bewegungsmelder emoji_ausgabe_an emoji_πŸ‘ aktiv emoji_ausgabe_an echo_name aWYoZXhpc3RzT2JqZWN0KGlkKSkgcmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7 Beschreibe diese Funktion … welches_geraet_wird_verwendet Beschreibe diese Funktion … welche_geraete Steckdosen welche_geraete Steckdosen Lichter welche_geraete Lichter Bewegungsmelder welche_geraete Bewegungsmelder welche_geraete emoji_aus Beschreibe diese Funktion … emoji_ausgabe_aus Steckdosen emoji_ausgabe_aus emoji_πŸ‘ aus Lichter emoji_ausgabe_aus emoji_πŸ‘ aus Bewegungsmelder emoji_ausgabe_aus emoji_πŸ‘ inaktiv emoji_ausgabe_aus existiert_DP cmV0dXJuIGV4aXN0c1N0YXRlKGlkKTs= Beschreibe diese Funktion … geraet_vor_versand_pruefen Beschreibe diese Funktion … warten warten 500 ms Steckdosen EQ welche_geraete Steckdosen ueberschrift * etage welche_geraete status * \n EQ val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es ist eine einzahl_geraet \n \n TEXT 1 liste_geraete_aktiv \n GT val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es sind val 02_anzahl_aktiv_eDP welche_geraete \n \n TEXT 1 liste_geraete_aktiv \n EQ val 02_anzahl_aktiv_eDP 0 nachricht_ausgabe ueberschrift emoji_βœ… Alle welche_geraete sind ausgeschaltet emoji_βœ… true FALSE Object ID 06_liste_aktiv_emojis_eDP TRUE nachricht_ausgabe 0 Lichter EQ welche_geraete Lichter ueberschrift * etage welche_geraete status * \n EQ val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es ist ein einzahl_geraet \n \n TEXT 1 liste_geraete_aktiv \n GT val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es sind val 02_anzahl_aktiv_eDP welche_geraete \n \n TEXT 1 liste_geraete_aktiv \n EQ val 02_anzahl_aktiv_eDP 0 nachricht_ausgabe ueberschrift emoji_βœ… Alle welche_geraete sind ausgeschaltet emoji_βœ… true FALSE Object ID 06_liste_aktiv_emojis_eDP TRUE nachricht_ausgabe 0 Bewegungsmelder EQ welche_geraete Bewegungsmelder ueberschrift * etage welche_geraete status * \n EQ val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es ist ein welche_geraete \n \n TEXT 1 liste_geraete_aktiv \n GT val 02_anzahl_aktiv_eDP 1 nachricht_ausgabe ueberschrift Es sind val 02_anzahl_aktiv_eDP welche_geraete \n \n TEXT 1 liste_geraete_aktiv \n EQ val 02_anzahl_aktiv_eDP 0 nachricht_ausgabe ueberschrift emoji_βœ… Alle welche_geraete sind inaktiv emoji_βœ… true FALSE Object ID 06_liste_aktiv_emojis_eDP TRUE nachricht_ausgabe 0 einzahl_geraet Beschreibe diese Funktion … einzahl_geraet Steckdosen einzahl_geraet Steckdose Lichter einzahl_geraet Licht Bewegungsmelder einzahl_geraet Bewegungsmelder einzahl_geraet Forum Link Ansagen: https://forum.iobroker.net/post/273896 Hier 0_userdata.0 oder javascript.x eintagen .x steht fuer die Instanznummer Selektor an die eigene AufzΓ€hlung anpassen speicherort javascript.0 selektor (functions='Licht') Ansagelautstaerke bis 100 auswaehlen Ansagelautstaerke 60 E-Mail Empfaenger eintragen e_mail_empfaenger max.muster@gmx.de Etage rein schreiben etage Haus Steckdosen FALSE Lichter TRUE Bewegungsmelder FALSE speicherort main Hier alle geΓΆffneten Bausteine an die eigene Installation und WΓΌnsche anpassen, blockly_start_geraete_zaehlen_einlesen formatierte_ausgabe_zum_start warten welche_geraete einzahl_geraet ein ein eine eine pfad_geraete_zaehlen .Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen. emoji_ausgabe_an Satzanfang Log Meldung logmeldung βœ… Die etage welche_geraete ansage wurde vom ECHO ansage_einleitungssatz Hier der etage welche_geraete status fΓΌr Dich. Blockly Start Geraete zaehlen einlesen blockly_start_geraete_zaehlen_einlesen 2 sec formatierte_ausgabe_zum_start 4 sec Variablen Geraete zaehlen ne default selektor anzahl_geraete_aktiv 0 anzahl_geraete_inaktiv 0 anzahl_geraete_gesamt 0 liste_geraete_aktiv liste_geraete_inaktiv liste_geraete_aktiv_gesamt liste_geraete_aktiv_html liste_geraete_inaktiv_html 01_anzahl_gesamt_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .01_Anzahl_ welche_geraete _gesamt 02_anzahl_aktiv_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .02_Anzahl_ welche_geraete _aktiv 03_liste_aktiv_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .03_aktive_ welche_geraete _Liste 04_liste_gesamt_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .04_gesamte_ welche_geraete _Liste 05_liste_html_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .05_html_ welche_geraete _Liste 06_liste_aktiv_emojis_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .06_aktive_ welche_geraete _Liste_mit_Emojis emoji_βœ… βœ… emoji_❌ ❌ emoji_❗️ ❗️ emoji_πŸ‘ πŸ‘ emoji_☝️ ☝️ emoji_πŸ‘ˆ πŸ‘ˆ emoji_πŸ’‘ πŸ’‘ emoji_⚑️ ⚑️ emoji_πŸ‘€ πŸ‘€ emoji_πŸ‘ πŸ‘ emoji_🧯 🧯 emoji_πŸ”” πŸ”” Variablen fuer Ansage 07_ansage_button_eDP speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .07_ etage _ welche_geraete ansage objekt_id_01alexa_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.01Alexa objekt_id_02hans_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.02Hans objekt_id_03vicki_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.03Vicki objekt_id_04conchita_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.04Conchita objekt_id_05alexa_ssml_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.05Alexa_ssml objekt_id_06hans_ssml_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.06Hans_ssml objekt_id_07vicki_ssml_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.07Vicki_ssml objekt_id_08conchita_ssml_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.08Conchita_ssml objekt_id_09ende_ssml_eDP speicherort .Geraete_zaehlen_optional_Ansagen.Alexa_Stimmen.09ssml_ende true default objekt_id_01alexa_eDP true FALSE Object ID objekt_id_02hans_eDP FALSE 0 true FALSE Object ID objekt_id_03vicki_eDP FALSE 0 true FALSE Object ID objekt_id_04conchita_eDP FALSE 0 true default objekt_id_02hans_eDP true FALSE Object ID objekt_id_01alexa_eDP FALSE 0 true FALSE Object ID objekt_id_03vicki_eDP FALSE 0 true FALSE Object ID objekt_id_04conchita_eDP FALSE 0 true default objekt_id_03vicki_eDP true FALSE Object ID objekt_id_01alexa_eDP FALSE 0 true FALSE Object ID objekt_id_02hans_eDP FALSE 0 true FALSE Object ID objekt_id_04conchita_eDP FALSE 0 true default objekt_id_04conchita_eDP true FALSE Object ID objekt_id_01alexa_eDP FALSE 0 true FALSE Object ID objekt_id_02hans_eDP FALSE 0 true FALSE Object ID objekt_id_03vicki_eDP FALSE 0 ne default objekt_id_01alexa_eDP default objekt_id_02hans_eDP default objekt_id_03vicki_eDP default objekt_id_04conchita_eDP AND AND val objekt_id_01alexa_eDP val objekt_id_02hans_eDP AND val objekt_id_03vicki_eDP val objekt_id_04conchita_eDP true FALSE Object ID objekt_id_01alexa_eDP TRUE 0 E Mail objekt_id_email_versenden speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .EMAIL_ welche_geraete _ etage _Versand_an_aus objekt_id_email_senden speicherort pfad_geraete_zaehlen welche_geraete _zaehlen. etage .EMAIL_ welche_geraete status_ etage _senden ne default 05_liste_html_eDP EQ val objekt_id_email_versenden TRUE any default objekt_id_email_senden ne default objekt_id_email_versenden EQ val objekt_id_email_versenden TRUE FALSE e_mail_empfaenger Der Versand der E-Mail Liste etage welche_geraete status eingeschaltet . βœ… etage welche_geraete status FALSE e_mail_empfaenger Der Versand der E-Mail Liste etage welche_geraete status ausgeschaltet . ❌ etage welche_geraete status