Modules/devices/darknessmode deactivate php

Материал из MajorDoMo инфо


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

<?php

//* darknessmode_deactivate *//
//* Этот код предназначен для деактивации устройств, связанных с группой "groupSunrise", если они активны и доступ к ним разрешен.
// Проверяет, отключены ли простые устройства. Если да, прекращает выполнение скрипта.
if (defined('DISABLE_SIMPLE_DEVICES') && DISABLE_SIMPLE_DEVICES == 1) return;

$objects = getObjectsByProperty('groupSunrise', '=', 1);
// Подсчитывает количество объектов в списке.
$total = count($objects);
for ($i = 0; $i < $total; $i++) {
    // Проверяет, активен ли объект.
    if (getGlobal($objects[$i] . '.status')) {
        // Получает объект по его идентификатору из списка объектов.

        // Проверяет, является ли полученный объект объектом, имеет ли он идентификатор устройства и разрешено ли доступ к свойству "prop_groupSunrise" для этого устройства.
        $obj = getObject($objects[$i]);
     // Если условие не выполняется, цикл переходит к следующей итерации.
        if (is_object($obj) && $obj->device_id && !checkAccess('prop_groupSunrise', $obj->device_id)) continue;

        // Вызывает метод "turnOff" для объекта, передавая в качестве параметра массив с ключом "source" и значением "DarknessMode".
        callMethodSafe($objects[$i] . '.turnOff', array('source' => 'DarknessMode'));
        // Приостанавливает выполнение скрипта на 50 миллисекунд.
        usleep(50000);
    }
}