[Сценарий] Датчик движения: гаснет свет при присутствии - мое решение

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ответить
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

[Сценарий] Датчик движения: гаснет свет при присутствии - мое решение

Сообщение xor » Вс дек 03, 2017 3:18 pm

Столкнулся с тем, что гаснет свет в комнате, даже при активном присутствии, по таймауту комнаты.
У меня датчики движения Ноолайт и самопальные выдают 1 при движении, потом ждут неск. минут и, если в период ожидания движение снова было, перезапускают внутренний таймер. Сбрасываются в 0 лишь при отсутствии нового движения во время внутреннего таймаута.
Комната видит только первую единицу от датчика и от нее считает время активности и по таймеру гасит свет даже при движении.

Поборолся так:
создал скрипт md_refresh

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

$md=$params['MD'];
//debmes('rs md_refresh '.$md);
if(gg($md.'.value')==0){
 return;
}
$linked_room=gg($md.'.linkedroom');
if($linked_room){
sg($linked_room.'.SomebodyHere',1);
setTimeOut($md.'_refresh',"runScriptSafe('md_refresh',array('MD'=>'".$md."'));",60); 
}
,
который запускается с параметром MD=сработавший датчик движения.
Скрипт будет каждую минуту передергивать свойство привязанной комнаты SomebodyHere пока этот датчик активен.

Запуск скрипта в методе ValueUpdated (запуск при изменении состояния датчика) объекта Сенсоров

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

 $ot=$this->object_title;
 $vl=$this->getProperty('value'); // то, что меняется у датчика при изменении состояния value/status
 $linked_room=$this->getProperty('linkedRoom'); 

 if ($this->class_title=='motion_sensors') { // мой класс датчиков движения

   sg($linked_room.'.SomebodyHere',$vl);
   if($vl){    //если активно
    registerEvent('inhouseMovement', $details=gg($linked_room.'.title'),$expire_in=1); //это моя внутренняя заморочка где было последнее движение и когда
    runScriptSafe('md_refresh',array('MD'=>$ot));
   }
]}
За это сообщение автора xor поблагодарили (всего 4):
VooDooN (Вс дек 03, 2017 5:14 pm) • rik1305 (Пн дек 04, 2017 10:23 am) • Amarok (Пн апр 09, 2018 8:26 am) • AkaSoni (Пн май 13, 2019 6:03 pm)
Рейтинг: 4.65%
Ответить