Как выключить свет?
Модератор: immortal
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
Re: Как выключить свет?
Таймер который ставится на включение, если движение в течении действия таймер - чистим его и перезаводим.
Re: Как выключить свет?
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (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"";
}
Re: Как выключить свет?
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (OBJECT.pervoe_srabatyvanie).
А дальше прописываем логику:
Супер! именно так и представлял себе.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
Re: Как выключить свет?
Совсем не рациональная трата ресурсов =)
Re: Как выключить свет?
А в чем нерациональная трата ресурсов? В обращениях к БД? MDM и так много раз в секунду обращается к базе... Несколько лишних обращений картины не изменят.
Re: Как выключить свет?
Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте светlihodeev писал(а): Сб фев 08, 2020 1:02 pm в активах - коридор, датчик движения, реле включения света. Есть логика - проходим коридор включается свет, спустя 3 минуты после последней активности свет выключается. Эта часть работает. Хотелка - включить свет не по первому срабатыванию датчика движения (коридор ведет в другую комнату и к входной двери и датчик срабатывает в любом случае) , а спустя какое то время (если задержался в коридоре). У кого какие мысли?
win10 connect https://connect.smartliving.ru/profile/303
Re: Как выключить свет?
Хм.. идея так и остается - супер, делаю скрипт с Вашим кодом, запускаю ииии... не включился свет(но свойство объекта поменялось на 1) в течении 15 сек запускаю еще раз, включился.. как бы все ок, НО когда прописываю код в мотиондетектед датчика - при первом же срабатывании датчика включается свет. Не может ли датчик два раза менять свое состояние к ряду? В качестве бреда - может дребезг контактов??Chainik писал(а): Сб фев 08, 2020 3:07 pm
Я бы попробовал решить так. Заводим отдельное свойство, которое будет фиксировать первое срабатывание (OBJECT.pervoe_srabatyvanie).
А дальше прописываем логику:
ЗЫ датчик движения HC-SR501
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Re: Как выключить свет?
так свет надо включить если датчик сработал больше одного раза за период (пусть 15 секунд). Потому что я могу просто пройти в комнату мимо ДД и не задержаться в коридоре(не выхожу из дома), а вот если я нахожусь под ним(начал обуваться) только в этом случае мне нужен свет (надо только второе срабатывание и больше подряд )xor писал(а): Сб фев 08, 2020 5:42 pm Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте свет
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Re: Как выключить свет?
ну при первом же срабатывании запускайте таймер 15 с, а при сработке дд проверяйте его наличие. если такой таймер есть, значит, уже не первое срабатывание и можно вкл свет. как движа не будет более 15 с, можно выключать и система снова будет ждать второго срабатывания ддlihodeev писал(а): Сб фев 08, 2020 6:15 pmтак свет надо включить если датчик сработал больше одного раза за период (пусть 15 секунд). Потому что я могу просто пройти в комнату мимо ДД и не задержаться в коридоре(не выхожу из дома), а вот если я нахожусь под ним(начал обуваться) только в этом случае мне нужен свет (надо только второе срабатывание и больше подряд )xor писал(а): Сб фев 08, 2020 5:42 pm Вы же всё написали уже. При первой сработке дд запускайте таймер. Как он сработает, проверяйте снова дд Если он активен, включайте свет
win10 connect https://connect.smartliving.ru/profile/303
Re: Как выключить свет?
прикольно - из истории статусаlihodeev писал(а): Сб фев 08, 2020 5:54 pm
Хм.. идея так и остается - супер, делаю скрипт с Вашим кодом, запускаю ииии... не включился свет(но свойство объекта поменялось на 1) в течении 15 сек запускаю еще раз, включился.. как бы все ок, НО когда прописываю код в мотиондетектед датчика - при первом же срабатывании датчика включается свет. Не может ли датчик два раза менять свое состояние к ряду? В качестве бреда - может дребезг контактов??
ЗЫ датчик движения HC-SR501
2020-02-08 17:34:39 0 /objects/?job=8348922
2020-02-08 17:34:32 1 /objects/?object=pirPRH&op=m&m=update&v=0
2020-02-08 17:34:31 0 /objects/?job=8348910
2020-02-08 17:34:29 1 /objects/?object=pirPRH&op=m&m=update&v=1
откуда может браться?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL