Включение света по датчику движения
Модератор: immortal
-
- Сообщения: 109
- Зарегистрирован: Сб июл 11, 2015 2:54 am
- Откуда: Московская обл,город Ногинск
- Благодарил (а): 27 раз
- Поблагодарили: 6 раз
Re: Включение света по датчику движения
Уважаемый xor,я про непосредственно 30 секунд этого таймаута самого датчика,именно motiondetected,рнр-строки:это 30 секунд,в течение которых он видит движение или ЧЕРЕЗ 30 секунд только увидит меня.Вот что я не пойму никак.xor писал(а):http://majordomo.smartliving.ru/Main/Pr ... gFunctions
см.Запланированные задачи и события
SetTimeOut("title","commands", $timeout); -- $timeout в секундах
значит, что через $timeout секунд выполнятся команды "commands"
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Включение света по датчику движения
Глядя на
можно сказать, что этот таймаут через 30 с установит свойство motionDetected вашего объекта в 0 и всё.
т.е., если датчик установил это свойство в 1 (есть обнаружение движения), через 30 с, если не будет нового срабатывания, свойство сбросится в 0.
30с - это время, данное объекту для принятия решения - есть движение в поле зрения датчика или нет.
Как-то так.
Код: Выделить всё
clearTimeOut($this->object_title.'_detected');
setTimeOut($this->object_title.'_detected',"setGlobal('".$this->object_title.".motionDetected',0);",30);
т.е., если датчик установил это свойство в 1 (есть обнаружение движения), через 30 с, если не будет нового срабатывания, свойство сбросится в 0.
30с - это время, данное объекту для принятия решения - есть движение в поле зрения датчика или нет.
Как-то так.
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 138
- Зарегистрирован: Ср ноя 22, 2017 11:46 am
- Благодарил (а): 35 раз
- Поблагодарили: 7 раз
Re: Включение света по датчику движения
В прихожей установлен датчик открытия двери , датчик движения и реле на свет.
Задача включить свет в прихожей когда входят в дверь из подъезда, при срабатывании датчика дверей (XiOpenclose01.status') и после этого в течении 3 сек срабатывает датчик движения ('XiMotion04.status'), то включается свет ('Relay05.status'), переделал под себя вот такой код и поместил его в метод датчика открытия двери XiOpenclose01 добавив его сюда SOpenClose-> statusUpdated *
Где то ошибка, свет не включается, подскажите что поправить.
Задача включить свет в прихожей когда входят в дверь из подъезда, при срабатывании датчика дверей (XiOpenclose01.status') и после этого в течении 3 сек срабатывает датчик движения ('XiMotion04.status'), то включается свет ('Relay05.status'), переделал под себя вот такой код и поместил его в метод датчика открытия двери XiOpenclose01 добавив его сюда SOpenClose-> statusUpdated *
Код: Выделить всё
if (gg('XiOpenclose01.status')==0) {
for ($i=1;$i>=3;$i++) {
if (gg('XiMotion04.status')==1) {
sg('Relay05.status',1);
break;
}
sleep(1);
}
}
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Включение света по датчику движения
https://connect.smartliving.ru/profile/ ... og163.html
помнится про циклы и подвигнуло написать, где вы такие примеры берете?
код в дд, комнату? проверка по времени двери (можно разными вариантами)
в statusUpdated свой код помещать вдумчиво обращать внимание на порядок вызова классового кода, в примере пересмотреть уставки, можно сократить запросы к бд используя параметр и т.д.
помнится про циклы и подвигнуло написать, где вы такие примеры берете?
код в дд, комнату? проверка по времени двери (можно разными вариантами)
в statusUpdated свой код помещать вдумчиво обращать внимание на порядок вызова классового кода, в примере пересмотреть уставки, можно сократить запросы к бд используя параметр и т.д.
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Включение света по датчику движения
Лучше так не делать, так как датчик движения проверяется только на 0,1 и 2 секунде. Сработает ли в этот момент ДД - не известно. Продержится ли уровень 1 до проверки - тоже не известно. Проще всего ввести какой-нибудь параметр, например в датчике двери, устанавливать его при открытии двери и далее запускать таймер на 3 секунды, который сбросит этот параметр. В ДД при срабатывании проверять этот параметр, и если он установлен - включать светskyrider писал(а): ↑Вт дек 04, 2018 7:57 pmВ прихожей установлен датчик открытия двери , датчик движения и реле на свет.
Задача включить свет в прихожей когда входят в дверь из подъезда, при срабатывании датчика дверей (XiOpenclose01.status') и после этого в течении 3 сек срабатывает датчик движения ('XiMotion04.status'), то включается свет ('Relay05.status'), переделал под себя вот такой код и поместил его в метод датчика открытия двери XiOpenclose01 добавив его сюда SOpenClose-> statusUpdated *Где то ошибка, свет не включается, подскажите что поправить.Код: Выделить всё
if (gg('XiOpenclose01.status')==0) { for ($i=1;$i>=3;$i++) { if (gg('XiMotion04.status')==1) { sg('Relay05.status',1); break; } sleep(1); } }
Ещё проблема может быть что ДД реагирует на движение двери и сработает раньше чем датчик двери - в таком случае логику надо будет пересматривать в другую сторону
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Включение света по датчику движения
гетглобал кешируется
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 138
- Зарегистрирован: Ср ноя 22, 2017 11:46 am
- Благодарил (а): 35 раз
- Поблагодарили: 7 раз
Re: Включение света по датчику движения
Дверь открывается наружу, так что проблемы с реакцией датчика движения на дверь не будет. Нужно попробовать как вы советуете, ввести какой-нибудь параметр в датчике двери. Подскажите пример или код для установки параметра при открытии, запуска таймера на 3 секунды иfandaymon писал(а): ↑Вт дек 04, 2018 9:07 pm
Лучше так не делать, так как датчик движения проверяется только на 0,1 и 2 секунде. Сработает ли в этот момент ДД - не известно. Продержится ли уровень 1 до проверки - тоже не известно. Проще всего ввести какой-нибудь параметр, например в датчике двери, устанавливать его при открытии двери и далее запускать таймер на 3 секунды, который сбросит этот параметр. В ДД при срабатывании проверять этот параметр, и если он установлен - включать свет
Ещё проблема может быть что ДД реагирует на движение двери и сработает раньше чем датчик двери - в таком случае логику надо будет пересматривать в другую сторону
сброса этого параметра.
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Включение света по датчику движения
Добавляем в объект XiOpenclose01 свойство LightOnskyrider писал(а): ↑Ср дек 05, 2018 1:16 pmДверь открывается наружу, так что проблемы с реакцией датчика движения на дверь не будет. Нужно попробовать как вы советуете, ввести какой-нибудь параметр в датчике двери. Подскажите пример или код для установки параметра при открытии, запуска таймера на 3 секунды иfandaymon писал(а): ↑Вт дек 04, 2018 9:07 pm
Лучше так не делать, так как датчик движения проверяется только на 0,1 и 2 секунде. Сработает ли в этот момент ДД - не известно. Продержится ли уровень 1 до проверки - тоже не известно. Проще всего ввести какой-нибудь параметр, например в датчике двери, устанавливать его при открытии двери и далее запускать таймер на 3 секунды, который сбросит этот параметр. В ДД при срабатывании проверять этот параметр, и если он установлен - включать свет
Ещё проблема может быть что ДД реагирует на движение двери и сработает раньше чем датчик двери - в таком случае логику надо будет пересматривать в другую сторону
сброса этого параметра.
На изменение статуса вешаем код
Код: Выделить всё
if (gg('XiOpenclose01.status')==0) {
sg('XiOpenclose01.LightOn',1);
SetTimeOut('DoorLightOn',"sg('XiOpenclose01.LightOn',0);",3);
}
Код: Выделить всё
if (gg("XiOpenclose01.LightOn')==1) {
sg('Relay05.status',1);
}
- Рейтинг: 1.16%