6 && $hour < 20) { if($stopp_status == False) { $g_dm = GetValueInteger(44615 /*[KNX\_Globale Variablen\g_luxdaemmerung_median]*/); $g_om = GetValueInteger(55700 /*[KNX\_Globale Variablen\g_luxost_median]*/); $g_sm = GetValueInteger(27294 /*[KNX\_Globale Variablen\g_luxsued_median]*/); $g_wm = GetValueInteger(16099 /*[KNX\_Globale Variablen\g_luxwest_median]*/); $txt = sprintf("Lux-Werte: Ost=%d Sued=%d West=%d Daemmerung=%d", $g_om, $g_sm, $g_wm, $g_dm); protocol1_txt($txt); } } else { return; } $xx = array(array("SZ", $g_om, 12000, 0, // 0 1 2 3 wenn kleiner, dann offen 25000, 11, // 4 5 .., dann viertel 41000, 24, // 6 7 .., dann halb 65000, 46, // 8 9 .., dann dreiviertel 99999, 62, 33200 /*[KNX\Beschattung\SZ Rollladen]*/), // 10 11 12 .., dann voll array("WZS", $g_om, 25000, 0, 41000, 15, 62000, 33, 75000, 52, 99999, 64, 45918 /*[KNX\Beschattung\WZS Rolllade]*/), array("KZS", $g_om, 12000, 0, 25000, 10, 41000, 23, 65000, 37, 99999, 60, 48397 /*[KNX\Beschattung\KZS Rolllade]*/), array("KU", $g_sm, 30000, 0, 55000, 20, 70000, 33, 90000, 44, 99999, 61, 53768 /*[KNX\Beschattung\Kueche Rolllade]*/), array("EZ", $g_wm, 35000, 0, 55000, 0, 70000, 25, 90000, 50, 99999, 65, 45646 /*[KNX\Beschattung\EZ Rolllade]*/), array("KZG", $g_wm, 15000, 0, 30000, 15, 45000, 33, 70000, 51, 99999, 74, 37416 /*[KNX\Beschattung\KZG Rolllade]*/) ); for($z=0; $z<6; $z++) { $pos = 0; if(check_hour($xx[$z][0], $hour) && check_day($xx[$z][0]) && check_month($xx[$z][0]) && check_blocking($xx[$z][0])) { $outputline = ""; if($xx[$z][1] >= 0 && $xx[$z][1] < $xx[$z][2]) { $pos = $xx[$z][3]; $outputline = sprintf("Rollladen %s auf %d%% (offen)", $xx[$z][0], $xx[$z][3]); } else if($xx[$z][1] >= $xx[$z][2] && $xx[$z][1] < $xx[$z][4]) { $pos = $xx[$z][5]; $outputline = sprintf("Rollladen %s auf %d%% (viertel)", $xx[$z][0], $xx[$z][5]); } else if($xx[$z][1] >= $xx[$z][4] && $xx[$z][1] < $xx[$z][6]) { $pos = $xx[$z][7]; $outputline = sprintf("Rollladen %s auf %d%% (halb)", $xx[$z][0], $xx[$z][7]); } else if($xx[$z][1] >= $xx[$z][6] && $xx[$z][1] < $xx[$z][8]) { $pos = $xx[$z][9]; $outputline = sprintf("Rollladen %s auf %d%% (dreiviertel)", $xx[$z][0], $xx[$z][9]); } else { $pos = $xx[$z][11]; $outputline = sprintf("Rollladen %s auf %d%% (voll)", $xx[$z][0], $xx[$z][11]); } $res = EIB_Position($xx[$z][12], $pos); if($res != True) $outputline = sprintf("FEHLER: %s", $outputline); SetValueString(56711 /*[KNX\_Globale Variablen\g_prot_text_1]*/, $outputline); protocol1(); IPS_Sleep(500); } } $endsec = microtime(true); $outputline = sprintf("### Gesamtdauer Beschattungsaktion: %d Sek.", $endsec-$startsec); SetValueString(56711 /*[KNX\_Globale Variablen\g_prot_text_1]*/, $outputline); protocol1(); } // #################################################################### function check_hour($room, $hour) {