#var[0] Если 1, значит необходимо выключить все #var[1] Если 1, значит необходимо отработать макрос "Я пришел" #var[2] Если 1, значит включен режим ПАНИКА #var[3] Если 1, значит имитируем присутствие #var[5] Служебная для имитации присутствия #var[6] Служебная для имитации присутствия #var[7] Служебная для имитации присутствия #var[8] Служебная для имитации присутствия #var[9] Служебная для режима паника #Состояния выходных реле var[10]=Get_Points_State(1,8); var[11]=Get_Points_State(1,9); var[12]=Get_Points_State(1,10); # Гостиная 1 var[13]=Get_Points_State(1,11); # Гостиная 2 var[14]=Get_Points_State(1,12); # Спальня var[15]=Get_Points_State(1,13); # Детская var[16]=Get_Points_State(1,14); # Ванная var[17]=Get_Points_State(1,15); # Прихожая #var[19] Служебная для режима паника # Состояние выключателей var[20]=Get_Points_State(1,0); # Выключить все var[21]=Get_Points_State(1,1); # Я пришел var[22]=Get_Points_State(1,2); # Гостиная 1 var[23]=Get_Points_State(1,3); # Гостиная 2 var[24]=Get_Points_State(1,4); # Спальня var[25]=Get_Points_State(1,5); # Детская var[26]=Get_Points_State(1,6); # Ванная var[27]=Get_Points_State(1,7); # Прихожая if (var[20] $==1) # Если нажали кнопку "Выключить все" { var[0]=1; # Включаем признак того, что необходимо отработать алгоритм "Выключить все" }; if (var[0]==1) # Отрабатываем алгоритм "Выключить все" { var[254]=Set_Relays_State(1,2,0); # Отправляем команду модулю SECU16 выключить все var[0]=0; }; # !!! Следует отметить тот факт, что для запуска макроса "Выключить все" достаточно изменить всего одну переменную. if (var[21] $==1) # Если нажали кнопку "Я пришел" { var[1]=1; # Включаем признак того, что необходимо отработать алгоритм "Я пришел" }; if (var[1]==1) # Отрабатываем алгоритм "Я пришел" { var[254]=Set_Relays_State(1,2,156); # Отправляем команду модулю SECU16 выключить 2,3,4,7 группы освещения var[1]=0; }; # Начало блока отработки алгоритма выключателей if (var[22] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[12]; var[254]=Set_Relay_State(1,10,var[255]); }; if (var[23] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[13]; var[254]=Set_Relay_State(1,11,var[255]); }; if (var[24] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[14]; var[254]=Set_Relay_State(1,12,var[255]); }; if (var[25] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[15]; var[254]=Set_Relay_State(1,13,var[255]); }; if (var[26] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[16]; var[254]=Set_Relay_State(1,14,var[255]); }; if (var[27] $==1) # Отработка алгоритма кнопочного выключателя { var[255]=!var[17]; var[254]=Set_Relay_State(1,15,var[255]); }; if (var[3]==1) # Если включили флаг отработки алгоритма имитации присутствия { var[255]=var[5]==0; # Если таймер не запущен var[254]=var[5]>var[6]; # Если значение таймера = времени задержки if (var[254]||var[255]) # Если оба условия выполняются { var[7]=Random(5); # Выбираем реле над которым будет производится действие var[7]=var[7]+10; # Т.к. первые 2 реле не используются управляем точками с 10 по 15 var[8]=Get_Points_State(1,var[7]); # Получаем информацию о текущем состоянии авбранного реле var[8]=!var[8]; # Меняем значение на противоположное var[254]=Set_Relay_State(1,var[7],var[8]); # Передаем команду на изменение состояния выбранного реле var[6]=Random(5); # Определяем период бездействия var[6]=var[6]+2; var[255]=StartTimer(5,1); # Запускаем таймер }; } else # Если флаг имитации присутствия выключен { if (var[5]!=0) # Если таймер не остановлен { var[255]=StopTimer(5); # Останавливаем таймер }; }; if (var[2]==1) # Если флаг режима паники включен { if(var[9]==0) # Если таймер не запущен { var[255]=StartTimer(9,1); # Запускаем таймер }; var[19]=var[9]%2; # Определяем четность значения таймера if(var[19]==0) # Если значение четное { var[254]=Set_Relays_State(1,2,255); # Включаем весь свет } else { var[254]=Set_Relays_State(1,2,0); # Выключаем весь свет }; } else # Если флаг режима "Паника" опущен { if (var[9]!=0) # Если таймер идет { var[255]=StopTimer(9); # Останавливаем таймер }; };