[Сценарий] доклад.action

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ответить
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

[Сценарий] доклад.action

Сообщение PAV » Чт июл 03, 2014 10:30 am

Код: Выделить всё



$objects=SQLSelect("SELECT TITLE FROM objects"); // опрашивает все объекты со свойством AlertSay. Если свойство рано единице, то проговаривает свойство AkertToSay
 $total=count($objects);
 for($i=0;$i<$total;$i++) {
  if (gg($objects[$i]['TITLE'].'.AlertSay')) {
    say(gg($objects[$i]['TITLE'].'.AlertToSay'),1);
    sg($objects[$i]['TITLE'].'.AlertSay',0);
      } 
 } 

 
// Доложить о состоянии
$details=array();

if (getGlobal("System.stateColor") != "green") {
$details[]="Обнаружена ошибка работы системы";
$details[]=getGlobal("System.stateDetails");
};
if (getGlobal("Communication.stateColor") != "green") {
$details[]="Обнаружена ошибка работы коммуникаций";
$details[]=getGlobal("Communication.stateDetails");
};
if (getGlobal("Security.stateColor") != "green") {
$details[]="Обнаружена ошибка безопасности";
$details[]=getGlobal("Security.stateDetails");
};
if (!$details) {
$details[]="Все системы функционируют без ошибок";
};

 say (implode(". ",$details),1);
$this->setProperty("done",1);


вызывается либо самостоятельно либо по приходу домой:

Код: Выделить всё

$last_register=registeredEventTime('inhouseMovement'); // проверяем когда в последний раз срабатывало событие "движение внутри дома"
 if (!$last_register || ((time()-$last_register)>2*60*60))  { // срабатывало более 2х часов назад (либо никогда не срабатывало ранее)
  say("Ура! Наконец кто-то появился дома!");
  callmethod("NobodyHomeMode.deactivate");
  
  if (gg("Andrey.status") > 0 && time() - gg("Andrey.updated") < 25*60){
  say("Здравствуйте Андрей",1);
  callMethod("доклад.action");
  }
    

 
 if ((gg("Andrey.status") > 0) && (time() - gg("Andrey.updated") < 25*60) && (gg("доклад.done") == 0)) {
  say("Здравствуйте Андрей",1);
  callMethod("доклад.action");
  }
}
 
Ответить