Logrus

<<< Назад

Класс SOpenClose метод logicAction (по-русски "Входная дверь")

Начало было банальным
Если от датчика приходит инвертированно, то по ссылке выше, далее есть под Сяоми (аналогично ! поменять и тут)

$ot = $this->object_title;
$status = $this->getProperty('status');
$updatedTime = $this->getProperty('updated');
$passed = time() - $updatedTime;
$newTimeout = 0;

if (!$status)
{
 say('Входная дверь закрыта', 2);
 //сбросить таймер
 ClearTimeOut($ot . '_passed');
 //в режим
 setTimeOut($ot . '_presence', "cm('Rooms.Check');", 600);
 //проверяем когда в последний раз срабатывало событие "Входная дверь"
 $last_register = registeredEventTime('entranceClosed');
 //регистрируем событие "Входная дверь"
 registerEvent('entranceClosed', $this->description, 7);
 if ($last_register == '-1' || (time() - $last_register) > 7200)
 {
  if (round(getHistoryValue('NobodyHomeMode.active', time() - 600, true)) == 1)
  {
   runScriptSafe('Greeting');
  }
 }
}
elseif ($passed < 60 && $status)
{
 $newTimeout = 60;
 say('Входная дверь открыта', 2);
 //добавить камеру
} 
elseif ($passed < 90 && $status)
{
 $newTimeout = 120;
 say('Входная дверь открыта одну минуту', 2);
}
elseif ($passed < 240 && $status)
{
 $newTimeout = 120;
 say('Входная дверь открыта три минуты', 2);
}
elseif ($passed < 1800 && $status)
{
 $newTimeout = 300;
 say('Входная дверь открыта ' . round($passed/60) . ' минут', 2);
}
else
{
 //если больше аларм (ну смс, астериск отправить)
 say('Аларм!', 2);
}

if ($newTimeout > 0)
{
 setTimeOut($ot . '_passed', 'cm("' . $ot . '.logicAction");', $newTimeout);
}

Обсуждение (0) (8)

Смотрите так же:
21.10.2018 Настройки громкости
07.10.2018 Примеры кода
29.09.2018 checkState
25.09.2018 pChart
24.09.2018 Уход за базой данных
05.08.2018 Управление подсветкой на шлюзе Сяоми
21.06.2018 Каталог ссылок
10.06.2018 Меню
08.07.2018 mail()
04.05.2018 Режим "EnergyTariffMode"
22.04.2018 Программы
19.04.2018 Пользовательские функции
11.04.2018 Шаблон отображения в классе "ExchangeRates"
05.04.2018 Шаблон отображения в классе "Users"
02.12.2018 Режим "Никого нет дома"
25.02.2018 Бэкап и обслуживание системы

Нижний Тагил, Россия

На форуме: Logrus