anlegen_in
arry
trenner
id
val
anzahl_fenster_gekippt
datenpruefung
alexa_instanz_0
alexa_instanz_1
anzahl_fenster_offen
ansage
speicherort
anzahl_fenster_geschlossen
e_mail_empfaenger
nachricht_ausgabe
fenster_oder_tuer
gekippt
angesprochener_echo_instanz_0
angesprochener_echo_instanz_1
anzahl_fenster_gesamt
etage
tuer_oder_fenster
geoffnet
speak_volume_instanz_0
objekt_id_fensteransage_eDP
speak_volume_instanz_1
selektor
liste_fenster_offen
ueberschrift
ansage_einleitungssatz
objekt_id_01alexa_eDP
angesprochener_echo_instanz_0_neu
angesprochener_echo_instanz_1_neu
liste_fenster_gekippt
objekt_id_01_anzahl_fenster_gekippt_eDP
objekt_id_05_offene_gekippte_fenster_liste_eDP
objekt_id_05alexa_ssml_eDP
objekt_id_09ende_ssml_eDP
objekt_id_02hans_eDP
speak_volume_instanz_0_neu
ansagelautstaerke
speak_volume_instanz_1_neu
liste_fenster_geschlossen
objekt_id_06hans_ssml_eDP
objekt_id_03vicki_eDP
liste_fenster_offen_gesamt
objekt_id_07vicki_ssml_eDP
objekt_id_04conchita_eDP
liste_fenster_offen_html
einzahl_mehrzahl
objekt_id_08conchita_ssml_eDP
liste_fenster_gekippt_html
objekt_id_02_anzahl_fenster_offen_eDP
mehrzahl_eine
einzahl_tuer
liste_fenster_geschlossen_html
logmeldung
html_text
fenster_offen
fenster_gekippt
wert
fenster_geschlossen
objekt_id_03_anzahl_fenster_geschlossen_eDP
pfad_geraete_zaehlen
objekt_id_04_anzahl_fenster_gesamt_eDP
objekt_id_04_1_anzahl_fenster_geoeffnet_gekippt_gesamt_eDP
blockly_start_geraete_zaehlen_einlesen
objekt_id_06_gesamte_fenster_liste_eDP
objekt_id_07_html_fenster_liste_eDP
objekt_id_email_versand_an_aus
objekt_id_email_versenden
Datenpunkte_anlegen
LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKCmZ1bmN0aW9uIGNyZWF0ZVVzZXJTdGF0ZXMod2hlcmUsIGZvcmNlLCBzdGF0ZXNUb0NyZWF0ZSwgY2FsbGJhY2sgPSB1bmRlZmluZWQpIHsKIAogICAgY29uc3QgV0FSTiA9IGZhbHNlOyAvLyBPbmx5IGZvciAwX3VzZXJkYXRhLjA6IFRocm93cyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgZm9yY2U9ZmFsc2UuIERlZmF1bHQgaXMgZmFsc2UsIHNvIG5vIHdhcm5pbmcgaW4gbG9nLCBpZiBzdGF0ZSBleGlzdHMuCiAgICBjb25zdCBMT0dfREVCVUcgPSBmYWxzZTsgLy8gVG8gZGVidWcgdGhpcyBmdW5jdGlvbiwgc2V0IHRvIHRydWUKICAgIC8vIFBlciBpc3N1ZSAjNDc0IChodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc0KSwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgZXhlY3V0ZXMgdGhlIGNhbGxiYWNrIAogICAgLy8gYmVmb3JlIHRoZSBzdGF0ZSBpcyBhY3R1YWwgY3JlYXRlZC4gVGhlcmVmb3JlLCB3ZSB1c2UgYSBzZXRUaW1lb3V0IGFuZCBjb3VudGVyIGFzIGEgd29ya2Fyb3VuZC4KICAgIGNvbnN0IERFTEFZID0gNTA7IC8vIERlbGF5IGluIG1pbGxpc2Vjb25kcyAobXMpLiBJbmNyZWFzZSB0aGlzIHRvIDEwMCwgaWYgaXQgaXMgbm90IHdvcmtpbmcuCgogICAgLy8gVmFsaWRhdGUgIndoZXJlIgogICAgaWYgKHdoZXJlLmVuZHNXaXRoKCcuJykpIHdoZXJlID0gd2hlcmUuc2xpY2UoMCwgLTEpOyAvLyBSZW1vdmUgdHJhaWxpbmcgZG90CiAgICBpZiAoICh3aGVyZS5tYXRjaCgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pKSR8MF91c2VyZGF0YVwuMCQpLykgPT0gbnVsbCkgKSB7CiAgICAgICAgbG9nKCdUaGlzIHNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHRvIGNyZWF0ZSBzdGF0ZXMgdW5kZXIgWycgKyB3aGVyZSArICddJywgJ2Vycm9yJyk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIFByZXBhcmUgInN0YXRlc1RvQ3JlYXRlIiBzaW5jZSB3ZSBhbHNvIGFsbG93IGEgc2luZ2xlIHN0YXRlIHRvIGNyZWF0ZQogICAgaWYoIUFycmF5LmlzQXJyYXkoc3RhdGVzVG9DcmVhdGVbMF0pKSBzdGF0ZXNUb0NyZWF0ZSA9IFtzdGF0ZXNUb0NyZWF0ZV07IC8vIHdyYXAgaW50byBhcnJheSwgaWYganVzdCBvbmUgYXJyYXkgYW5kIG5vdCBpbnNpZGUgYW4gYXJyYXkKCiAgICAvLyBBZGQgIndoZXJlIiB0byBTVEFURVNfVE9fQ1JFQVRFCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGV0IGxwUGF0aCA9IHN0YXRlc1RvQ3JlYXRlW2ldWzBdLnJlcGxhY2UoL1wuKlwuL2csICcuJyk7IC8vIHJlcGxhY2UgYWxsIG11bHRpcGxlIGRvdHMgbGlrZSAnLi4nLCAnLi4uJyB3aXRoIGEgc2luZ2xlICcuJwogICAgICAgIGxwUGF0aCA9IGxwUGF0aC5yZXBsYWNlKC9eKChqYXZhc2NyaXB0XC4oWzEtOV1bMC05XXxbMC05XSlcLil8MF91c2VyZGF0YVwuMFwuKS8sJycpIC8vIHJlbW92ZSBhbnkgamF2YXNjcmlwdC54LiAvIDBfdXNlcmRhdGEuMC4gZnJvbSBiZWdpbm5pbmcKICAgICAgICBscFBhdGggPSB3aGVyZSArICcuJyArIGxwUGF0aDsgLy8gYWRkIHdoZXJlIHRvIGJlZ2lubmluZyBvZiBzdHJpbmcKICAgICAgICBzdGF0ZXNUb0NyZWF0ZVtpXVswXSA9IGxwUGF0aDsKICAgIH0KCiAgICBpZiAod2hlcmUgIT0gJzBfdXNlcmRhdGEuMCcpIHsKICAgICAgICAvLyBDcmVhdGUgU3RhdGVzIHVuZGVyIGphdmFzY3JpcHQueAogICAgICAgIGxldCBudW1TdGF0ZXMgPSBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgbGV0IGxvb3BJbml0ID0gKGxvb3BQYXJhbVsxXVsnZGVmJ10gPT0gdW5kZWZpbmVkKSA/IG51bGwgOiBsb29wUGFyYW1bMV1bJ2RlZiddOyAvLyBtaW1pYyBzYW1lIGJlaGF2aW9yIGFzIGNyZWF0ZVN0YXRlIGlmIG5vIGluaXQgdmFsdWUgaXMgcHJvdmlkZWQKICAgICAgICAgICAgY3JlYXRlU3RhdGUobG9vcFBhcmFtWzBdLCBsb29wSW5pdCwgZm9yY2UsIGxvb3BQYXJhbVsxXSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciAwX3VzZXJkYXRhLjAKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIGxldCBjb3VudGVyID0gLTE7CiAgICAgICAgc3RhdGVzVG9DcmVhdGUuZm9yRWFjaChmdW5jdGlvbihsb29wUGFyYW0pIHsKICAgICAgICAgICAgY291bnRlciArPSAxOwogICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2cgKCdbRGVidWddIEN1cnJlbnRseSBwcm9jZXNzaW5nIGZvbGxvd2luZyBzdGF0ZTogWycgKyBsb29wUGFyYW1bMF0gKyAnXScpOwogICAgICAgICAgICBpZiggKCQobG9vcFBhcmFtWzBdKS5sZW5ndGggPiAwKSAmJiAoZXhpc3RzU3RhdGUobG9vcFBhcmFtWzBdKSkgKSB7IC8vIFdvcmthcm91bmQgZHVlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9pb0Jyb2tlci9pb0Jyb2tlci5qYXZhc2NyaXB0L2lzc3Vlcy80NzgKICAgICAgICAgICAgICAgIC8vIFN0YXRlIGlzIGV4aXN0aW5nLgogICAgICAgICAgICAgICAgaWYgKFdBUk4gJiYgIWZvcmNlKSBsb2coJ1N0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZyBhbmQgd2lsbCBubyBsb25nZXIgYmUgY3JlYXRlZC4nLCAnd2FybicpOwogICAgICAgICAgICAgICAgaWYgKCFXQVJOICYmIExPR19ERUJVRykgbG9nKCdbRGVidWddIFN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10gaXMgYWxyZWFkeSBleGlzdGluZy4gT3B0aW9uIGZvcmNlICg9b3ZlcndyaXRlKSBpcyBzZXQgdG8gWycgKyBmb3JjZSArICddLicpOwogICAgICAgICAgICAgICAgaWYoIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhdGUgZXhpc3RzIGFuZCBzaGFsbCBub3QgYmUgb3ZlcndyaXR0ZW4gc2luY2UgZm9yY2U9ZmFsc2UKICAgICAgICAgICAgICAgICAgICAvLyBTbywgd2UgZG8gbm90IHByb2NlZWQuCiAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gd2FzIHByb3ZpZGVkLCB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSBub3cuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gb3V0IGFuZCBjb250aW51ZSB3aXRoIG5leHQgZWxlbWVudCBpbiBsb29wLgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE4NDUyOTIwL2NvbnRpbnVlLWluLWN1cnNvci1mb3JlYWNoCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSAvLyBpZighZm9yY2UpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFN0YXRlIGlzIG5vdCBleGlzdGluZyBvciBmb3JjZSA9IHRydWUsIHNvIHdlIGFyZSBjb250aW51aW5nIHRvIGNyZWF0ZSB0aGUgc3RhdGUgdGhyb3VnaCBzZXRPYmplY3QoKS4KICAgICAgICAgICAgbGV0IG9iaiA9IHt9OwogICAgICAgICAgICBvYmoudHlwZSA9ICdzdGF0ZSc7CiAgICAgICAgICAgIG9iai5uYXRpdmUgPSB7fTsKICAgICAgICAgICAgb2JqLmNvbW1vbiA9IGxvb3BQYXJhbVsxXTsKICAgICAgICAgICAgc2V0T2JqZWN0KGxvb3BQYXJhbVswXSwgb2JqLCBmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nKCdDYW5ub3Qgd3JpdGUgb2JqZWN0IGZvciBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddOiAnICsgZXJyKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIE5vdyB3ZSBhcmUgY3JlYXRpbmcgbmV3IHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKQogICAgICAgICAgICAgICAgICAgIGxldCBpbml0ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0uZGVmID09PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdudW1iZXInKSBpbml0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdib29sZWFuJykgaW5pdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ3N0cmluZycpIGluaXQgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpbml0ID0gbG9vcFBhcmFtWzFdLmRlZjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdGUobG9vcFBhcmFtWzBdLCBpbml0LCB0cnVlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBzZXRTdGF0ZSBkdXJjaGdlZsO8aHJ0OiAnICsgbG9vcFBhcmFtWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bVN0YXRlcyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBBbGwgc3RhdGVzIHByb2Nlc3NlZC4nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7IC8vIGV4ZWN1dGUgaWYgYSBmdW5jdGlvbiB3YXMgcHJvdmlkZWQgdG8gcGFyYW1ldGVyIGNhbGxiYWNrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBGdW5jdGlvbiB0byBjYWxsYmFjayBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgREVMQVkgKyAoMjAgKiBjb3VudGVyKSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgIH0KfQoKZXRhZ2UgPSAnS2VsbGVyJwpnZXJhZXQgPSAnRmVuc3RlcicKCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKICAgIC8vU3RpbW1lbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjAxQWxleGEnLCB7J25hbWUnOicwMUFsZXhhJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzp0cnVlLCAic21hcnROYW1lIjogeyJkZSI6ICJBbGV4YSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wMkhhbnMnLCB7J25hbWUnOicwMkhhbnMnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlLCAic21hcnROYW1lIjogeyJkZSI6ICJIYW5zIiwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjAzVmlja2knLCB7J25hbWUnOicwM1ZpY2tpJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiVmlja2kiLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDRDb25jaGl0YScsIHsnbmFtZSc6JzA0Q29uY2hpdGEnLCAndHlwZSc6J2Jvb2xlYW4nLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzp0cnVlLCAncm9sZSc6J3N3aXRjaCcsICdkZWYnOmZhbHNlLCAic21hcnROYW1lIjogeyJkZSI6ICJDb25jaGl0YSIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wNUFsZXhhX3NzbWwnLCB7J25hbWUnOicwNUFsZXhhX3NzbWwnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOic8c3BlYWs+PHZvaWNlIG5hbWU9IkFsZXhhIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA2SGFuc19zc21sJywgeyduYW1lJzonMDZIYW5zX3NzbWwnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOic8c3BlYWs+PHZvaWNlIG5hbWU9IkhhbnMiPicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkFsZXhhX1N0aW1tZW4uMDdWaWNraV9zc21sJywgeyduYW1lJzonMDdWaWNraV9zc21sJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonPHNwZWFrPjx2b2ljZSBuYW1lPSJWaWNraSI+JyB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uQWxleGFfU3RpbW1lbi4wOENvbmNoaXRhX3NzbWwnLCB7J25hbWUnOicwOENvbmNoaXRhX3NzbWwnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOic8c3BlYWs+PHZvaWNlIG5hbWU9IkNvbmNoaXRhIj4nIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5BbGV4YV9TdGltbWVuLjA5c3NtbF9lbmRlJywgeyduYW1lJzonMDlzc21sX2VuZGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOic8L3ZvaWNlPjwvc3BlYWs+JyB9XSwKICAgIC8vQW5zYWdlIEJ1dHRvbgogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uJytbZ2VyYWV0XSsnX3phZWhsZW4uJytbZXRhZ2VdKycuMDhfJytbZXRhZ2VdKydfJytbZ2VyYWV0XSsnYW5zYWdlJywgeyduYW1lJzogJzA4XycrW2V0YWdlXSsnXycrW2dlcmFldF0rJ2Fuc2FnZScsJ3R5cGUnOiAnYm9vbGVhbicsICdyZWFkJzogdHJ1ZSwgJ3dyaXRlJzogdHJ1ZSwgJ3JvbGUnOiAnYnV0dG9uJywnZGVmJzp0cnVlLCAic21hcnROYW1lIjogeyJkZSI6ICcnK1tnZXJhZXRdKycnKydhbnNhZ2UnKycgJytbZXRhZ2VdLCJzbWFydFR5cGUiOiAiU1dJVENIIn0gfV0sIAogICAgLy9HZXJhZXRlIHphZWhsZW4KICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLjAxX0FuemFobF8nK1tnZXJhZXRdKydfZ2VraXBwdCcsIHsnbmFtZSc6JzAxX0FuemFobF8nK1tnZXJhZXRdKydfZ2VraXBwdCcsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6JycrW2dlcmFldF0rJycsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wMl9BbnphaGxfJytbZ2VyYWV0XSsnX29mZmVuJywgeyduYW1lJzonMDJfQW56YWhsXycrW2dlcmFldF0rJ19vZmZlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6JycrW2dlcmFldF0rJycsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wM19BbnphaGxfJytbZ2VyYWV0XSsnX2dlc2NobG9zc2VuJywgeyduYW1lJzonMDNfQW56YWhsXycrW2dlcmFldF0rJ19nZXNjaGxvc3NlbicsICd0eXBlJzonbnVtYmVyJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonbnVtYmVyJywndW5pdCc6JycrW2dlcmFldF0rJycsICdkZWYnOjAgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wNF9BbnphaGxfJytbZ2VyYWV0XSsnX2dlc2FtdCcsIHsnbmFtZSc6JzA0X0FuemFobF8nK1tnZXJhZXRdKydfZ2VzYW10JywgJ3R5cGUnOidudW1iZXInLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidudW1iZXInLCd1bml0JzonJytbZ2VyYWV0XSsnJywgJ2RlZic6MCB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLjA0XzFfQW56YWhsXycrW2dlcmFldF0rJ19nZW9lZmZuZXRfdW5kX2dla2lwcHRfZ2VzYW10JywgeyduYW1lJzonMDRfMV9BbnphaGxfJytbZ2VyYWV0XSsnX2dlb2VmZm5ldF91bmRfZ2VraXBwdF9nZXNhbXQnLCAndHlwZSc6J251bWJlcicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J251bWJlcicsJ3VuaXQnOicnK1tnZXJhZXRdKycnLCAnZGVmJzowIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uJytbZ2VyYWV0XSsnX3phZWhsZW4uJytbZXRhZ2VdKycuMDVfb2ZmZW5lX2dla2lwcHRlXycrW2dlcmFldF0rJ19MaXN0ZScsIHsnbmFtZSc6JzA1X29mZmVuZV9nZWtpcHB0ZV8nK1tnZXJhZXRdKydfTGlzdGUnLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOmZhbHNlLCAncm9sZSc6J3N0cmluZycsICdkZWYnOidub2NoIGxlZXInIH1dLAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uJytbZ2VyYWV0XSsnX3phZWhsZW4uJytbZXRhZ2VdKycuMDZfZ2VzYW10ZV8nK1tnZXJhZXRdKydfTGlzdGUnLCB7J25hbWUnOicwNl9nZXNhbXRlXycrW2dlcmFldF0rJ19MaXN0ZScsICd0eXBlJzonc3RyaW5nJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6ZmFsc2UsICdyb2xlJzonc3RyaW5nJywgJ2RlZic6J25vY2ggbGVlcicgfV0sCiAgICBbJ0dlcmFldGVfemFlaGxlbl9vcHRpb25hbF9BbnNhZ2VuLkdlcmFldGVfemFlaGxlbi4nK1tnZXJhZXRdKydfemFlaGxlbi4nK1tldGFnZV0rJy4wN19odG1sXycrW2dlcmFldF0rJ19MaXN0ZScsIHsnbmFtZSc6JzA3X2h0bWxfJytbZ2VyYWV0XSsnX0xpc3RlJywgJ3R5cGUnOidzdHJpbmcnLCAncmVhZCc6dHJ1ZSwgJ3dyaXRlJzpmYWxzZSwgJ3JvbGUnOidzdHJpbmcnLCAnZGVmJzonbm9jaCBsZWVyJyB9XSwKICAgIC8vRS1NYWlsIE5hY2hyaWNodGVudmVyc2FuZAogICAgWydHZXJhZXRlX3phZWhsZW5fb3B0aW9uYWxfQW5zYWdlbi5HZXJhZXRlX3phZWhsZW4uJytbZ2VyYWV0XSsnX3phZWhsZW4uJytbZXRhZ2VdKycuRU1BSUxfJytbZ2VyYWV0XSsnXycrW2V0YWdlXSsnX1ZlcnNhbmRfYW5fYXVzJywgeyduYW1lJzonRU1BSUxfJytbZ2VyYWV0XSsnXycrW2V0YWdlXSsnX1ZlcnNhbmRfYW5fYXVzJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOidzd2l0Y2gnLCAnZGVmJzpmYWxzZSB9XSwKICAgIFsnR2VyYWV0ZV96YWVobGVuX29wdGlvbmFsX0Fuc2FnZW4uR2VyYWV0ZV96YWVobGVuLicrW2dlcmFldF0rJ196YWVobGVuLicrW2V0YWdlXSsnLkVNQUlMXycrW2dlcmFldF0rJ3N0YXR1c18nK1tldGFnZV0rJ19zZW5kZW4nLCB7J25hbWUnOidFTUFJTF8nK1tnZXJhZXRdKydzdGF0dXNfJytbZXRhZ2VdKydfc2VuZGVuJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOididXR0b24nLCAnZGVmJzpmYWxzZSwgInNtYXJ0TmFtZSI6IHsiZGUiOiAiRU1BSUwgIitbZ2VyYWV0XSsnJysnc3RhdHVzJysnICcrW2V0YWdlXSsnIHNlbmRlbicsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKICAgCl07CgpjcmVhdGVVc2VyU3RhdGVzKGFubGVnZW5faW4sIGZhbHNlLCBzdGF0ZXNUb0NyZWF0ZSwgZnVuY3Rpb24oKXs7CiAgICBtYWluKCk7Cn0pOwoKCg==
Datenpunkte erstellen
zaehlen
Beschreibe diese Funktion …
anzahl_fenster_gekippt
0
anzahl_fenster_offen
0
anzahl_fenster_geschlossen
0
anzahl_fenster_gesamt
0
liste_fenster_offen
liste_fenster_gekippt
liste_fenster_geschlossen
liste_fenster_offen_gesamt
liste_fenster_offen_html
liste_fenster_gekippt_html
liste_fenster_geschlossen_html
html_text
<!DOCTYPE html><html lang="de"><head><title>
tuer_oder_fenster
</title><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body>
<p style="color:#0000FF; font-family:Helvetica; font-weight: bold">
tuer_oder_fenster
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>
tuer_oder_fenster
etage
   </td><td>Status</td></tr>
