Код: Выделить всё
$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");
}
}