Re: Как выключить свет?
Добавлено: Сб фев 08, 2020 1:19 pm
Таймер который ставится на включение, если движение в течении действия таймер - чистим его и перезаводим.
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (OBJECT.pervoe_srabatyvanie).lihodeev писал(а): Сб фев 08, 2020 1:02 pm в активах - коридор, датчик движения, реле включения света. Есть логика - проходим коридор включается свет, спустя 3 минуты после последней активности свет выключается. Эта часть работает. Хотелка - включить свет не по первому срабатыванию датчика движения (коридор ведет в другую комнату и к входной двери и датчик срабатывает в любом случае) , а спустя какое то время (если задержался в коридоре). У кого какие мысли?
Код: Выделить всё
//Проверяем, было ли уже первое срабатывание
if (gg('OBJECT.pervoe_srabatyvanie') == 1) {
//Уже было первое срабатывание и текущее срабатывание не первое
//тут ДЕЙСТВИЕ по управлению светом (код)
} else {
//Ранее срабатываний не было, тогда текущее срабатывание является первым (зафиксируем это)
sg('OBJECT.pervoe_srabatyvanie', 1);
//Устанавливаем время, через которое произойдет новый эпизод, когда очередное срабатывание надо считать первым (обнулим свойство, допустим, через 15 секунд)
SetTimeOut("MyTimer_999","sg('OBJECT.pervoe_srabatyvanie', 0);",15);
return"";
}
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (OBJECT.pervoe_srabatyvanie).
А в чем нерациональная трата ресурсов? В обращениях к БД? MDM и так много раз в секунду обращается к базе... Несколько лишних обращений картины не изменят.
Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте светlihodeev писал(а): Сб фев 08, 2020 1:02 pm в активах - коридор, датчик движения, реле включения света. Есть логика - проходим коридор включается свет, спустя 3 минуты после последней активности свет выключается. Эта часть работает. Хотелка - включить свет не по первому срабатыванию датчика движения (коридор ведет в другую комнату и к входной двери и датчик срабатывает в любом случае) , а спустя какое то время (если задержался в коридоре). У кого какие мысли?
Хм.. идея так и остается - супер, делаю скрипт с Вашим кодом, запускаю ииии... не включился свет(но свойство объекта поменялось на 1) в течении 15 сек запускаю еще раз, включился.. как бы все ок, НО когда прописываю код в мотиондетектед датчика - при первом же срабатывании датчика включается свет. Не может ли датчик два раза менять свое состояние к ряду? В качестве бреда - может дребезг контактов??Chainik писал(а): Сб фев 08, 2020 3:07 pm
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (OBJECT.pervoe_srabatyvanie).
А дальше прописываем логику:
так свет надо включить если датчик сработал больше одного раза за период (пусть 15 секунд). Потому что я могу просто пройти в комнату мимо ДД и не задержаться в коридоре(не выхожу из дома), а вот если я нахожусь под ним(начал обуваться) только в этом случае мне нужен свет (надо только второе срабатывание и больше подряд )xor писал(а): Сб фев 08, 2020 5:42 pm Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте свет
ну при первом же срабатывании запускайте таймер 15 с, а при сработке дд проверяйте его наличие. если такой таймер есть, значит, уже не первое срабатывание и можно вкл свет. как движа не будет более 15 с, можно выключать и система снова будет ждать второго срабатывания ддlihodeev писал(а): Сб фев 08, 2020 6:15 pmтак свет надо включить если датчик сработал больше одного раза за период (пусть 15 секунд). Потому что я могу просто пройти в комнату мимо ДД и не задержаться в коридоре(не выхожу из дома), а вот если я нахожусь под ним(начал обуваться) только в этом случае мне нужен свет (надо только второе срабатывание и больше подряд )xor писал(а): Сб фев 08, 2020 5:42 pm Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте свет
прикольно - из истории статусаlihodeev писал(а): Сб фев 08, 2020 5:54 pm
Хм.. идея так и остается - супер, делаю скрипт с Вашим кодом, запускаю ииии... не включился свет(но свойство объекта поменялось на 1) в течении 15 сек запускаю еще раз, включился.. как бы все ок, НО когда прописываю код в мотиондетектед датчика - при первом же срабатывании датчика включается свет. Не может ли датчик два раза менять свое состояние к ряду? В качестве бреда - может дребезг контактов??
ЗЫ датчик движения HC-SR501