Вот тут 0 поставьте: Rooms>Hall>свойство: Hall.SomebodyHere --0. Еще возможно метод обновите Rooms-> updateActivityStatus.woow писал(а):да и я тут хочу спросить у знающих, пользуюсь готовым имиджем на малинке там на панеле управления "висит" сообщение "кто-то дома коридор". где это находится? Для начала хочу найти и убрать, а потом как будет какой датчик сделаем и правильные действие, теперь не надо. Так как его убрать
действия после срабатывания датчика движения
Модератор: immortal
-
- Сообщения: 103
- Зарегистрирован: Вс апр 23, 2017 7:09 pm
- Благодарил (а): 38 раз
- Поблагодарили: 1 раз
Re: действия после срабатывания датчика движения
Aopen de7000 на Ubuntu 16.04.4 LTS+Broadlink
-
- Сообщения: 41
- Зарегистрирован: Пн сен 11, 2017 11:12 pm
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: действия после срабатывания датчика движения
Подскажу свою реализацию датчика движения.
Все подключено к ESP8266. Данные отправляются по MQTT протоколу. Majordomo установлен на Raspberry PI 3 из img.
На ESP8266 установлен модуль "Работа с прерываниями" для немедленной отправки в MQTT брокер информации о состоянии датчика.
Создан объект Движение со стандартными свойствами SMotions. В частности интересуют 2, а именно status и updatedText. С ESP8266 идет информация о любом переключении датчика. 1- есть движение, 0- нет движения.
При изменении статус status начинает изменяться свойство updatedText.
1. только что
2. 10 сек. назад
3. 1 мин. назад
Т.е. в данном свойстве указано, сколько прошло время после последнего изменения датчика.
В методе SDevices-> setUpdatedText Прописан скрипт следующего содержания.
Скрипт срабатывает при обновлении свойства updatedText. Значение этого свойства записывается в массив time. time[1] - числовое значение, time[2]= "мин." или "сек."
Далее просто проверяю значение датчика и сколько минут прошло после последнего изменения.
Все подключено к ESP8266. Данные отправляются по MQTT протоколу. Majordomo установлен на Raspberry PI 3 из img.
На ESP8266 установлен модуль "Работа с прерываниями" для немедленной отправки в MQTT брокер информации о состоянии датчика.
Создан объект Движение со стандартными свойствами SMotions. В частности интересуют 2, а именно status и updatedText. С ESP8266 идет информация о любом переключении датчика. 1- есть движение, 0- нет движения.
При изменении статус status начинает изменяться свойство updatedText.
1. только что
2. 10 сек. назад
3. 1 мин. назад
Т.е. в данном свойстве указано, сколько прошло время после последнего изменения датчика.
В методе SDevices-> setUpdatedText Прописан скрипт следующего содержания.
Код: Выделить всё
$time= explode(" ", getGlobal('КухняДВ'.'.'.'updatedText'));
if ((getGlobal('КухняДВ'.'.'.'status') == 1) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && (timeBetween('07:00', '00:00')))
{
setGlobal('СветКухня'.'.'.'status', '1');
$colorDi=getGlobal('СветоДиодКухня'.'.'.'status');
$b=substr($colorDi,1,2);
$a=substr($colorDi,3,2);
$c=substr($colorDi,5,2);
for ($i=1; $i<=107; $i++)
{
$z.=$a.$b.$c;
}
setGlobal('СветоДиодКухня'.'.'.'color', $z);
}
if ((getGlobal('КухняДВ'.'.'.'status') == 1) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && (timeBetween('00:00', '07:00')))
{
$colorDi=getGlobal('СветоДиодКухня'.'.'.'status');
$b=substr($colorDi,1,2);
$a=substr($colorDi,3,2);
$c=substr($colorDi,5,2);
for ($i=1; $i<=107; $i++)
{
$z.=$a.$b.$c;
}
setGlobal('СветоДиодКухня'.'.'.'color', $z);
}
if ((getGlobal('КухняДВ'.'.'.'status') == 0) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && ($time[0]>3) && ($time[1]=='мин.'))
{
setGlobal('СветКухня'.'.'.'status', '0');
$a='00';
$b='00';
$c='00';
for ($i=1; $i<=107; $i++)
{
$z.=$a.$b.$c;
}
setGlobal('СветоДиодКухня'.'.'.'color', $z);
}
Далее просто проверяю значение датчика и сколько минут прошло после последнего изменения.
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 531 раз
- Контактная информация:
Re: действия после срабатывания датчика движения
А вы точно тот самый метод выложили? - тот который нужно?lupsik писал(а):Подскажу свою реализацию датчика движения.
Все подключено к ESP8266. Данные отправляются по MQTT протоколу. Majordomo установлен на Raspberry PI 3 из img.
На ESP8266 установлен модуль "Работа с прерываниями" для немедленной отправки в MQTT брокер информации о состоянии датчика.
Создан объект Движение со стандартными свойствами SMotions. В частности интересуют 2, а именно status и updatedText. С ESP8266 идет информация о любом переключении датчика. 1- есть движение, 0- нет движения.
При изменении статус status начинает изменяться свойство updatedText.
1. только что
2. 10 сек. назад
3. 1 мин. назад
Т.е. в данном свойстве указано, сколько прошло время после последнего изменения датчика.
В методе SDevices-> setUpdatedText Прописан скрипт следующего содержания.
Скрипт срабатывает при обновлении свойства updatedText. Значение этого свойства записывается в массив time. time[1] - числовое значение, time[2]= "мин." или "сек."СпойлерПоказатьКод: Выделить всё
$time= explode(" ", getGlobal('КухняДВ'.'.'.'updatedText')); if ((getGlobal('КухняДВ'.'.'.'status') == 1) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && (timeBetween('07:00', '00:00'))) { setGlobal('СветКухня'.'.'.'status', '1'); $colorDi=getGlobal('СветоДиодКухня'.'.'.'status'); $b=substr($colorDi,1,2); $a=substr($colorDi,3,2); $c=substr($colorDi,5,2); for ($i=1; $i<=107; $i++) { $z.=$a.$b.$c; } setGlobal('СветоДиодКухня'.'.'.'color', $z); } if ((getGlobal('КухняДВ'.'.'.'status') == 1) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && (timeBetween('00:00', '07:00'))) { $colorDi=getGlobal('СветоДиодКухня'.'.'.'status'); $b=substr($colorDi,1,2); $a=substr($colorDi,3,2); $c=substr($colorDi,5,2); for ($i=1; $i<=107; $i++) { $z.=$a.$b.$c; } setGlobal('СветоДиодКухня'.'.'.'color', $z); } if ((getGlobal('КухняДВ'.'.'.'status') == 0) && (getGlobal('КухняДВ'.'.'.'Auto') == 1) && ($time[0]>3) && ($time[1]=='мин.')) { setGlobal('СветКухня'.'.'.'status', '0'); $a='00'; $b='00'; $c='00'; for ($i=1; $i<=107; $i++) { $z.=$a.$b.$c; } setGlobal('СветоДиодКухня'.'.'.'color', $z); }
Далее просто проверяю значение датчика и сколько минут прошло после последнего изменения.
и какая цель в такой записи - setGlobal('СветоДиодКухня'.'.'.'color', $z); ?
можно же так: setGlobal('СветоДиодКухня.color', $z); ? или я что-то не понимаю?
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
-
- Сообщения: 41
- Зарегистрирован: Пн сен 11, 2017 11:12 pm
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: действия после срабатывания датчика движения
Да нет все верно.Vovix писал(а): А вы точно тот самый метод выложили? - тот который нужно?
Задает цвет светодиодной подсветкиVovix писал(а): и какая цель в такой записи - setGlobal('СветоДиодКухня'.'.'.'color', $z); ?
Конечно можно. )))Vovix писал(а): можно же так: setGlobal('СветоДиодКухня.color', $z); ? или я что-то не понимаю?
-
- Сообщения: 15
- Зарегистрирован: Вт авг 23, 2016 1:25 am
- Благодарил (а): 5 раз
- Поблагодарили: 0
Re: действия после срабатывания датчика движения
Решалась ли как данная проблема? Вот такая же сборка ОДИН-В-ОДИН через ПРОСТЫЕ устройства:neromih писал(а):У меня реализация не через простые устройства, а просто как сказать объектами.
Настраивал у себя:
.........
2. Проблемы:
1. Если в свойства без разницы какое SMotions-> motionDetected или SDevices-> statusUpdated
добавить код что бы при 0 MD произносил "обнаружено движение" то соответственно это будет сделано несколько раз.
2. Если добавить код для включения и выключения освещения, то соответственно он будет вкл и выкл освещение 5 раз
Код: Выделить всё
sg("Switch0.status","1"); sg('Switch0.statusText','Включено'); clearTimeOut("Switch0"); SetTimeOut("Switch0",'sg("Switch0.status","0"); sg("Switch0.statusText","Выключено");',[b]10[/b]);
вписал данный код в метод statusUpdated
10 время через которое отключится реле.
Может быть пригодится кому нибудь, работает.
Смысл в том если SecuritySwitch.status значение 0 - режим не охраны а наблюдения, соответственно включает реле, если наоборот то говорит проникновение.
В принципе эта настройка будет справедлива почти ко всем датчикам движенияКод: Выделить всё
if (gg('SecuritySwitch.status') == "0") { sg("Switch0.status","1"); sg('Switch0.statusText','Включено'); SetTimeOut("Switch0",'sg("Switch0.status","0"); sg("Switch0.statusText","Выключено");',10); } else { say("Проникновение",5); }
+ Статус датчика всегда горит красным...пока копаю...вопросов на форуме довольно много...а вот конкретного решения не нашел.
ЗЫ Брокер не предлагать))))
-
- Сообщения: 154
- Зарегистрирован: Чт апр 20, 2017 5:32 am
- Откуда: Томск
- Благодарил (а): 55 раз
- Поблагодарили: 22 раза
Re: действия после срабатывания датчика движения
Статус какой горит красным? Я простые устройства не использую.rial2001 писал(а):Решалась ли как данная проблема? Вот такая же сборка ОДИН-В-ОДИН через ПРОСТЫЕ устройства:neromih писал(а):У меня реализация не через простые устройства, а просто как сказать объектами.
Настраивал у себя:
.........
2. Проблемы:
1. Если в свойства без разницы какое SMotions-> motionDetected или SDevices-> statusUpdated
добавить код что бы при 0 MD произносил "обнаружено движение" то соответственно это будет сделано несколько раз.
2. Если добавить код для включения и выключения освещения, то соответственно он будет вкл и выкл освещение 5 раз
Код: Выделить всё
sg("Switch0.status","1"); sg('Switch0.statusText','Включено'); clearTimeOut("Switch0"); SetTimeOut("Switch0",'sg("Switch0.status","0"); sg("Switch0.statusText","Выключено");',[b]10[/b]);
вписал данный код в метод statusUpdated
10 время через которое отключится реле.
Может быть пригодится кому нибудь, работает.
Смысл в том если SecuritySwitch.status значение 0 - режим не охраны а наблюдения, соответственно включает реле, если наоборот то говорит проникновение.
В принципе эта настройка будет справедлива почти ко всем датчикам движенияКод: Выделить всё
if (gg('SecuritySwitch.status') == "0") { sg("Switch0.status","1"); sg('Switch0.statusText','Включено'); SetTimeOut("Switch0",'sg("Switch0.status","0"); sg("Switch0.statusText","Выключено");',10); } else { say("Проникновение",5); }
+ Статус датчика всегда горит красным...пока копаю...вопросов на форуме довольно много...а вот конкретного решения не нашел.
ЗЫ Брокер не предлагать))))
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
-
- Сообщения: 15
- Зарегистрирован: Вт авг 23, 2016 1:25 am
- Благодарил (а): 5 раз
- Поблагодарили: 0
Re: действия после срабатывания датчика движения
Статус красным горит - индикация движения на сцене, т.е. датчик не опрашивается о состоянии покоя и отражает последнее полученное значение, меняет его только при последующем обнаружении движения. Думаю это связано с тем, что ПРОСТЫЕ устройства определяют "1" как движение, а МЕГА наоборот "0"neromih писал(а):rial2001 писал(а):neromih писал(а):У меня реализация не через простые устройства, а просто как сказать объектами.
Статус какой горит красным? Я простые устройства не использую.
Так не смог побороть.
Сейчас буду перекидывать датчик в группу SMotions как увас.
Хотел уточнить решение как убрать повторы "обнаружено движение" по 3-4 раза за одно 1 срабатывание датчика - есть решение?
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: действия после срабатывания датчика движения
та же самая беда, но как решить я так и не нашёлrial2001 писал(а): Хотел уточнить решение как убрать повторы "обнаружено движение" по 3-4 раза за одно 1 срабатывание датчика - есть решение?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 531 раз
- Контактная информация:
Re: действия после срабатывания датчика движения
ну почему-же?Gelezako писал(а):rial2001 писал(а): Хотел уточнить решение как убрать повторы "обнаружено движение" по 3-4 раза за одно 1 срабатывание датчика - есть решение?
не совсем понял, что там наворочено у всех выше, но
можно с таймерами, но удобнее:
Код: Выделить всё
registerEvent($eventName, $details='',$expire_in=365); -- регистрация события $eventName
registeredEventTime($eventName); -- возвращает время последней регистрации события $eventName (-1 если еще не было такого события)
1) сработал датчик
2) запрашиваем время регистрации события в прошлый раз (-1 будет первый раз)
3) регистрируем событие
4) определяем сколько прошло времени с регистрации события и было ли оно вообще
5) если меньше чем надо, то ни чего не делаем
6) если больше или первый раз, то хотим говорим хотим что-то выполняем
З.Ы.
хотя возможно, вы используете "Простые устройства"....брр... но там вероятно, тоже можно поправить... наверно!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: действия после срабатывания датчика движения
это выход, но в принципе зачем плодить копии времени события с датчиков, если уже есть встроенное свойство Updated Timestamp, если конечно вы их подключили как простые устройства. Попробую реализовать такую проверку.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E