Простые устройства / Simple Devices описание методов

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir »

Установи это свойство Toilet.IdleDelay 30
и это Toilet.SomebodyHere 0

и запусти метод в своей же комнате - updateActivityStatus
Спасибо нам ПОМОЖЕТ..!
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 »

если размер переменной имадж больше 100 то сохраняй.. иначе нет
и после этого - if (file_exists($path)) {cm('Motion05.motionDetected');}
удаляй сам файл -
А как проверить размер переменной=классу?

Удалять не вариант, я его потом на сцене показываю.

Вроде вот так корректно работает

Код: Выделить всё

//удаляем файле, есои его длинна=0
if(file_exists($path)) {
 $size=filesize($path);
 echo $path.':'.$size.'<br>';
if (filesize($path)<10) unlink($path) ;
    }
Причем в сценарии еще учитывается, что телик может быть подключен по wifi или по ETH )
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 »

Сейчас пишет

Код: Выделить всё

 Кто-то есть. Активность:
таймер продлился

И такое ощущение, что настройка Изменение означает активность в помещении игнорируется при обработке режима nobodyhome, так как я сценарием дергал аналогичный датчик движения простых устройств.

Точно, сейчас провел эксперимент - полное игнорирование настроек *.ignoreNobodysHome

метод motionDetected на месте

Код: Выделить всё

/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
/* end injection of {SDevices} */
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 »

Код: Выделить всё

echo "=1";
print_r( getObjectsByProperty('ignoreNobodysHome','=','1'));
echo "<br>";
echo "=0";
print_r( getObjectsByProperty('ignoreNobodysHome','=','0'));

Код: Выделить всё

=1Array ( [0] => Motion01 [1] => Motion09 [2] => Motion06 [3] => Motion04 [4] => Motion07 [5] => Motion05 [6] => Motion03 [7] => Motion02 [8] => Motion08 ) 
=0Array ( ) 
тогда вообще не понимаю причину игнорирования флага

Нашел, что некоторые устройства Relay не имеют свойства isActivity вообще (т.е. оно наследованное из класса есть, но значение не присвоено), соответсвественно не находятся при поиске

Код: Выделить всё

if ($linked_room && $this->getProperty('isActivity')) {
    if (getGlobal('NobodyHomeMode.active')) {
        callMethodSafe('NobodyHomeMode.deactivate');
    }

Еще накопал отсутсвие галочки "вызыывать родительский метод" у метода NobodyHomeMode.(de)activate


наблюдаем дальше
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir »

Измени еще вот это - ThisComputer.somebodyHome на 0
Спасибо нам ПОМОЖЕТ..!
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 »

tarasfrompir1 писал(а): Чт май 17, 2018 3:12 pm Измени еще вот это - ThisComputer.somebodyHome на 0
А это что вообще откуда?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir »

Ну читай там же понятно написано
Спасибо нам ПОМОЖЕТ..!
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Простые устройства / Simple Devices описание методов

Сообщение directman66 »

Логика заработала (пока кроме самого автоматического включения), но ThisComputer.somebodyHomeText содержит Кто-то есть. Активность:

Кто его вообще заполняет?

Rooms_updateActivityStatus.php

Похоже это к OperateMode вообще никакого отношения не имеет.
SPOILERSPOILER_SHOW

Код: Выделить всё

if (getGlobal('NobodyHomeMode.active')) {
    $somebodyHomeText = LANG_DEVICES_ROOMS_NOBODYHOME." ".LANG_DEVICES_ROOMS_ACTIVITY." " . date('H:i', $rooms[0]['time']) . " (" . $rooms[0]['room'] . ")";
} else {
    $res_rooms = array();
    for ($i = 0; $i < $total; $i++) {
        if ($rooms[$i]['active']) {
            $res_rooms[] = $rooms[$i]['room'];
        }
    }
    $somebodyHomeText = LANG_DEVICES_ROOMS_SOMEBODYHOME." ". LANG_DEVICES_ROOMS_ACTIVITY . " " . implode(", ", $res_rooms);
}

echo $somebodyHomeText;

setGlobal('somebodyHomeText', $somebodyHomeText);
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir »

Нашел!!!
в обьектах найди - OperationalModes
там внутри него NobodyHomeMode
а уж у него есть такое свойство NobodyHomeMode.active (H) установи 1 и заработает
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

Re: Простые устройства / Simple Devices описание методов

Сообщение tarasfrompir »

directman66 писал(а): Чт май 17, 2018 3:27 pm Логика заработала (пока кроме самого автоматического включения), но ThisComputer.somebodyHomeText содержит Кто-то есть. Активность:

Кто его вообще заполняет?

Rooms_updateActivityStatus.php

Похоже это к OperateMode вообще никакого отношения не имеет.
SPOILERSPOILER_SHOW

Код: Выделить всё

if (getGlobal('NobodyHomeMode.active')) {
    $somebodyHomeText = LANG_DEVICES_ROOMS_NOBODYHOME." ".LANG_DEVICES_ROOMS_ACTIVITY." " . date('H:i', $rooms[0]['time']) . " (" . $rooms[0]['room'] . ")";
} else {
    $res_rooms = array();
    for ($i = 0; $i < $total; $i++) {
        if ($rooms[$i]['active']) {
            $res_rooms[] = $rooms[$i]['room'];
        }
    }
    $somebodyHomeText = LANG_DEVICES_ROOMS_SOMEBODYHOME." ". LANG_DEVICES_ROOMS_ACTIVITY . " " . implode(", ", $res_rooms);
}

echo $somebodyHomeText;

setGlobal('somebodyHomeText', $somebodyHomeText);
ну как же а вот это - if (getGlobal('NobodyHomeMode.active'))
Спасибо нам ПОМОЖЕТ..!
Ответить