vars_pfad vars_bewaesserung_aktiv vars_bewaesserung_automatik vars_morgens_verzoegerung_sonnenaufgang vars_abends_verzoegerung_sonnenuntergang vars_sonnenaufgang startzeit_sonnenaufgang vars_laufzeit_gesamt_in_sek startzeit_sonnenaufgang_stunde vars_feste_startzeit_uhrzeit_start_stunde vars_feste_startzeit_urhzeit_start_minute timeout vars_lautzeit_ende_uhrzeit startzeit_sonnenaufgang_minute vars_restlautzeit vars_restlautzeit_in_sek morgens vars_morgens_uhrzeit_start_stunde vars_ventil_1 vars_ventil_2 vars_ventil_3 vars_ventil_4 vars_ventil_1_dauer vars_ventil_2_dauer vars_ventil_3_dauer vars_ventil_4_dauer vars_aktives_ventil vars_morgens_urhzeit_start_minute info_enduhrzeit_raw vars_anzahl_aktive_ventile abends info_endzeit_stunde info_endzeit_minute vars_ventil_1_ende vars_ventil_1_aktor vars_abends_uhrzeit_start_stunde vars_abends_uhrzeit_start_minute info_endzeit_sekunde ventil_enduhrzeit_raw vars_ventil_2_ende ventil_1_dauer vars_ventil_2_aktor vars_ventil_3_aktor vars_ventil_4_aktor vars_ventil_1_aktor_ontime vars_morgens_uhrzeit_start vars_morgens_aktiv startzeit_fix_stunde ventil_enduhrzeit_std vars_ventil_3_ende vars_ventil_1_restzeit waitmail2 startzeit_sonnenuntergang vars_automatik_top_temp vars_automatik_regen startzeit_fix_minute ventil_enduhrzeit_min vars_ventil_4_ende vars_ventil_1_restzeit_in_sek startzeit_sonnenuntergang_stunde vars_feste_startzeit_uhrzeit_start ventil_enduhrzeit_sek ventil_enduhrzeit_verzoegerung startzeit_sonnenuntergang_minute vars_abends_aktiv fix ventil_2_dauer restlaufzeit_vis_min info_endzeit_aktive_ventile vars_ventil_1_name vars_ventil_2_restzeit ventil_3_dauer ventil_4_dauer restlaufzeit_vis_sek vars_ventil_2_restzeit_in_sek info_text restzeit vars_ventil_2_name info_betreff vars_ventil_3_restzeit vars_ventil_3_name restzeit_gesamt_min vars_ventil_2_aktor_ontime vars_ventil_3_restzeit_in_sek vars_ventil_4_name restzeit_gesamt_sek vars_abends_uhrzeit_start ventil_1_rest vars_ventil_4_restzeit vars_ventil_3_aktor_ontime vars_ventil_4_restzeit_in_sek ventil_2_rest vars_ventil_4_aktor_ontime restzeit_ventil_min ventil_3_rest restzeit_ventil_sek ventil_4_rest vars_feste_startzeit_aktiv Variablen_erstellen Beschreibe diese Funktion … vars_pfad javascript.0.bewaesserung. Bewässerung vars_bewaesserung_aktiv vars_pfad bewaesserung_aktiv vars_bewaesserung_automatik vars_pfad bewaesserung_automatik Laufzeit vars_laufzeit_gesamt_in_sek vars_pfad lautzeit_gesamt_in_sek vars_lautzeit_ende_uhrzeit vars_pfad lautzeit_ende_uhrzeit vars_restlautzeit vars_pfad restlautzeit vars_restlautzeit_in_sek vars_pfad restlautzeit_in_sek Ventile vars_aktives_ventil vars_pfad ventile.aktives_ventil vars_anzahl_aktive_ventile vars_pfad ventile.anzahl_aktive_ventile Ventil 1 vars_ventil_1_aktor hm-rpc.0.QEQ0661312.1.STATE vars_ventil_1_aktor_ontime hm-rpc.0.QEQ0661312.1.ON_TIME vars_ventil_1 vars_pfad ventile.ventil_1.ventil_1 vars_ventil_1_dauer vars_pfad ventile.ventil_1.ventil_1_dauer vars_ventil_1_ende vars_pfad ventile.ventil_1.ventil_1_ende vars_ventil_1_name vars_pfad ventile.ventil_1.ventil_1_name vars_ventil_1_restzeit vars_pfad ventile.ventil_1.ventil_1_restzeit vars_ventil_1_restzeit_in_sek vars_pfad ventile.ventil_1.ventil_1_restzeit_in_sek Ventil 2 vars_ventil_2_aktor hm-rpc.0.QEQ0661312.2.STATE vars_ventil_2_aktor_ontime hm-rpc.0.QEQ0661312.2.ON_TIME vars_ventil_2 vars_pfad ventile.ventil_2.ventil_2 vars_ventil_2_dauer vars_pfad ventile.ventil_2.ventil_2_dauer vars_ventil_2_ende vars_pfad ventile.ventil_2.ventil_2_ende vars_ventil_2_name vars_pfad ventile.ventil_2.ventil_2_name vars_ventil_2_restzeit vars_pfad ventile.ventil_2.ventil_2_restzeit vars_ventil_2_restzeit_in_sek vars_pfad ventile.ventil_2.ventil_2_restzeit_in_sek Ventil 3 vars_ventil_3_aktor hm-rpc.0.QEQ0661312.3.STATE vars_ventil_3_aktor_ontime hm-rpc.0.QEQ0661312.3.ON_TIME vars_ventil_3 vars_pfad ventile.ventil_3.ventil_3 vars_ventil_3_dauer vars_pfad ventile.ventil_3.ventil_3_dauer vars_ventil_3_ende vars_pfad ventile.ventil_3.ventil_3_ende vars_ventil_3_name vars_pfad ventile.ventil_3.ventil_3_name vars_ventil_3_restzeit vars_pfad ventile.ventil_3.ventil_3_restzeit vars_ventil_3_restzeit_in_sek vars_pfad ventile.ventil_3.ventil_3_restzeit_in_sek Ventil 4 vars_ventil_4_aktor hm-rpc.0.QEQ0661312.4.STATE vars_ventil_4_aktor_ontime hm-rpc.0.QEQ0661312.4.ON_TIME vars_ventil_4 vars_pfad ventile.ventil_4.ventil_4 vars_ventil_4_dauer vars_pfad ventile.ventil_4.ventil_4_dauer vars_ventil_4_ende vars_pfad ventile.ventil_4.ventil_4_ende vars_ventil_4_name vars_pfad ventile.ventil_4.ventil_4_name vars_ventil_4_restzeit vars_pfad ventile.ventil_4.ventil_4_restzeit vars_ventil_4_restzeit_in_sek vars_pfad ventile.ventil_3.ventil_3_restzeit_in_sek Zeitplan Morgens vars_morgens_aktiv vars_pfad zeitplan.morgens_aktiv vars_morgens_uhrzeit_start vars_pfad zeitplan.morgens_uhrzeit_start vars_morgens_uhrzeit_start_stunde vars_pfad zeitplan.morgens_uhrzeit_start_stunde vars_morgens_urhzeit_start_minute vars_pfad zeitplan.morgens_uhrzeit_start_minute vars_morgens_verzoegerung_sonnenaufgang vars_pfad zeitplan.morgens_verzoegerung_sonnenaufgang Abends vars_abends_aktiv vars_pfad zeitplan.abends_aktiv vars_abends_uhrzeit_start vars_pfad zeitplan.abends_uhrzeit_start vars_abends_uhrzeit_start_stunde vars_pfad zeitplan.abends_uhrzeit_start_stunde vars_abends_uhrzeit_start_minute vars_pfad zeitplan.abends_uhrzeit_start_minute vars_abends_verzoegerung_sonnenuntergang vars_pfad zeitplan.abends_verzoegerung_sonnenuntergang Feste Startzeit vars_feste_startzeit_aktiv vars_pfad zeitplan.feste_startzeit_aktiv vars_feste_startzeit_uhrzeit_start vars_pfad zeitplan.feste_startzeit_uhrzeit_start vars_feste_startzeit_uhrzeit_start_stunde vars_pfad zeitplan.feste_startzeit_uhrzeit_start_stunde vars_feste_startzeit_urhzeit_start_minute vars_pfad zeitplan.feste_startzeit_uhrzeit_start_minute Sonstige vars_sonnenaufgang javascript.0.zeiten.sonnenaufgang vars_automatik_top_temp javascript.0.temperaturen.heute_max vars_automatik_regen daswetter.0.NextDaysDetailed.Location_1.Day_1.rain_value Datenpunkte_erstellen LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwoKLyoqCiogSGllciBiaXR0ZSBkZW4gU3BlaWNoZXJvcnQsZGVuIFBmYWQgZWludHJhZ2VuIHVuZCBkZW4gTmFtZW4gZGVyIEtyZWlzZSBlaW5nZWJlbgoqIEJlaXNwaWVsZTogCgoJc3BlaWNoZXJvcnQgPSAnMF91c2VyZGF0YS4wLicKCXNwZWljaGVyb3J0ID0gJ2phdmFzY3JpcHQuMCcKCQoJcGZhZCA9ICdiZXdhc3NlcnVuZy4nCglwZmFkID0gJ0dhcmRlbmEuQmV3YWVzc2VydW5nLicKICAgIAogICAga3JlaXMxID0gJ0hlY2tlJwogICAga3JlaXMyID0gJ1Jhc2VuJwoKKi8Kc3BlaWNoZXJvcnQgPSAnamF2YXNjcmlwdC4wJwpwZmFkID0gJ2Jld2Flc3NlcnVuZy4nCmtyZWlzMSA9ICdIZWNrZScKa3JlaXMyID0gJ1Jhc2VuJwprcmVpczMgPSAnQmVldCcKa3JlaXM0ID0gJ2tsLiBSYXNlbicKCgpmdW5jdGlvbiBjcmVhdGVVc2VyU3RhdGVzKHdoZXJlLCBmb3JjZSwgc3RhdGVzVG9DcmVhdGUsIGNhbGxiYWNrID0gdW5kZWZpbmVkKSB7CiAgICAKICAgIGNvbnN0IFdBUk4gPSBmYWxzZTsgLy8gT25seSBmb3IgMF91c2VyZGF0YS4wOiBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKS4gSW5jcmVhc2UgdGhpcyB0byAxMDAsIGlmIGl0IGlzIG5vdCB3b3JraW5nLgoKICAgIC8vIFZhbGlkYXRlICJ3aGVyZSIKICAgIGlmICh3aGVyZS5lbmRzV2l0aCgnLicpKSB3aGVyZSA9IHdoZXJlLnNsaWNlKDAsIC0xKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGRvdAogICAgaWYgKCAod2hlcmUubWF0Y2goL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKSkkfDBfdXNlcmRhdGFcLjAkKS8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgLy8gQWRkICJ3aGVyZSIgdG8gU1RBVEVTX1RPX0NSRUFURQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7IGkrKykgewogICAgICAgIGxldCBscFBhdGggPSBzdGF0ZXNUb0NyZWF0ZVtpXVswXS5yZXBsYWNlKC9cLipcLi9nLCAnLicpOyAvLyByZXBsYWNlIGFsbCBtdWx0aXBsZSBkb3RzIGxpa2UgJy4uJywgJy4uLicgd2l0aCBhIHNpbmdsZSAnLicKICAgICAgICBscFBhdGggPSBscFBhdGgucmVwbGFjZSgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pXC4pfDBfdXNlcmRhdGFcLjBcLikvLCcnKSAvLyByZW1vdmUgYW55IGphdmFzY3JpcHQueC4gLyAwX3VzZXJkYXRhLjAuIGZyb20gYmVnaW5uaW5nCiAgICAgICAgbHBQYXRoID0gd2hlcmUgKyAnLicgKyBscFBhdGg7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVzVG9DcmVhdGVbaV1bMF0gPSBscFBhdGg7CiAgICB9CgogICAgaWYgKHdoZXJlICE9ICcwX3VzZXJkYXRhLjAnKSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciBqYXZhc2NyaXB0LngKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBOb3cgd2UgYXJlIGNyZWF0aW5nIG5ldyBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGxldCBsb29wSW5pdCA9IChsb29wUGFyYW1bMV1bJ2RlZiddID09IHVuZGVmaW5lZCkgPyBudWxsIDogbG9vcFBhcmFtWzFdWydkZWYnXTsgLy8gbWltaWMgc2FtZSBiZWhhdmlvciBhcyBjcmVhdGVTdGF0ZSBpZiBubyBpbml0IHZhbHVlIGlzIHByb3ZpZGVkCiAgICAgICAgICAgIGNyZWF0ZVN0YXRlKGxvb3BQYXJhbVswXSwgbG9vcEluaXQsIGZvcmNlLCBsb29wUGFyYW1bMV0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wCiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBsZXQgY291bnRlciA9IC0xOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGNvdW50ZXIgKz0gMTsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nICgnW0RlYnVnXSBDdXJyZW50bHkgcHJvY2Vzc2luZyBmb2xsb3dpbmcgc3RhdGU6IFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgaWYoICgkKGxvb3BQYXJhbVswXSkubGVuZ3RoID4gMCkgJiYgKGV4aXN0c1N0YXRlKGxvb3BQYXJhbVswXSkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBpcyBleGlzdGluZy4KICAgICAgICAgICAgICAgIGlmIChXQVJOICYmICFmb3JjZSkgbG9nKCdTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGNyZWF0ZWQuJywgJ3dhcm4nKTsKICAgICAgICAgICAgICAgIGlmICghV0FSTiAmJiBMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcuIE9wdGlvbiBmb3JjZSAoPW92ZXJ3cml0ZSkgaXMgc2V0IHRvIFsnICsgZm9yY2UgKyAnXS4nKTsKICAgICAgICAgICAgICAgIGlmKCFmb3JjZSkgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXRlIGV4aXN0cyBhbmQgc2hhbGwgbm90IGJlIG92ZXJ3cml0dGVuIHNpbmNlIGZvcmNlPWZhbHNlCiAgICAgICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgd2hpY2ggd2UgYXJlIGdvaW5nIHRvIGV4ZWN1dGUgbm93LicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIG91dCBhbmQgY29udGludWUgd2l0aCBuZXh0IGVsZW1lbnQgaW4gbG9vcC4KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xODQ1MjkyMC9jb250aW51ZS1pbi1jdXJzb3ItZm9yZWFjaAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gLy8gaWYoIWZvcmNlKQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTdGF0ZSBpcyBub3QgZXhpc3Rpbmcgb3IgZm9yY2UgPSB0cnVlLCBzbyB3ZSBhcmUgY29udGludWluZyB0byBjcmVhdGUgdGhlIHN0YXRlIHRocm91Z2ggc2V0T2JqZWN0KCkuCiAgICAgICAgICAgIGxldCBvYmogPSB7fTsKICAgICAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgICAgICBvYmoubmF0aXZlID0ge307CiAgICAgICAgICAgIG9iai5jb21tb24gPSBsb29wUGFyYW1bMV07CiAgICAgICAgICAgIHNldE9iamVjdChsb29wUGFyYW1bMF0sIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdCBmb3Igc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXTogJyArIGVycik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBOb3cgd2UgYXJlIGNyZWF0aW5nIG5ldyBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddJykKICAgICAgICAgICAgICAgICAgICBsZXQgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnbnVtYmVyJykgaW5pdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJyc7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IGxvb3BQYXJhbVsxXS5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlKGxvb3BQYXJhbVswXSwgaW5pdCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gc2V0U3RhdGUgZHVyY2hnZWbDvGhydDogJyArIGxvb3BQYXJhbVswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0sIERFTEFZICsgKDIwICogY291bnRlcikgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9Cn0KCmxldCBzdGF0ZXNUb0NyZWF0ZSA9IFsKCS8vQmV3w6Rzc2VydW5nCglbcGZhZCsnYmV3YWVzc2VydW5nX2FrdGl2JywgeyduYW1lJzonYmV3YWVzc2VydW5nX2FrdGl2JywgJ3R5cGUnOidib29sZWFuJ30gXSwKCVtwZmFkKydiZXdhZXNzZXJ1bmdfYXV0b21hdGlrJywgeyd0eXBlJzogJ2Jvb2xlYW4nLCduYW1lJzogJ2Jld2Flc3NlcnVuZ19hdXRvbWF0aWsnfSBdLAoJLy8gIFRpbWVyCglbcGZhZCsnbGF1dHplaXRfZ2VzYW10X2luX3NlaycsIHsndHlwZSc6ICdudW1iZXInLCduYW1lJzogJ2xhdXR6ZWl0X2dlc2FtdF9pbl9zZWsnLCAndW5pdCc6ICdTZWt1bmRlbid9IF0sCglbcGZhZCsnbGF1dHplaXRfZW5kZV91aHJ6ZWl0Jywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAnbGF1dHplaXRfZW5kZV91aHJ6ZWl0JywgJ3VuaXQnOiAnVWhyJ30gXSwKCVtwZmFkKydyZXN0bGF1dHplaXQnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICdyZXN0bGF1dHplaXQnLCAndW5pdCc6ICJNaW51dGVuIn0gXSwKCVtwZmFkKydyZXN0bGF1dHplaXRfaW5fc2VrJywgeyd0eXBlJzogJ251bWJlcicsJ25hbWUnOiAncmVzdGxhdXR6ZWl0X2luX3NlaycsICd1bml0JzogJ1Nla3VuZGVuJ30gXSwKCS8vICBWZW50aWxlCglbcGZhZCsndmVudGlsZS5ha3RpdmVzX3ZlbnRpbCcsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ2FrdGl2ZXNfdmVudGlsJ30gXSwKCVtwZmFkKyd2ZW50aWxlLmFuemFobF9ha3RpdmVfdmVudGlsZScsIHsndHlwZSc6ICdudW1iZXInLCduYW1lJzogJ2FuemFobF9ha3RpdmVfdmVudGlsZSd9IF0sCgkvLyAgICBWZW50aWwgMQoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzEudmVudGlsXzEnLCB7J3R5cGUnOiAnYm9vbGVhbicsJ25hbWUnOiAndmVudGlsXzEnfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzEudmVudGlsXzFfZGF1ZXInLCB7J3R5cGUnOiAnbnVtYmVyJywnbmFtZSc6ICd2ZW50aWxfMV9kYXVlcicsJ3VuaXQnOiAnU2VrdW5kZW4nfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzEudmVudGlsXzFfZW5kZScsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ3ZlbnRpbF8xX2VuZGUnLCd1bml0JzogJ1Vocid9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfMS52ZW50aWxfMV9uYW1lJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAndmVudGlsXzFfbmFtZScsICdkZWYnOiBrcmVpczF9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfMS52ZW50aWxfMV9yZXN0emVpdCcsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ3ZlbnRpbF8xX3Jlc3R6ZWl0JywndW5pdCc6ICdNaW51dGVuJ30gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8xLnZlbnRpbF8xX3Jlc3R6ZWl0X2luX3NlaycsIHsndHlwZSc6ICdudW1iZXInLCduYW1lJzogJ3ZlbnRpbF8xX3Jlc3R6ZWl0X2luX3NlaycsJ3VuaXQnOiAnU2VrdW5kZW4nfSBdLAoJLy8gICAgVmVudGlsIDIKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8yLnZlbnRpbF8yJywgeyd0eXBlJzogJ2Jvb2xlYW4nLCduYW1lJzogJ3ZlbnRpbF8yJ30gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8yLnZlbnRpbF8yX2RhdWVyJywgeyd0eXBlJzogJ251bWJlcicsJ25hbWUnOiAndmVudGlsXzJfZGF1ZXInLCd1bml0JzogJ1Nla3VuZGVuJ30gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8yLnZlbnRpbF8yX2VuZGUnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICd2ZW50aWxfMl9lbmRlJywndW5pdCc6ICdVaHInfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzIudmVudGlsXzJfbmFtZScsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ3ZlbnRpbF8yX25hbWUnLCAnZGVmJzoga3JlaXMxfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzIudmVudGlsXzJfcmVzdHplaXQnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICd2ZW50aWxfMl9yZXN0emVpdCcsJ3VuaXQnOiAnTWludXRlbid9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfMi52ZW50aWxfMl9yZXN0emVpdF9pbl9zZWsnLCB7J3R5cGUnOiAnbnVtYmVyJywnbmFtZSc6ICd2ZW50aWxfMl9yZXN0emVpdF9pbl9zZWsnLCd1bml0JzogJ1Nla3VuZGVuJ30gXSwKCS8vICAgIFZlbnRpbCAzCglbcGZhZCsndmVudGlsZS52ZW50aWxfMy52ZW50aWxfMycsIHsndHlwZSc6ICdib29sZWFuJywnbmFtZSc6ICd2ZW50aWxfMyd9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfMy52ZW50aWxfM19kYXVlcicsIHsndHlwZSc6ICdudW1iZXInLCduYW1lJzogJ3ZlbnRpbF8zX2RhdWVyJywndW5pdCc6ICdTZWt1bmRlbid9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfMy52ZW50aWxfM19lbmRlJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAndmVudGlsXzNfZW5kZScsJ3VuaXQnOiAnVWhyJ30gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8zLnZlbnRpbF8zX25hbWUnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICd2ZW50aWxfNF9uYW1lJywgJ2RlZic6IGtyZWlzMX0gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF8zLnZlbnRpbF8zX3Jlc3R6ZWl0Jywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAndmVudGlsXzNfcmVzdHplaXQnLCd1bml0JzogJ01pbnV0ZW4nfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzMudmVudGlsXzNfcmVzdHplaXRfaW5fc2VrJywgeyd0eXBlJzogJ251bWJlcicsJ25hbWUnOiAndmVudGlsXzNfcmVzdHplaXRfaW5fc2VrJywndW5pdCc6ICdTZWt1bmRlbid9IF0sCgkvLyAgICBWZW50aWwgNAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzQudmVudGlsXzQnLCB7J3R5cGUnOiAnYm9vbGVhbicsJ25hbWUnOiAndmVudGlsXzQnfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzQudmVudGlsXzRfZGF1ZXInLCB7J3R5cGUnOiAnbnVtYmVyJywnbmFtZSc6ICd2ZW50aWxfNF9kYXVlcicsJ3VuaXQnOiAnU2VrdW5kZW4nfSBdLAoJW3BmYWQrJ3ZlbnRpbGUudmVudGlsXzQudmVudGlsXzRfZW5kZScsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ3ZlbnRpbF80X2VuZGUnLCd1bml0JzogJ1Vocid9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfNC52ZW50aWxfNF9uYW1lJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAndmVudGlsXzRfbmFtZScsICdkZWYnOiBrcmVpczF9IF0sCglbcGZhZCsndmVudGlsZS52ZW50aWxfNC52ZW50aWxfNF9yZXN0emVpdCcsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ3ZlbnRpbF80X3Jlc3R6ZWl0JywndW5pdCc6ICdNaW51dGVuJ30gXSwKCVtwZmFkKyd2ZW50aWxlLnZlbnRpbF80LnZlbnRpbF80X3Jlc3R6ZWl0X2luX3NlaycsIHsndHlwZSc6ICdudW1iZXInLCduYW1lJzogJ3ZlbnRpbF80X3Jlc3R6ZWl0X2luX3NlaycsJ3VuaXQnOiAnU2VrdW5kZW4nfSBdLAoJLy8gIFplaXRwbGFuCgkvLyAgICBNb3JnZW5zCglbcGZhZCsnemVpdHBsYW4ubW9yZ2Vuc19ha3RpdicsIHsndHlwZSc6ICdib29sZWFuJywnbmFtZSc6ICdtb3JnZW5zX2FrdGl2J30gXSwKCVtwZmFkKyd6ZWl0cGxhbi5tb3JnZW5zX3VocnplaXRfc3RhcnQnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICdtb3JnZW5zX3VocnplaXRfc3RhcnQnLCd1bml0JzogJ1Vocid9IF0sCglbcGZhZCsnemVpdHBsYW4ubW9yZ2Vuc191aHJ6ZWl0X3N0YXJ0X3N0dW5kZScsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ21vcmdlbnNfdWhyemVpdF9zdGFydF9zdHVuZGUnfSBdLAoJW3BmYWQrJ3plaXRwbGFuLm1vcmdlbnNfdWhyemVpdF9zdGFydF9taW51dGUnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICdtb3JnZW5zX3VocnplaXRfc3RhcnRfbWludXRlJ30gXSwKCVtwZmFkKyd6ZWl0cGxhbi5tb3JnZW5zX3ZlcnpvZWdlcnVuZ19zb25uZW5hdWZnYW5nJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAnbW9yZ2Vuc192ZXJ6b2VnZXJ1bmdfc29ubmVuYXVmZ2FuZycsJ3VuaXQnOiAnTWludXRlbid9IF0sCgkvLyAgICBBYmVuZHMKCVtwZmFkKyd6ZWl0cGxhbi5hYmVuZHNfYWt0aXYnLCB7J3R5cGUnOiAnYm9vbGVhbicsJ25hbWUnOiAnYWJlbmRzX2FrdGl2J30gXSwKCVtwZmFkKyd6ZWl0cGxhbi5hYmVuZHNfdWhyemVpdF9zdGFydCcsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ2FiZW5kc191aHJ6ZWl0X3N0YXJ0JywndW5pdCc6ICdVaHInfSBdLAoJW3BmYWQrJ3plaXRwbGFuLmFiZW5kc191aHJ6ZWl0X3N0YXJ0X3N0dW5kZScsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ2FiZW5kc191aHJ6ZWl0X3N0YXJ0X3N0dW5kZSd9IF0sCglbcGZhZCsnemVpdHBsYW4uYWJlbmRzX3VocnplaXRfc3RhcnRfbWludXRlJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAnYWJlbmRzX3VocnplaXRfc3RhcnRfbWludXRlJ30gXSwKCVtwZmFkKyd6ZWl0cGxhbi5hYmVuZHNfdmVyem9lZ2VydW5nX3Nvbm5lbnVudGVyZ2FuZycsIHsndHlwZSc6ICdzdHJpbmcnLCduYW1lJzogJ2FiZW5kc192ZXJ6b2VnZXJ1bmdfc29ubmVudW50ZXJnYW5nJywndW5pdCc6ICdNaW51dGVuJ30gXSwKCS8vICAgIEZlc3RlIFN0YXJ0emVpdAoJW3BmYWQrJ3plaXRwbGFuLmZlc3RlX3N0YXJ0emVpdF9ha3RpdicsIHsndHlwZSc6ICdib29sZWFuJywnbmFtZSc6ICdmZXN0ZV9zdGFydHplaXRfYWt0aXYnfSBdLAoJW3BmYWQrJ3plaXRwbGFuLmZlc3RlX3N0YXJ0emVpdF91aHJ6ZWl0X3N0YXJ0Jywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAnZmVzdGVfc3RhcnR6ZWl0X3VocnplaXRfc3RhcnQnLCd1bml0JzogJ1Vocid9IF0sCglbcGZhZCsnemVpdHBsYW4uZmVzdGVfc3RhcnR6ZWl0X3VocnplaXRfc3RhcnRfc3R1bmRlJywgeyd0eXBlJzogJ3N0cmluZycsJ25hbWUnOiAnZmVzdGVfc3RhcnR6ZWl0X3VocnplaXRfc3RhcnRfc3R1bmRlJ30gXSwKCVtwZmFkKyd6ZWl0cGxhbi5mZXN0ZV9zdGFydHplaXRfdWhyemVpdF9zdGFydF9taW51dGUnLCB7J3R5cGUnOiAnc3RyaW5nJywnbmFtZSc6ICdmZXN0ZV9zdGFydHplaXRfdWhyemVpdF9zdGFydF9taW51dGUnfSBdLAkJCl07ICAgIAogICAgY3JlYXRlVXNlclN0YXRlcyhzcGVpY2hlcm9ydCwgZmFsc2UsIHN0YXRlc1RvQ3JlYXRlKTs= Datenpunkte erstellen Startzeit berechnen ne default vars_morgens_verzoegerung_sonnenaufgang default vars_abends_verzoegerung_sonnenuntergang default vars_sonnenaufgang Morgens startzeit_sonnenaufgang ADD 1 mid sunrise 0 1 val vars_morgens_verzoegerung_sonnenaufgang startzeit_sonnenaufgang_stunde ROUNDDOWN 3.1 DIVIDE 1 startzeit_sonnenaufgang 60 startzeit_sonnenaufgang_minute MINUS 1 startzeit_sonnenaufgang 1 MULTIPLY 1 startzeit_sonnenaufgang_stunde 60 Stunde und Minute in Objekt für cron false FALSE Object ID vars_morgens_uhrzeit_start_stunde TRUE startzeit_sonnenaufgang_stunde 0 false FALSE Object ID vars_morgens_urhzeit_start_minute TRUE startzeit_sonnenaufgang_minute 0 Uhrzeit für VIS LT startzeit_sonnenaufgang_stunde 10 startzeit_sonnenaufgang_stunde 0 startzeit_sonnenaufgang_stunde LT startzeit_sonnenaufgang_minute 10 startzeit_sonnenaufgang_minute 0 startzeit_sonnenaufgang_minute false FALSE Object ID vars_morgens_uhrzeit_start TRUE startzeit_sonnenaufgang_stunde : startzeit_sonnenaufgang_minute 0 Abends startzeit_sonnenuntergang ADD 1 mid sunset 0 1 val vars_abends_verzoegerung_sonnenuntergang startzeit_sonnenuntergang_stunde ROUNDDOWN 3.1 DIVIDE 1 startzeit_sonnenuntergang 60 startzeit_sonnenuntergang_minute MINUS 1 startzeit_sonnenuntergang 1 MULTIPLY 1 startzeit_sonnenuntergang_stunde 60 Stunde und Minute in Objekt für cron false FALSE Object ID vars_abends_uhrzeit_start_stunde TRUE startzeit_sonnenuntergang_stunde 0 false FALSE Object ID vars_abends_uhrzeit_start_minute TRUE startzeit_sonnenuntergang_minute 0 Uhrzeit für VIS LT startzeit_sonnenuntergang_stunde 10 startzeit_sonnenuntergang_stunde 0 startzeit_sonnenuntergang_stunde LT startzeit_sonnenuntergang_minute 10 startzeit_sonnenuntergang_minute 0 startzeit_sonnenuntergang_minute false FALSE Object ID vars_abends_uhrzeit_start TRUE startzeit_sonnenuntergang_stunde : startzeit_sonnenuntergang_minute 0 Bewässerung autom. starten ne default vars_morgens_verzoegerung_sonnenaufgang default vars_abends_verzoegerung_sonnenuntergang default vars_feste_startzeit_uhrzeit_start_stunde default vars_feste_startzeit_urhzeit_start_minute default vars_sonnenaufgang timeout 1 sec Morgens morgens morgens * * * * * FALSE FALSE * * * * vars_morgens_uhrzeit_start_stunde * vars_morgens_urhzeit_start_minute AND AND EQ val vars_morgens_aktiv TRUE AND EQ val vars_bewaesserung_automatik TRUE EQ val vars_bewaesserung_aktiv TRUE AND AND GTE M 4 LTE M 10 AND GTE val vars_automatik_top_temp 24 LT val vars_automatik_regen 0.5 false FALSE Object ID vars_bewaesserung_aktiv TRUE 0 Abends abends abends * * * * * FALSE FALSE * * * * vars_abends_uhrzeit_start_stunde * vars_abends_uhrzeit_start_minute AND AND EQ val vars_abends_aktiv TRUE AND EQ val vars_bewaesserung_automatik TRUE EQ val vars_bewaesserung_aktiv TRUE AND AND GTE M 4 LTE M 10 AND GTE val vars_automatik_top_temp 24 LT val vars_automatik_regen 0.5 false FALSE Object ID vars_bewaesserung_aktiv TRUE 0 Feste Uhrzeit LT val vars_feste_startzeit_uhrzeit_start_stunde 10 startzeit_fix_stunde 0 val vars_feste_startzeit_uhrzeit_start_stunde startzeit_fix_stunde val vars_feste_startzeit_uhrzeit_start_stunde LT val vars_feste_startzeit_urhzeit_start_minute 10 startzeit_fix_minute 0 val vars_feste_startzeit_urhzeit_start_minute startzeit_fix_minute val vars_feste_startzeit_urhzeit_start_minute false FALSE Object ID vars_feste_startzeit_uhrzeit_start TRUE startzeit_fix_stunde : startzeit_fix_minute 0 fix fix * * * * * FALSE FALSE * * * * val javascript.0.bewaesserung.zeitplan.feste_startzeit_uhrzeit_start_stunde * val javascript.0.bewaesserung.zeitplan.feste_startzeit_uhrzeit_start_minute AND AND EQ val javascript.0.bewaesserung.zeitplan.feste_startzeit_aktiv TRUE AND EQ val javascript.0.bewaesserung.bewaesserung_automatik TRUE EQ val javascript.0.bewaesserung.bewaesserung_aktiv FALSE AND AND GTE M 4 LTE M 10 AND GTE val javascript.0.temperaturen.heute_max 24 LT val daswetter.0.NextDaysDetailed.Location_1.Day_1.rain_value 0.5 javascript.0.bewaesserung.bewaesserung_aktiv FALSE TRUE Enduhrzeiten berechnen ne default vars_bewaesserung_aktiv Gesamt EQ val vars_bewaesserung_aktiv TRUE Enduhrzeit berechnen info_enduhrzeit_raw Jedes Ventil startet mit einer Verzögerung von 1 Sekunde. Daher wird pro Ventil 1 Sekunde auf die Gesamtlaufzeit drauf gerechnetGesamtlaufzeit = Jetzt + Laufzeit + Umschaltsekunden ADD 1 sid 1 val vars_laufzeit_gesamt_in_sek info_endzeit_stunde ROUNDDOWN 3.1 DIVIDE 1 info_enduhrzeit_raw 3600 info_endzeit_minute ROUNDDOWN 3.1 DIVIDE 1 MINUS 1 info_enduhrzeit_raw 1 MULTIPLY 1 info_endzeit_stunde 3600 60 info_endzeit_sekunde MINUS 1 info_enduhrzeit_raw 1 MULTIPLY 1 info_endzeit_stunde 3600 info_endzeit_sekunde MINUS 1 info_endzeit_sekunde 1 MULTIPLY 1 info_endzeit_minute 60 Mail Stunden formatieren bei kleiner 10 LT info_endzeit_stunde 10 info_endzeit_stunde 0 info_endzeit_stunde Mail Minuten formatieren bei kleiner 10 LT info_endzeit_minute 10 info_endzeit_minute 0 info_endzeit_minute Mail Sekunden formatieren bei kleiner 10 LT info_endzeit_sekunde 10 info_endzeit_sekunde 0 s false FALSE Object ID vars_lautzeit_ende_uhrzeit TRUE info_endzeit_stunde : info_endzeit_minute : info_endzeit_sekunde Uhr 0 pro Ventil EQ val vars_bewaesserung_aktiv TRUE Ventil 1 End-Uhrzeit EQ val vars_ventil_1 TRUE ventil_enduhrzeit_raw ADD Plus 1 Sekuden fpr das setzen des wertes ON_TIME des HM Aktors 1 ADD 1 sid 1 val javascript.0.bewaesserung.ventile.ventil_1.ventil_1_dauer 1 ventil_enduhrzeit_std ROUNDDOWN 3.1 DIVIDE 1 ventil_enduhrzeit_raw 3600 ventil_enduhrzeit_min ROUNDDOWN 3.1 DIVIDE 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 60 ventil_enduhrzeit_sek MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 ventil_enduhrzeit_sek MINUS 1 ventil_enduhrzeit_sek 1 MULTIPLY 1 ventil_enduhrzeit_min 60 LT ventil_enduhrzeit_std 10 ventil_enduhrzeit_std 0 ventil_enduhrzeit_std LT ventil_enduhrzeit_min 10 ventil_enduhrzeit_min 0 ventil_enduhrzeit_min LT ventil_enduhrzeit_sek 10 ventil_enduhrzeit_sek 0 ventil_enduhrzeit_sek false FALSE Object ID vars_ventil_1_ende TRUE ventil_enduhrzeit_std : ventil_enduhrzeit_min : ventil_enduhrzeit_sek 0 false FALSE Object ID vars_ventil_1_ende TRUE deaktiviert 0 Ventil 2 End-Uhrzeit EQ val vars_ventil_2 TRUE Pro aktivem Ventil kommt 1 Sekunde Verzögerung für das setzen von ON_TIME hinzu EQ val vars_ventil_1 FALSE ventil_enduhrzeit_verzoegerung 1 EQ val vars_ventil_1 TRUE ventil_enduhrzeit_verzoegerung 2 ventil_enduhrzeit_raw ADD 1 ADD 1 sid 1 val vars_ventil_1_dauer 1 ADD 1 val vars_ventil_2_dauer 1 ventil_enduhrzeit_verzoegerung ventil_enduhrzeit_std ROUNDDOWN 3.1 DIVIDE 1 ventil_enduhrzeit_raw 3600 ventil_enduhrzeit_min ROUNDDOWN 3.1 DIVIDE 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 60 ventil_enduhrzeit_sek MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 ventil_enduhrzeit_sek MINUS 1 ventil_enduhrzeit_sek 1 MULTIPLY 1 ventil_enduhrzeit_min 60 LT ventil_enduhrzeit_std 10 ventil_enduhrzeit_std 0 ventil_enduhrzeit_std LT ventil_enduhrzeit_min 10 ventil_enduhrzeit_min 0 ventil_enduhrzeit_min LT ventil_enduhrzeit_sek 10 ventil_enduhrzeit_sek 0 ventil_enduhrzeit_sek false FALSE Object ID vars_ventil_2_ende TRUE ventil_enduhrzeit_std : ventil_enduhrzeit_min : ventil_enduhrzeit_sek 0 false FALSE Object ID vars_ventil_2_ende TRUE deaktiviert 0 Ventil 3 End-Uhrzeit EQ val vars_ventil_3 TRUE Pro aktivem Ventil kommt 1 Sekunde Verzögerung für das setzen von ON_TIME hinzu EQ val vars_ventil_3 TRUE AND EQ val vars_ventil_1 FALSE EQ val vars_ventil_2 FALSE ventil_enduhrzeit_verzoegerung 1 OR EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 TRUE ventil_enduhrzeit_verzoegerung 2 AND EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 TRUE ventil_enduhrzeit_verzoegerung 3 ventil_enduhrzeit_raw ADD 1 ADD 1 sid 1 val vars_ventil_1_dauer 1 ADD 1 ADD 1 val vars_ventil_2_dauer 1 val vars_ventil_3_dauer 1 ventil_enduhrzeit_verzoegerung ventil_enduhrzeit_std ROUNDDOWN 3.1 DIVIDE 1 ventil_enduhrzeit_raw 3600 ventil_enduhrzeit_min ROUNDDOWN 3.1 DIVIDE 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 60 ventil_enduhrzeit_sek MINUS 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 1 MULTIPLY 1 ventil_enduhrzeit_min 60 LT ventil_enduhrzeit_std 10 ventil_enduhrzeit_std 0 ventil_enduhrzeit_std LT ventil_enduhrzeit_min 10 ventil_enduhrzeit_min 0 ventil_enduhrzeit_min LT ventil_enduhrzeit_sek 10 ventil_enduhrzeit_sek 0 ventil_enduhrzeit_sek false FALSE Object ID vars_ventil_3_ende TRUE ventil_enduhrzeit_std : ventil_enduhrzeit_min : ventil_enduhrzeit_sek 0 false FALSE Object ID vars_ventil_3_ende TRUE deaktiviert 0 Ventil 4 End-Uhrzeit EQ val vars_ventil_4 TRUE Pro aktivem Ventil kommt 1 Sekunde Verzögerung für das setzen von ON_TIME hinzu EQ val vars_ventil_4 TRUE AND AND EQ val vars_ventil_1 FALSE EQ val vars_ventil_2 FALSE EQ val vars_ventil_3 FALSE ventil_enduhrzeit_verzoegerung 1 OR OR EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 TRUE EQ val vars_ventil_3 TRUE ventil_enduhrzeit_verzoegerung 2 AND AND EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 TRUE EQ val vars_ventil_3 FALSE ventil_enduhrzeit_verzoegerung 3 AND AND EQ val vars_ventil_1 FALSE EQ val vars_ventil_2 TRUE EQ val vars_ventil_3 TRUE ventil_enduhrzeit_verzoegerung 3 AND AND EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 FALSE EQ val vars_ventil_3 TRUE ventil_enduhrzeit_verzoegerung 3 AND AND EQ val vars_ventil_1 TRUE EQ val vars_ventil_2 TRUE EQ val vars_ventil_3 TRUE ventil_enduhrzeit_verzoegerung 4 ventil_enduhrzeit_raw ADD 1 ADD 1 sid 1 ADD 1 val vars_ventil_1_dauer 1 val vars_ventil_2_dauer 1 ADD 1 ADD 1 val vars_ventil_3_dauer 1 val vars_ventil_4_dauer 1 ventil_enduhrzeit_verzoegerung ventil_enduhrzeit_std ROUNDDOWN 3.1 DIVIDE 1 ventil_enduhrzeit_raw 3600 ventil_enduhrzeit_min ROUNDDOWN 3.1 DIVIDE 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 60 ventil_enduhrzeit_sek MINUS 1 MINUS 1 ventil_enduhrzeit_raw 1 MULTIPLY 1 ventil_enduhrzeit_std 3600 1 MULTIPLY 1 ventil_enduhrzeit_min 60 LT ventil_enduhrzeit_std 10 ventil_enduhrzeit_std 0 ventil_enduhrzeit_std LT ventil_enduhrzeit_min 10 ventil_enduhrzeit_min 0 ventil_enduhrzeit_min LT ventil_enduhrzeit_sek 10 ventil_enduhrzeit_sek 0 ventil_enduhrzeit_sek false FALSE Object ID vars_ventil_4_ende TRUE ventil_enduhrzeit_std : ventil_enduhrzeit_min : ventil_enduhrzeit_sek 0 false FALSE Object ID vars_ventil_4_ende TRUE deaktiviert 0 EQ val vars_bewaesserung_aktiv FALSE false FALSE Object ID vars_ventil_1_ende TRUE 0 false FALSE Object ID vars_ventil_2_ende TRUE 0 false FALSE Object ID vars_ventil_3_ende TRUE 0 false FALSE Object ID vars_ventil_4_ende TRUE 0 Laufzeiten setzen ne default vars_ventil_1 default vars_ventil_2 default vars_ventil_3 default vars_ventil_4 default vars_ventil_1_dauer default vars_ventil_2_dauer default vars_ventil_3_dauer default vars_ventil_4_dauer default vars_bewaesserung_aktiv Laufzeit Ventile EQ val vars_bewaesserung_aktiv FALSE Ventil 1 - Laufzeit EQ val vars_ventil_1 TRUE ventil_1_dauer val vars_ventil_1_dauer ventil_1_dauer 0 false FALSE Object ID vars_ventil_1_restzeit TRUE DIVIDE 60 ventil_1_dauer 60 :00 0 false FALSE Object ID vars_ventil_1_restzeit_in_sek TRUE ventil_1_dauer 0 Ventil 2 - Laufzeit EQ val vars_ventil_2 TRUE ventil_2_dauer val vars_ventil_2_dauer ventil_2_dauer 0 false FALSE Object ID vars_ventil_2_restzeit TRUE DIVIDE 1 ventil_2_dauer 60 :00 0 false FALSE Object ID vars_ventil_2_restzeit_in_sek TRUE ventil_2_dauer 0 Ventil 3 - Laufzeit EQ val vars_ventil_3 TRUE ventil_3_dauer val vars_ventil_3_dauer ventil_3_dauer 0 false FALSE Object ID vars_ventil_3_restzeit TRUE DIVIDE 1 ventil_3_dauer 60 :00 0 false FALSE Object ID vars_ventil_3_restzeit_in_sek TRUE ventil_3_dauer 0 Ventil 4 - Laufzeit EQ val vars_ventil_4 TRUE ventil_4_dauer val vars_ventil_4_dauer ventil_4_dauer 0 false FALSE Object ID vars_ventil_4_restzeit TRUE DIVIDE 1 ventil_4_dauer 60 :00 0 false FALSE Object ID vars_ventil_4_restzeit_in_sek TRUE ventil_4_dauer 0 Gesamtlaufzeit EQ val vars_bewaesserung_aktiv FALSE Gesamtlaufzeit in Sek false FALSE Pro aktives Ventil wird auf die Gesamtlaufzeit eine Sekunden drauf gerechnet für das setzen der ON_TIME Object ID vars_laufzeit_gesamt_in_sek TRUE ADD 1 ADD 1 ADD 1 ventil_1_dauer 1 ventil_2_dauer 1 ADD 1 ventil_3_dauer 1 ventil_4_dauer 1 ADD 1 ADD 1 val vars_ventil_1 1 val vars_ventil_2 1 ADD 1 val vars_ventil_3 1 val vars_ventil_4 0 false FALSE Object ID vars_restlautzeit_in_sek TRUE ADD 1 ADD 1 ADD 1 ventil_1_dauer 1 ventil_2_dauer 1 ADD 1 ventil_3_dauer 1 ventil_4_dauer 1 ADD 1 ADD 1 val javascript.0.bewaesserung.ventile.ventil_1.ventil_1 1 val javascript.0.bewaesserung.ventile.ventil_2.ventil_2 1 ADD 1 val javascript.0.bewaesserung.ventile.ventil_3.ventil_3 1 val javascript.0.bewaesserung.ventile.ventil_4.ventil_4 0 Gesamtlaufzeit für die VIS restlaufzeit_vis_min ROUNDDOWN 3.1 DIVIDE 1 val vars_laufzeit_gesamt_in_sek 60 restlaufzeit_vis_sek MINUS 1 val vars_laufzeit_gesamt_in_sek 1 MULTIPLY 1 restlaufzeit_vis_min 60 LT restlaufzeit_vis_sek 10 restlaufzeit_vis_sek 0 restlaufzeit_vis_sek false FALSE Object ID vars_restlautzeit TRUE restlaufzeit_vis_min : restlaufzeit_vis_sek 0 Info-Mail / Ansage Bewässerung ne default vars_bewaesserung_aktiv Start EQ val vars_bewaesserung_aktiv TRUE Mail Text und Betreff waitmail2 1 sec Aktive Ventile EQ val vars_ventil_1 TRUE info_endzeit_aktive_ventile Ventil 1 ( val vars_ventil_1_name ): val vars_ventil_1_ende Uhr EQ val vars_ventil_2 TRUE info_endzeit_aktive_ventile info_endzeit_aktive_ventile \n Ventil 2 ( val vars_ventil_2_name ): val vars_ventil_2_ende Uhr EQ val vars_ventil_3 TRUE info_endzeit_aktive_ventile info_endzeit_aktive_ventile \n Ventil 3 ( val vars_ventil_3_name ): val vars_ventil_3_ende Uhr EQ val vars_ventil_4 TRUE info_endzeit_aktive_ventile info_endzeit_aktive_ventile \n Ventil 4 ( val vars_ventil_4_name ): val vars_ventil_4_ende Uhr info_text Die Gartenbewässerung wurde akiviert. \n \n Bewässerungsdauer: ROUNDDOWN 3.1 DIVIDE 1 val vars_laufzeit_gesamt_in_sek 60 Minuten \n Start: hh:mm:ss Uhr \n Ende: val vars_lautzeit_ende_uhrzeit \n \n Aktive Ventile: \n info_endzeit_aktive_ventile info_betreff +++ hh:mm Uhr - Gartenbewässerung aktiviert +++ EQ val javascript.0.Anwesenheit.Daniel FALSE FALSE val javascript.0.mailadressen.mailadresse_daniel info_text info_betreff .0 0 text info_text info_betreff Sprachausgabe EQ val javascript.0.Anwesenheit.Anwesenheit TRUE NEQ info_endzeit_minute 00 javascript.0.echo.sprachausgabe_alle_geraete FALSE Gartenbewässerung gestartet. ende um info_endzeit_stunde Uhr info_endzeit_minute und info_endzeit_stunde Sekunden javascript.0.echo.sprachausgabe_alle_geraete FALSE Gartenbewässerung gestartet. ende um info_endzeit_stunde Uhr und info_endzeit_stunde Sekunden Stop EQ val vars_bewaesserung_aktiv FALSE EQ val javascript.0.Anwesenheit.Daniel FALSE FALSE val javascript.0.mailadressen.mailadresse_daniel Gartenbewässerung beendet +++ hh:mm Uhr - Gartenbewässerung beendet +++ .0 0 +++ hh:mm Uhr - Gartenbewässerung beendet +++ EQ val javascript.0.Anwesenheit.Anwesenheit TRUE javascript.0.echo.sprachausgabe_alle_geraete FALSE Gartenbewässerung beendet. Log Einträge ne default vars_bewaesserung_aktiv default vars_ventil_1_aktor default vars_ventil_2_aktor default vars_ventil_3_aktor default vars_ventil_4_aktor +++ Bewässerung gestartet +++ Log Eintrag wird nur ausgegeben, wenn alle Ventile aus sind, und die Variable sich vor 1 Sek geändert hat. AND AND EQ val vars_bewaesserung_aktiv TRUE AND EQ DD.MM.YYYY DD.MM.YYYY lc vars_bewaesserung_aktiv LTE MINUS 1 sid 1 sid lc vars_bewaesserung_aktiv 1 AND AND EQ lc vars_ventil_1_aktor FALSE EQ lc vars_ventil_2_aktor FALSE AND EQ lc vars_ventil_3_aktor FALSE EQ lc vars_ventil_4_aktor FALSE log +++ Bewässerung gestartet +++ EQ val vars_bewaesserung_aktiv FALSE log +++ Bewässerung beendet +++ Ventil 1 AND EQ DD.MM.YYYY DD.MM.YYYY lc vars_ventil_1_aktor LTE MINUS 1 sid 1 sid lc vars_ventil_1_aktor 5 EQ val vars_ventil_1_aktor TRUE log +++ Bewässerung: Ventil 1 - val vars_ventil_1_name aktiv +++ Ventil 2 AND EQ DD.MM.YYYY DD.MM.YYYY lc vars_ventil_2_aktor LTE MINUS 1 sid 1 sid lc vars_ventil_2_aktor 5 EQ val vars_ventil_2_aktor TRUE log +++ Bewässerung: Ventil 2 - val vars_ventil_2_name aktiv +++ Ventil 3 AND EQ DD.MM.YYYY DD.MM.YYYY lc vars_ventil_3_aktor LTE MINUS 1 sid 1 sid lc vars_ventil_3_aktor 5 EQ val vars_ventil_3_aktor TRUE log +++ Bewässerung: Ventil 3 - val vars_ventil_3_name aktiv +++ Ventil 4 AND EQ DD.MM.YYYY DD.MM.YYYY lc vars_ventil_4_aktor LTE MINUS 1 sid 1 sid lc vars_ventil_4_aktor 5 EQ val vars_ventil_4_aktor TRUE log +++ Bewässerung: Ventil 4 - val vars_ventil_4_name aktiv +++ Aktive Ventile zählen ne default vars_restlautzeit_in_sek default vars_bewaesserung_aktiv false FALSE Object ID vars_anzahl_aktive_ventile TRUE ADD 1 ADD 1 val vars_ventil_1_aktor 1 val vars_ventil_2_aktor 1 ADD 1 val vars_ventil_3_aktor 1 val vars_ventil_4_aktor 0 Ventil Steuerung ne default vars_bewaesserung_aktiv default vars_restlautzeit_in_sek EQ val vars_bewaesserung_aktiv TRUE Ventil 1 AND EQ val vars_ventil_1 TRUE NEQ val vars_ventil_1_restzeit_in_sek 0 AND EQ val vars_ventil_1_aktor FALSE LT val vars_anzahl_aktive_ventile 3 false FALSE Object ID vars_ventil_1_aktor_ontime TRUE val vars_ventil_1_dauer 0 false FALSE Object ID vars_ventil_1_aktor TRUE 1000 false FALSE Object ID vars_aktives_ventil TRUE ventil_1 1000 Ventil 2 AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 AND EQ val vars_ventil_2 TRUE NEQ val vars_ventil_2_restzeit_in_sek 0 AND EQ val vars_ventil_2_aktor FALSE LT val vars_anzahl_aktive_ventile 3 false FALSE Object ID vars_ventil_2_aktor_ontime TRUE val vars_ventil_2_dauer 0 false FALSE Object ID vars_ventil_2_aktor TRUE 1000 false FALSE Object ID vars_aktives_ventil TRUE ventil_2 1000 Ventil 3 AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 AND OR EQ val vars_ventil_2 FALSE EQ val vars_ventil_2_restzeit_in_sek 0 AND EQ val vars_ventil_3 TRUE NEQ val vars_ventil_3_restzeit_in_sek 0 AND EQ val vars_ventil_3_aktor FALSE LT val vars_anzahl_aktive_ventile 3 false FALSE Object ID vars_ventil_3_aktor_ontime TRUE val vars_ventil_3_dauer 0 false FALSE Object ID vars_ventil_3_aktor TRUE 1000 false FALSE Object ID vars_aktives_ventil TRUE ventil_3 1000 Ventil 4 AND AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 OR EQ val vars_ventil_2 FALSE EQ val vars_ventil_2_restzeit_in_sek 0 AND OR EQ val vars_ventil_3 FALSE EQ val vars_ventil_3_restzeit_in_sek 0 AND EQ val vars_ventil_4 TRUE NEQ val vars_ventil_4_restzeit_in_sek 0 AND EQ val vars_ventil_4 TRUE LT val vars_anzahl_aktive_ventile 3 false FALSE Object ID vars_ventil_4_aktor_ontime TRUE val vars_ventil_4_dauer 0 false FALSE Object ID vars_ventil_4_aktor TRUE 1000 false FALSE Object ID vars_aktives_ventil TRUE ventil_4 1000 EQ val vars_bewaesserung_aktiv FALSE false FALSE Object ID vars_aktives_ventil TRUE aus 0 Restzeit gesamt berechnen ne default vars_bewaesserung_aktiv EQ val vars_bewaesserung_aktiv TRUE restzeit 1000 ms false FALSE Object ID vars_restlautzeit_in_sek TRUE MINUS 1 val vars_restlautzeit_in_sek 1 0 restzeit_gesamt_min ROUNDDOWN 3.1 DIVIDE 0 val vars_restlautzeit_in_sek 60 restzeit_gesamt_sek MINUS 1 val vars_restlautzeit_in_sek 1 MULTIPLY 1 restzeit_gesamt_min 60 0 hinzufügen wenn Minuten < 10 LT restzeit_gesamt_min 10 restzeit_gesamt_min 0 restzeit_gesamt_min 0 hinzufügen wenn Sekunden < 10 LT restzeit_gesamt_sek 10 restzeit_gesamt_sek 0 restzeit_gesamt_sek javascript.0.bewaesserung.restlautzeit FALSE restzeit_gesamt_min : restzeit_gesamt_sek EQ val vars_restlautzeit_in_sek 0 false FALSE Object ID vars_bewaesserung_aktiv FALSE 0 restzeit EQ val vars_bewaesserung_aktiv FALSE restzeit Restzeit Ventile berechnen ne default vars_bewaesserung_aktiv EQ val vars_bewaesserung_aktiv TRUE Ventil 1 EQ val vars_ventil_1 TRUE false FALSE Umschaltverzögerung für ON_TIME Object ID vars_ventil_1_restzeit_in_sek TRUE ADD 1 val vars_ventil_1_restzeit_in_sek 1 0 ventil_1_rest 1000 ms AND EQ val vars_ventil_1 TRUE NEQ val vars_ventil_1_restzeit_in_sek 0 false FALSE Object ID vars_ventil_1_restzeit_in_sek TRUE MINUS 1 val vars_ventil_1_restzeit_in_sek 1 0 VIS Anzeige setzen restzeit_ventil_min ROUNDDOWN 3.1 DIVIDE 1 val vars_ventil_1_restzeit_in_sek 60 restzeit_ventil_sek MINUS 1 val vars_ventil_1_restzeit_in_sek 1 MULTIPLY 1 restzeit_ventil_min 60 LT restzeit_ventil_sek 10 false FALSE Object ID vars_ventil_1_restzeit TRUE restzeit_ventil_min :0 restzeit_ventil_sek 0 false FALSE Object ID vars_ventil_1_restzeit TRUE restzeit_ventil_min : restzeit_ventil_sek 0 EQ val vars_ventil_1_restzeit_in_sek 0 ventil_1_rest Ventil 2 EQ val vars_ventil_2 TRUE false FALSE Umschaltverzögerung für ON_TIME Object ID vars_ventil_2_restzeit_in_sek TRUE ADD 1 val vars_ventil_2_restzeit_in_sek 1 0 ventil_2_rest 1000 ms AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 AND EQ val vars_ventil_2 TRUE NEQ val vars_ventil_2_restzeit_in_sek 0 false FALSE Object ID vars_ventil_2_restzeit_in_sek TRUE MINUS 1 val vars_ventil_2_restzeit_in_sek 1 0 VIS Anzeige setzen restzeit_ventil_min ROUNDDOWN 3.1 DIVIDE 1 val vars_ventil_2_restzeit_in_sek 60 restzeit_ventil_sek MINUS 1 val vars_ventil_2_restzeit_in_sek 1 MULTIPLY 1 restzeit_ventil_min 60 LT restzeit_ventil_sek 10 false FALSE Object ID vars_ventil_2_restzeit TRUE restzeit_ventil_min :0 restzeit_ventil_sek 0 false FALSE Object ID vars_ventil_2_restzeit TRUE restzeit_ventil_min : restzeit_ventil_sek 0 EQ val vars_ventil_2_restzeit_in_sek 0 ventil_2_rest Ventil 3 EQ val vars_ventil_3 TRUE false FALSE Umschaltverzögerung für ON_TIME Object ID vars_ventil_3_restzeit_in_sek TRUE ADD 1 val vars_ventil_3_restzeit_in_sek 1 0 ventil_3_rest 1000 ms AND AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 OR EQ val vars_ventil_2 FALSE EQ val vars_ventil_2_restzeit_in_sek 0 AND EQ val vars_ventil_3 TRUE NEQ val vars_ventil_3_restzeit_in_sek 0 false FALSE Object ID vars_ventil_3_restzeit_in_sek TRUE MINUS 1 val vars_ventil_3_restzeit_in_sek 1 0 VIS Anzeige setzen restzeit_ventil_min ROUNDDOWN 3.1 DIVIDE 1 val vars_ventil_3_restzeit_in_sek 60 restzeit_ventil_sek MINUS 1 val vars_ventil_3_restzeit_in_sek 1 MULTIPLY 1 restzeit_ventil_min 60 LT restzeit_ventil_sek 10 false FALSE Object ID vars_ventil_3_restzeit TRUE restzeit_ventil_min :0 restzeit_ventil_sek 0 false FALSE Object ID vars_ventil_3_restzeit TRUE restzeit_ventil_min : restzeit_ventil_sek 0 EQ val vars_ventil_3_restzeit_in_sek 0 ventil_3_rest Ventil 4 EQ val vars_ventil_4 TRUE false FALSE Umschaltverzögerung für ON_TIME Object ID vars_ventil_4_restzeit_in_sek TRUE ADD 1 val vars_ventil_4_restzeit_in_sek 1 0 ventil_4_rest 1000 ms AND AND AND OR EQ val vars_ventil_1 FALSE EQ val vars_ventil_1_restzeit_in_sek 0 OR EQ val vars_ventil_2 FALSE EQ val vars_ventil_2_restzeit_in_sek 0 OR EQ val vars_ventil_3 FALSE EQ val vars_ventil_3_restzeit_in_sek 0 AND EQ val vars_ventil_4 TRUE NEQ val vars_ventil_4_restzeit_in_sek 0 false FALSE Object ID vars_ventil_4_restzeit_in_sek TRUE MINUS 1 val vars_ventil_4_restzeit_in_sek 1 0 VIS Anzeige setzen restzeit_ventil_min ROUNDDOWN 3.1 DIVIDE 1 val vars_ventil_4_restzeit_in_sek 60 restzeit_ventil_sek MINUS 1 val vars_ventil_4_restzeit_in_sek 1 MULTIPLY 1 restzeit_ventil_min 60 LT restzeit_ventil_sek 10 false FALSE Object ID vars_ventil_4_restzeit TRUE restzeit_ventil_min :0 restzeit_ventil_sek 0 false FALSE Object ID vars_ventil_4_restzeit TRUE restzeit_ventil_min : restzeit_ventil_sek 0 EQ val vars_ventil_4_restzeit_in_sek 0 ventil_4_rest ventil_1_rest ventil_2_rest ventil_3_rest ventil_4_rest Manuelles abschalten -> alle Ventile abschalten ne default vars_bewaesserung_aktiv EQ val vars_bewaesserung_aktiv FALSE Ventil 1 EQ val vars_ventil_1_aktor TRUE false FALSE Object ID vars_ventil_1_aktor FALSE 0 Ventil 2 EQ val vars_ventil_2_aktor TRUE false FALSE Object ID vars_ventil_2_aktor FALSE 0 Ventil 3 EQ val vars_ventil_3_aktor TRUE false FALSE Object ID vars_ventil_3_aktor FALSE 0 Ventil 4 EQ val vars_ventil_4_aktor TRUE false FALSE Object ID vars_ventil_4_aktor FALSE 0