действия после срабатывания датчика движения

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

Модератор: immortal

NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

действия после срабатывания датчика движения

Сообщение NiKiToS » Сб окт 28, 2017 8:35 pm

Помогите новичку разобраться!
в MajorDoMo много возможностей,в чем то я разобрался а в чем то и нет.
есть иной код в "onNewMinute"

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

setGlobal('timeNow',date('H:i'));

$homeStatus=date('H:i');
if (getGlobal('NobodyHomeMode.active')) {
 $homeStatus.=' Дома никого';
} else {
 $homeStatus.=' Дома кто-то есть';
} 
и есть код "MotionSensor1" в методах "statusChanged"

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

$this->setProperty('status',$params['status']); // выставляем статус сенсора
$this->setProperty('updatedTimestamp',time()); // выставляем время срабатывания сенсора

$this->setProperty('alive',1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=24*60*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);

if ($params['status']) {
 
 $this->setProperty('motionDetected',1);
 clearTimeOut($this->object_title.'_detected'); 
 setTimeOut($this->object_title.'_detected',"setGlobal('".$this->object_title.".motionDetected',0);",30);

 $linked_room=$this->getProperty('LinkedRoom');
 if ($linked_room!='') {
  callMethod($linked_room.'.onActivity');
 }

 if ($this->object_title=='sensorMovement3' || $this->object_title=='sensorMovementRemote1' || $this->object_title=='sensorMovementRemote2') {
  //|| $this->object_title=='sensorMovement5'
  return; // не реагируем на движение в спальне, по ip-сенсорам и по сенсору на втром этаже
 }

 ClearTimeOut("nobodyHome"); 
 SetTimeOut("nobodyHome","callMethod('NobodyHomeMode.activate');", 1*60*60); // выполняем если целый час никого не было

 if (getGlobal('NobodyHomeMode.active')) {
  callMethod('NobodyHomeMode.deactivate');
 }

 $last_register=registeredEventTime('inhouseMovement'); // проверяем когда в последний раз срабатывало событие "движение внутри дома"
  registerEvent('inhouseMovement',$this->name,2); // регистрируем событие "движение внутри дома" 
  if (timeBetween('05:00', '12:00') && ((time()-$last_register)>2*60*60)) {
   runScript('Greeting'); // запускаем скрипт "доброе утро"
  }
}
есть еще "Простые устройство".....
как заставить все это работать? что бы при срабатывании датчика движения,было определенное действие из сценария,либо

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

getURL('http://....ip...../pwm?ch=0&set=0' . $pwmValue, 0);
в определенное время....
Последний раз редактировалось NiKiToS Пн ноя 06, 2017 4:49 pm, всего редактировалось 1 раз.
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: действия после срабатывания датчика движения

Сообщение neromih » Вс окт 29, 2017 4:48 pm

Не за деньги отвечу :) может быть не в тему конечно.

Есть объект MotionSensor

В методе statusUpdated:

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

sg("MotionSensor1.updated",time()); 

callMethod("MotionSensor1.motionDetected"); 
callMethod("MotionSensor1.setUpdatedText"); 
$Rezim = gg("Rezim.status");
//режим охраны сирена запуск при движении
if ($Rezim == 2)
{
runScript("MotionAlarm"); //скрипт запуска сирены через модуль мегад, в самом скрипте реализовано постоянное так скажем "улюлюкание" при движении, если движение прекратилось, то через 15 сек. отбой + сообщение в телеграм 
}
//режим автосвета по времени с 17-00 до 06-30 при условии что режим системы автосвет.
if ($Rezim == 1 && timeBetween('17:00','06:30'))
{
clearTimeOut("Switch1");
sg("Switch1.status","1");
SetTimeOut("Switch1",'sg("Switch1.status","0");',30); 
}
 
Как вариант :)

По датчику движения смысла переключать режимы не вижу, страшно будет если режим автоматом перешел в охрану а ты пошел ночью в туалет, можно не дойти....
За это сообщение автора neromih поблагодарил:
NiKiToS (Пн ноя 06, 2017 11:27 pm)
Рейтинг: 1.16%
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: действия после срабатывания датчика движения

Сообщение NiKiToS » Вс окт 29, 2017 5:25 pm

чего то нечего не получается, может где то я косячу....
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: действия после срабатывания датчика движения

Сообщение neromih » Вс окт 29, 2017 5:40 pm

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

sg("MotionSensor1.updated",time()); 

callMethod("MotionSensor1.motionDetected"); 
callMethod("MotionSensor1.setUpdatedText"); 
$Rezim = gg("Rezim.status"); //это переменная хранящая 0 1 2, 0 не чего не делает, 1 автосвет, 2 охрана
//режим охраны сирена запуск при движении
if ($Rezim == 2) //если переменная Rezim.status = 2 при движении будет сирена
{
runScript("MotionAlarm"); //скрипт запуска сирены через модуль мегад, в самом скрипте реализовано постоянное так скажем "улюлюкание" при движении, если движение прекратилось, то через 15 сек. отбой + сообщение в телеграм 
}
//режим автосвета по времени с 17-00 до 06-30 при условии что режим системы автосвет.
if ($Rezim == 1 && timeBetween('17:00','06:30')) //если переменная Rezim.status = 1 при движении включится свет, при условии что время с 17-00 до 06-30
{
clearTimeOut("Switch1");
sg("Switch1.status","1");
SetTimeOut("Switch1",'sg("Switch1.status","0");',30); 
}
 
а что именно не получается?
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: действия после срабатывания датчика движения

Сообщение NiKiToS » Вс окт 29, 2017 5:42 pm

нечего не происходит! данные приходят но действий нет
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: действия после срабатывания датчика движения

Сообщение neromih » Вс окт 29, 2017 5:46 pm

NiKiToS писал(а):нечего не происходит! данные приходят но действий нет
Вы создали объект для датчика? Приходят ли на него данные? (0 или 1)?

Как у Вас подключено все?
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: действия после срабатывания датчика движения

Сообщение NiKiToS » Вс окт 29, 2017 5:54 pm

neromih. приходят на MotionSensor1.alive значение 0-1.через wifiot я gpio12 к которому подключен датчик движения,связал устройство motionDetected и через метод statusUpdated,куда вписал ваш код
NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: действия после срабатывания датчика движения

Сообщение NiKiToS » Вс окт 29, 2017 5:57 pm

где то я косячу а где не пойму,может гляните по удаленке?
neromih
Сообщения: 154
Зарегистрирован: Чт апр 20, 2017 5:32 am
Откуда: Томск
Благодарил (а): 55 раз
Поблагодарили: 22 раза

Re: действия после срабатывания датчика движения

Сообщение neromih » Вс окт 29, 2017 6:00 pm

Rezim.status создали такой объект? - он будет содержать режимы - охрана наблюдение автосвет. Создайте пустой.

Создайте скрипт MotionAlarm, в нем пропишите логику на работу в режиме охрана, что у Вас должно улюлюкать или загораться, либо отравляющие газы пойдут :)

Попробую посмотреть, только как? :)
Raspberry Pi2, Pi3, MegaD2561RTC + 14 in + 14R, WemosD1, Mega2560, Arduino nano v.3, Arduino Uno, ESP8266 12f.
NiKiToS
Сообщения: 42
Зарегистрирован: Сб окт 28, 2017 8:06 pm
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Re: действия после срабатывания датчика движения

Сообщение NiKiToS » Вс окт 29, 2017 6:04 pm

neromih писал(а):Rezim.status создали такой объект? - он будет содержать режимы - охрана наблюдение автосвет. Создайте пустой.

Создайте скрипт MotionAlarm, в нем пропишите логику на работу в режиме охрана, что у Вас должно улюлюкать или загораться, либо отравляющие газы пойдут :)

Попробую посмотреть, только как? :)
через "TeamViewer" вам в личку сброшу логин и пароль....
Ответить