Большая задержка между пополнениями скриптов

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

Модератор: immortal

Ответить
dragon rider
Сообщения: 39
Зарегистрирован: Чт мар 13, 2014 10:27 am
Благодарил (а): 0
Поблагодарили: 0

Большая задержка между пополнениями скриптов

Сообщение dragon rider » Вт июн 03, 2014 3:39 pm

Подскажите, прикручиваю PIR датчик на arudino, который вызывает функцию на МД которая в свою очередь изменяет свойство класса комнаты, но между срабатыванием функции изменения состояния PIR и изменением свойства класса комнаты проходит очень много времени, а теперь подробнее:
Сам датчик срабатывает отлично и своевременно вызывает нужную функцию на МД. Вот эта функция

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

$this->setProperty("TimeOfМovement",time());
$this->setProperty("Мovement",$params['action']);
$linked_room=$this->getProperty("Room");
say('pir '.$this->getProperty("Room"),2);
if ($linked_room) {
 setGlobal($linked_room.'.Мovement',$params['action']);
} 
на изменение параметра Мovement назначена функция:
Изображение
сам метод:

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

$name=$this->getProperty('Name');
say('OnMovement '.$name.' '.$this->getProperty('Movement') );
if ($this->getProperty('Movement')==1){
  //есть движение
  ClearTimeOut('TurnOffLightIn'.$name);
  if(getGlobal('WorkMode')=='normal'){
    //нормальный режим работы, если разрешено включаем подсветку
    if ($this->getProperty('LightOnMove')==1){
        //TODO отправляем запрос на 1wire выключатель LED
        say('Включаем подсветку в '.$name);
        $url='http://'.$this->getProperty('RelayLightLink').'=ON';
        getURL($url,0);
        
    }
  }
  if(getGlobal('WorkMode')=='castle'){
    //режим замка, если нужно уведомляем хозяев
    if ($this->getProperty('AlarmOnMove')==1){
        //TODO добавить уведомление http://192.168.2.10/cgi-bin/jpg/image.cgi
        say('Движение в '.$name,3);
    }
  }
  $this->setProperty('TimeOfMovement',time());
}else{
  //закончилось движение
  $d=$this->getProperty('LightOffDelay');
  if(getGlobal('WorkMode')=='normal' && $d>0){
    //запускаем таймер отключения света
    setTimeOut('TurnOffLightIn'.$name,'callMethod(\'TurnOffLight\')',$d*60);
  }
} 
В принципе все работает но между вызовом первой PIR функции, и вызовом второй OnMovement может пройти от 30 секунд до минуты.
Изображение
Что можно сделать?
P.S. Сервак мощный, загрузка меньше 3%
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Большая задержка между пополнениями скриптов

Сообщение sergejey » Вт июн 03, 2014 5:52 pm

А может в логе второй вызов показан? Т.е. первый происходит сразу (Movement=1), а второй через 40 секунд (Movement=0) по окончанию таймера датчика движения.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
dragon rider
Сообщения: 39
Зарегистрирован: Чт мар 13, 2014 10:27 am
Благодарил (а): 0
Поблагодарили: 0

Re: Большая задержка между пополнениями скриптов

Сообщение dragon rider » Вт июн 03, 2014 8:02 pm

к сожалению нет, это точно один вызов, на movment=0 такая же задержка
dragon rider
Сообщения: 39
Зарегистрирован: Чт мар 13, 2014 10:27 am
Благодарил (а): 0
Поблагодарили: 0

Re: Большая задержка между пополнениями скриптов

Сообщение dragon rider » Ср июн 04, 2014 7:18 am

Разобрался в чем дело, задержка происходит из за say, подскажите плз как еще можно логировать события для дебага?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Большая задержка между пополнениями скриптов

Сообщение sergejey » Ср июн 04, 2014 11:03 am

dragon rider писал(а):Разобрался в чем дело, задержка происходит из за say, подскажите плз как еще можно логировать события для дебага?
можно DebMes("текст"); и будет логироваться в папку /debmes/

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
dragon rider
Сообщения: 39
Зарегистрирован: Чт мар 13, 2014 10:27 am
Благодарил (а): 0
Поблагодарили: 0

Re: Большая задержка между пополнениями скриптов

Сообщение dragon rider » Ср июн 04, 2014 8:19 pm

спасибо помогло
Ответить