Страница 5 из 11
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 10:03 am
tarasfrompir
Установи это свойство Toilet.IdleDelay 30
и это Toilet.SomebodyHere 0
и запусти метод в своей же комнате - updateActivityStatus
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 10:12 am
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 )
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 11:16 am
directman66
Сейчас пишет
таймер продлился
И такое ощущение, что настройка Изменение означает активность в помещении игнорируется при обработке режима nobodyhome, так как я сценарием дергал аналогичный датчик движения простых устройств.
Точно, сейчас провел эксперимент - полное игнорирование настроек *.ignoreNobodysHome
метод motionDetected на месте
Код: Выделить всё
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
/* end injection of {SDevices} */
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 11:41 am
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
наблюдаем дальше
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:12 pm
tarasfrompir
Измени еще вот это - ThisComputer.somebodyHome на 0
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:15 pm
directman66
tarasfrompir1 писал(а): ↑Чт май 17, 2018 3:12 pm
Измени еще вот это - ThisComputer.somebodyHome на 0
А это что вообще откуда?
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:23 pm
tarasfrompir
Ну читай там же понятно написано
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:27 pm
directman66
Логика заработала (пока кроме самого автоматического включения), но ThisComputer.somebodyHomeText содержит Кто-то есть. Активность:
Кто его вообще заполняет?
Rooms_updateActivityStatus.php
Похоже это к OperateMode вообще никакого отношения не имеет.
Код: Выделить всё
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);
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:33 pm
tarasfrompir
Нашел!!!
в обьектах найди - OperationalModes
там внутри него NobodyHomeMode
а уж у него есть такое свойство NobodyHomeMode.active (H) установи 1 и заработает
Re: Простые устройства / Simple Devices описание методов
Добавлено: Чт май 17, 2018 3:33 pm
tarasfrompir
directman66 писал(а): ↑Чт май 17, 2018 3:27 pm
Логика заработала (пока кроме самого автоматического включения), но ThisComputer.somebodyHomeText содержит Кто-то есть. Активность:
Кто его вообще заполняет?
Rooms_updateActivityStatus.php
Похоже это к OperateMode вообще никакого отношения не имеет.
Код: Выделить всё
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'))