Modules/devices/Rooms onActivity php: различия между версиями
Материал из MajorDoMo инфо
Elmax (обсуждение | вклад) (Заготовка) |
Elmax (обсуждение | вклад) (+ файл Rooms_onActivity.php) |
||
Строка 3: | Строка 3: | ||
<pre> | <pre> | ||
<?php | |||
// Если отключена функциональность простых устройств тогда прекращаем выполнение. | |||
if (defined('DISABLE_SIMPLE_DEVICES') && DISABLE_SIMPLE_DEVICES==1) return; | |||
// Получаем название объекта. | |||
$ot = $this->object_title; | |||
// Устанавливаем свойство LatestActivity в текущее время. | |||
$this->setProperty('LatestActivity', time()); | |||
// Устанавливаем свойство LatestActivityTime в текущее время в формате часов и минут. | |||
$this->setProperty('LatestActivityTime', date('H:i')); | |||
// Проверяем, кто в комнате. Если никого нет, устанавливаем свойство SomebodyHere в 1 и вызываем метод updateActivityStatus. | |||
if (!$this->getProperty('SomebodyHere')) { | |||
$this->setProperty('SomebodyHere', 1); | |||
$this->callMethodSafe('updateActivityStatus'); | |||
} | |||
// Проверяем, установлено ли свойство IdleDelay. Если да, используем его значение, иначе используем значение по умолчанию 10 минут. | |||
if ($this->getProperty('IdleDelay')) { | |||
$activity_timeout = (int)$this->getProperty('IdleDelay'); | |||
} else { | |||
$activity_timeout = 10*60; | |||
} | |||
// Устанавливаем таймер на имя объекта с суффиксом _activity_timeout, который вызовет метод onIdle через установленное время. | |||
setTimeOut($ot . '_activity_timeout', "callMethod('" . $ot . ".onIdle');", $activity_timeout); | |||
// Проверяем, активен ли режим "Никого дома". Если да, деактивируем его, передавая параметры сенсора и комнаты. | |||
if (getGlobal('NobodyHomeMode.active')) { | |||
callMethod('NobodyHomeMode.deactivate', array('sensor' => $params['sensor'], 'room' => $ot)); | |||
} | |||
</pre> | </pre> |
Текущая версия от 11:26, 6 апреля 2024
ᐂ В корневой раздел ᐃ В директорию расположения файла
<?php // Если отключена функциональность простых устройств тогда прекращаем выполнение. if (defined('DISABLE_SIMPLE_DEVICES') && DISABLE_SIMPLE_DEVICES==1) return; // Получаем название объекта. $ot = $this->object_title; // Устанавливаем свойство LatestActivity в текущее время. $this->setProperty('LatestActivity', time()); // Устанавливаем свойство LatestActivityTime в текущее время в формате часов и минут. $this->setProperty('LatestActivityTime', date('H:i')); // Проверяем, кто в комнате. Если никого нет, устанавливаем свойство SomebodyHere в 1 и вызываем метод updateActivityStatus. if (!$this->getProperty('SomebodyHere')) { $this->setProperty('SomebodyHere', 1); $this->callMethodSafe('updateActivityStatus'); } // Проверяем, установлено ли свойство IdleDelay. Если да, используем его значение, иначе используем значение по умолчанию 10 минут. if ($this->getProperty('IdleDelay')) { $activity_timeout = (int)$this->getProperty('IdleDelay'); } else { $activity_timeout = 10*60; } // Устанавливаем таймер на имя объекта с суффиксом _activity_timeout, который вызовет метод onIdle через установленное время. setTimeOut($ot . '_activity_timeout', "callMethod('" . $ot . ".onIdle');", $activity_timeout); // Проверяем, активен ли режим "Никого дома". Если да, деактивируем его, передавая параметры сенсора и комнаты. if (getGlobal('NobodyHomeMode.active')) { callMethod('NobodyHomeMode.deactivate', array('sensor' => $params['sensor'], 'room' => $ot)); }