Modules/devices/Rooms onActivity php

Материал из MajorDoMo инфо
Версия от 11:26, 6 апреля 2024; Elmax (обсуждение | вклад) (+ файл Rooms_onActivity.php)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

ᐂ В корневой раздел ᐃ В директорию расположения файла

<?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));
}