<tr><td>
fenster_offen
selektor
anzahl_fenster_gesamt
1
wert
val
fenster_offen
OR
EQ
fenster_offen
wert
OPEN
EQ
fenster_offen
wert
TRUE
anzahl_fenster_offen
1
INSERT
LAST
liste_fenster_offen
fenster_offen
geöffnet
INSERT
LAST
liste_fenster_offen_html
fenster_offen
<td><span style="color:#FF0000"> geöffnet </span>
fenster_gekippt
selektor
wert
val
fenster_gekippt
EQ
fenster_gekippt
wert
TILTED
anzahl_fenster_gekippt
1
INSERT
LAST
liste_fenster_gekippt
fenster_gekippt
gekippt
INSERT
LAST
liste_fenster_gekippt_html
fenster_gekippt
<td><span style="color:#0000FF"> gekippt </span>
fenster_geschlossen
selektor
wert
val
fenster_geschlossen
OR
EQ
fenster_geschlossen
wert
CLOSED
EQ
fenster_geschlossen
wert
FALSE
anzahl_fenster_geschlossen
1
INSERT
LAST
liste_fenster_geschlossen
fenster_geschlossen
geschlossen
INSERT
LAST
liste_fenster_geschlossen_html
fenster_geschlossen
<td>geschlossen
true
FALSE
Object ID
objekt_id_01_anzahl_fenster_gekippt_eDP
TRUE
anzahl_fenster_gekippt
0
true
FALSE
Object ID
objekt_id_02_anzahl_fenster_offen_eDP
TRUE
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_03_anzahl_fenster_geschlossen_eDP
TRUE
anzahl_fenster_geschlossen
0
true
FALSE
Object ID
objekt_id_04_anzahl_fenster_gesamt_eDP
TRUE
anzahl_fenster_gesamt
0
true
FALSE
Object ID
objekt_id_04_1_anzahl_fenster_geoeffnet_gekippt_gesamt_eDP
TRUE
ADD
1
anzahl_fenster_gekippt
1
anzahl_fenster_offen
0
Text offen
AND
EQ
anzahl_fenster_gekippt
0
EQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_05_offene_gekippte_fenster_liste_eDP
TRUE
Alle
tuer_oder_fenster
sind geschlossen.
0
AND
EQ
anzahl_fenster_gekippt
0
NEQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_05_offene_gekippte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
0
AND
NEQ
anzahl_fenster_gekippt
0
EQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_05_offene_gekippte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_gekippt
,
0
AND
NEQ
anzahl_fenster_gekippt
0
NEQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_05_offene_gekippte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
,
TEXT
1
liste_fenster_gekippt
,
0
Text Gesamt
AND
EQ
anzahl_fenster_gekippt
0
EQ
anzahl_fenster_offen
0
alles zu
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_geschlossen
,
0
EQ
anzahl_fenster_gesamt
anzahl_fenster_offen
alles auf
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
0
EQ
anzahl_fenster_gesamt
anzahl_fenster_gekippt
alles gekippt
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_gekippt
,
0
AND
GT
anzahl_fenster_offen
0
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
EQ
anzahl_fenster_gekippt
0
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
,
TEXT
1
liste_fenster_gekippt
,
TEXT
1
liste_fenster_geschlossen
,
0
AND
GT
anzahl_fenster_gekippt
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
EQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_gekippt
,
,
TEXT
1
liste_fenster_offen
,
TEXT
1
liste_fenster_geschlossen
,
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
AND
GT
anzahl_fenster_gekippt
0
GT
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
,
TEXT
1
liste_fenster_gekippt
,
,
TEXT
1
liste_fenster_geschlossen
,
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
AND
AND
GT
anzahl_fenster_gekippt
0
GT
anzahl_fenster_offen
0
EQ
ADD
1
anzahl_fenster_gekippt
1
anzahl_fenster_offen
anzahl_fenster_gesamt
true
FALSE
Object ID
objekt_id_06_gesamte_fenster_liste_eDP
TRUE
TEXT
1
liste_fenster_offen
,
,
TEXT
1
liste_fenster_gekippt
,
TEXT
1
liste_fenster_geschlossen
,
0
html
AND
EQ
anzahl_fenster_gekippt
0
EQ
anzahl_fenster_offen
0
alles zu
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_geschlossen_html
<tr><td>
</table></body>
0
EQ
anzahl_fenster_gesamt
anzahl_fenster_offen
alles auf
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_offen_html
<tr><td>
</table></body>
0
EQ
anzahl_fenster_gesamt
anzahl_fenster_gekippt
alles gekippt
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_gekippt_html
<tr><td>
</table></body>
0
AND
GT
anzahl_fenster_offen
0
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
EQ
anzahl_fenster_gekippt
0
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_offen_html
<tr><td>
<tr><td>
TEXT
1
liste_fenster_gekippt_html
<tr><td>
TEXT
1
liste_fenster_geschlossen_html
<tr><td>
</table></body>
0
AND
GT
anzahl_fenster_gekippt
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
EQ
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_gekippt_html
<tr><td>
<tr><td>
TEXT
1
liste_fenster_offen_html
<tr><td>
TEXT
1
liste_fenster_geschlossen_html
<tr><td>
</table></body>
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
AND
GT
anzahl_fenster_gekippt
0
GT
anzahl_fenster_offen
0
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_offen_html
<tr><td>
<tr><td>
TEXT
1
liste_fenster_gekippt_html
<tr><td>
<tr><td>
TEXT
1
liste_fenster_geschlossen_html
<tr><td>
</table></body>
0
AND
LT
anzahl_fenster_gekippt
anzahl_fenster_gesamt
AND
LT
anzahl_fenster_offen
anzahl_fenster_gesamt
AND
AND
GT
anzahl_fenster_gekippt
0
GT
anzahl_fenster_offen
0
EQ
ADD
1
anzahl_fenster_gekippt
1
anzahl_fenster_offen
anzahl_fenster_gesamt
true
FALSE
Object ID
objekt_id_07_html_fenster_liste_eDP
TRUE
html_text
TEXT
1
liste_fenster_offen_html
<tr><td>
<tr><td>
TEXT
1
liste_fenster_gekippt_html
<tr><td>
TEXT
1
liste_fenster_geschlossen_html
<tr><td>
</table></body>
0
arry, trenner
cmV0dXJuIGFycnkuam9pbih0cmVubmVyKTs=
Beschreibe diese Funktion …
email_senden
Beschreibe diese Funktion …
FALSE
e_mail_empfaenger
nachricht_ausgabe
etage
tuer_oder_fenster
status
getParentName
dmFyIG5hbWUgPSBnZXRPYmplY3QoaWQpLmNvbW1vbi5uYW1lOw0KDQppZiAobmFtZS5zdWJzdHIoIC03KSA9PSAoJ0lzIG9wZW4nKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTcpOw0KaWYgKG5hbWUuc3Vic3RyKCAtNikgPT0gKCcuU1RBVEUnKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTYpOw0KaWYgKG5hbWUuc3Vic3RyKCAtNikgPT0gKCcuc3RhdGUnKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTYpOw0KaWYgKG5hbWUuc3Vic3RyKCAtNSkgPT0gKCcub3BlbicpKSByZXR1cm4gbmFtZS5zbGljZSgwLCAtNSk7DQppZiAobmFtZS5zdWJzdHIoIC00KSA9PSAoJ29wZW4nKSkgcmV0dXJuIG5hbWUuc2xpY2UoMCwgLTUpOw0KDQppZCA9IGlkLnN1YnN0cmluZygwLCBpZC5sYXN0SW5kZXhPZignLicpKTsNCmlmKGV4aXN0c09iamVjdChpZCkgJiYgZ2V0T2JqZWN0KGlkKS50eXBlID09ICdjaGFubmVsJykgcmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7DQppZCA9IGlkLnN1YnN0cmluZygwLCBpZC5sYXN0SW5kZXhPZignLicpKTsNCmlmKGV4aXN0c09iamVjdChpZCkgJiYgZ2V0T2JqZWN0KGlkKS50eXBlID09ICdjaGFubmVsJykgcmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7DQoNCmVsc2UgcmV0dXJuICdTZW5zb3IgdW5iZWthbm50JzsNCg0KDQoNCg0KDQogICAgDQoNCg0K
Beschreibe diese Funktion …
fenster_vor_versand_pruefen
Beschreibe diese Funktion …
EQ
fenster_oder_tuer
TRUE
ab hier Ausgabe
gekippt
gekippt 👈
geoffnet
geöffnet ☝️
ueberschrift
*
etage
tuer_oder_fenster
status
*
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
Es ist
einzahl_mehrzahl
tuer_oder_fenster
geoffnet
\n
\n
TEXT
1
liste_fenster_offen
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
einzahl_mehrzahl
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
einzahl_mehrzahl
tuer_oder_fenster
geoffnet
\n
Es ist
einzahl_mehrzahl
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
\n
TEXT
1
liste_fenster_offen
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
Es ist
einzahl_mehrzahl
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
einzahl_mehrzahl
tuer_oder_fenster
geoffnet
\n
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
✅ Alle
tuer_oder_fenster
sind geschlossen ✅
EQ
fenster_oder_tuer
FALSE
ab hier Ausgabe
gekippt
gekippt 👈
geoffnet
geöffnet ☝️
ueberschrift
*
etage
tuer_oder_fenster
status
*
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
Es ist
mehrzahl_eine
einzahl_tuer
geoffnet
\n
\n
TEXT
1
liste_fenster_offen
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
mehrzahl_eine
einzahl_tuer
gekippt
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
mehrzahl_eine
einzahl_tuer
geoffnet
\n
Es ist
mehrzahl_eine
einzahl_tuer
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
\n
TEXT
1
liste_fenster_offen
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
Es ist
mehrzahl_eine
einzahl_tuer
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
1
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es ist
mehrzahl_eine
einzahl_tuer
geoffnet
\n
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
GT
val
objekt_id_02_anzahl_fenster_offen_eDP
1
GT
val
objekt_id_01_anzahl_fenster_gekippt_eDP
1
nachricht_ausgabe
ueberschrift
Es sind
val
objekt_id_02_anzahl_fenster_offen_eDP
tuer_oder_fenster
geoffnet
\n
Es sind
val
objekt_id_01_anzahl_fenster_gekippt_eDP
tuer_oder_fenster
gekippt
\n
\n
TEXT
1
liste_fenster_offen
\n
\n
TEXT
1
liste_fenster_gekippt
\n
AND
EQ
val
objekt_id_02_anzahl_fenster_offen_eDP
0
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
nachricht_ausgabe
ueberschrift
✅ Alle
tuer_oder_fenster
sind geschlossen ✅
stateText
Ly9pZihnZXRPYmplY3QoaWQpLmNvbW1vbi5zdGF0ZXMpIHJldHVybiBnZXRPYmplY3QoaWQpLmNvbW1vbi5zdGF0ZXNbdmFsXTsKLy9yZXR1cm4gaWQgKyAnIGhhdCBrZWluZW4gWnVzdGFuZHN0ZXh0JzsKaWYoZ2V0T2JqZWN0KGlkKS5jb21tb24uc3RhdGVzKSByZXR1cm4gKGdldE9iamVjdChpZCkuY29tbW9uLnN0YXRlc1t2YWxdKTsKZWxzZSAKcmV0dXJuIGdldFN0YXRlKGlkKS52YWw7
Beschreibe diese Funktion …
ansage_wiedergabe
Beschreibe diese Funktion …
datenpruefung
EQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
ansage_einleitungssatz
val
objekt_id_05_offene_gekippte_fenster_liste_eDP
NEQ
val
objekt_id_01_anzahl_fenster_gekippt_eDP
0
ansage_einleitungssatz
val
objekt_id_05_offene_gekippte_fenster_liste_eDP
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
echo_name
aWYoZXhpc3RzT2JqZWN0KGlkKSkgcmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7
Beschreibe diese Funktion …
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
objekt_id_fensteransage_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 ✅
existiert_DP
cmV0dXJuIGV4aXN0c1N0YXRlKGlkKTs=
Beschreibe diese Funktion …
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
objekt_id_fensteransage_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 ✅
0_userdata.0
Forum Link Ansagen: https://forum.iobroker.net/post/273896
Hier 0_userdata.0 oder javascript.x eintagen
.x steht fuer die Instanznummer
main
Hier alle geöffneten Bausteine an die eigene Installation und Wünsche anpassen,
Speicherort eintragen
speicherort
0_userdata.0
Selektor an die eigene Aufzählung anpassen
selektor
(functions='Fenster_Keller')
Ansagelautstaerke bis 100 auswaehlen
ansagelautstaerke
60
E-Mail Empfaenger eintragen
e_mail_empfaenger
max.muster@gmx.de
wenn Fenster, dann auf wahr
wenn Türen, dann auf falsch
fenster_oder_tuer
TRUE
Etage rein schreiben
etage
Keller
Fenster oder Türen rein schreiben
tuer_oder_fenster
Fenster
einzahl_tuer
Tür
einzahl_mehrzahl
ein
mehrzahl_eine
eine
pfad_geraete_zaehlen
.Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen.
Satzanfang Log Meldung
logmeldung
✅ Die
etage
tuer_oder_fenster
ansage wurde vom ECHO
ansage_einleitungssatz
Hier der
etage
tuer_oder_fenster
status für Dich.
Blockly Start Geraete zaehlen einlesen
blockly_start_geraete_zaehlen_einlesen
2
sec
Variablen Geraete zaehlen
ne
default
selektor
anzahl_fenster_gekippt
0
anzahl_fenster_offen
0
anzahl_fenster_geschlossen
0
anzahl_fenster_gesamt
0
liste_fenster_offen
liste_fenster_gekippt
liste_fenster_geschlossen
liste_fenster_offen_gesamt
liste_fenster_offen_html
liste_fenster_gekippt_html
liste_fenster_geschlossen_html
objekt_id_01_anzahl_fenster_gekippt_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.01_Anzahl_
tuer_oder_fenster
_gekippt
objekt_id_02_anzahl_fenster_offen_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.02_Anzahl_
tuer_oder_fenster
_offen
objekt_id_03_anzahl_fenster_geschlossen_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.03_Anzahl_
tuer_oder_fenster
_geschlossen
objekt_id_04_anzahl_fenster_gesamt_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.04_Anzahl_
tuer_oder_fenster
_gesamt
objekt_id_04_1_anzahl_fenster_geoeffnet_gekippt_gesamt_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.04_1_Anzahl_
tuer_oder_fenster
_geoeffnet_und_gekippt_gesamt
objekt_id_05_offene_gekippte_fenster_liste_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.05_offene_gekippte_
tuer_oder_fenster
_Liste
objekt_id_06_gesamte_fenster_liste_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.06_gesamte_
tuer_oder_fenster
_Liste
objekt_id_07_html_fenster_liste_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.07_html_
tuer_oder_fenster
_Liste
Variablen fuer Ansage
objekt_id_fensteransage_eDP
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.08_
etage
_
tuer_oder_fenster
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_versand_an_aus
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
tuer_oder_fenster
_
etage
_Versand_an_aus
objekt_id_email_versenden
speicherort
pfad_geraete_zaehlen
tuer_oder_fenster
_zaehlen.
etage
.EMAIL_
tuer_oder_fenster
status_
etage
_senden
ne
default
objekt_id_05_offene_gekippte_fenster_liste_eDP
EQ
val
objekt_id_email_versand_an_aus
TRUE
any
default
objekt_id_email_versenden
ne
default
objekt_id_email_versand_an_aus
EQ
val
objekt_id_email_versand_an_aus
TRUE
FALSE
e_mail_empfaenger
Der Versand der E-Mail Liste
etage
tuer_oder_fenster
status eingeschaltet . ✅
etage
tuer_oder_fenster
status
FALSE
e_mail_empfaenger
Der Versand der E-Mail Liste
etage
tuer_oder_fenster
status ausgeschaltet . ❌
etage
tuer_oder_fenster
status