Включение света по датчику движения

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Включение света по датчику движения

Сообщение Chainik » Ср фев 20, 2019 7:43 pm

Конечно, оборудование не соноф, а МегаД, но принципиально, думаю все то же самое.
http://ab-log.ru/forum/viewtopic.php?f= ... 440#p28440
За это сообщение автора Chainik поблагодарил:
samolet (Ср фев 20, 2019 9:59 pm)
Рейтинг: 1.16%
Аватара пользователя
samolet
Сообщения: 472
Зарегистрирован: Чт июн 29, 2017 10:29 am
Благодарил (а): 46 раз
Поблагодарили: 45 раз

Re: Включение света по датчику движения

Сообщение samolet » Ср фев 20, 2019 8:55 pm

Для чего вот эти строчки?
file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
и
$state =file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Включение света по датчику движения

Сообщение Chainik » Ср фев 20, 2019 9:05 pm

samolet писал(а):
Ср фев 20, 2019 8:55 pm
Для чего вот эти строчки?
file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
и
$state =file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
Строчка

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

file_get_contents("http://192.168.0.14/sec/?cmd=7:2");
дает команду контроллеру (MegaD) переключить порт 7 (там находится реле). Т.е. если было включено -- выключит и наоборот.
Была бы команда "7:1", то порт бы включился, а "7:0" -- выключился.
При выполнении строчки

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

$state =file_get_contents("http://192.168.0.14/sec/?pt=7&cmd=get");
происходит запрос у контроллера текущего состояния порта 7. При этом в переменную $state записывается "ON" или "OFF". Т.е. мы узнаем, выключено ли реле или включено.
Аватара пользователя
samolet
Сообщения: 472
Зарегистрирован: Чт июн 29, 2017 10:29 am
Благодарил (а): 46 раз
Поблагодарили: 45 раз

Re: Включение света по датчику движения

Сообщение samolet » Ср фев 20, 2019 9:56 pm

а как запросить статус у сонофа если знаю только его статус? и могу подать команду в виде метода на вкл. выкл. (код подачи команды в обьект на метод не знаю)
соноф подвязал к созданному обьекту.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Включение света по датчику движения

Сообщение Chainik » Ср фев 20, 2019 10:34 pm

samolet писал(а):
Ср фев 20, 2019 9:56 pm
а как запросить статус у сонофа если знаю только его статус? и могу подать команду в виде метода на вкл. выкл. (код подачи команды в обьект на метод не знаю)
соноф подвязал к созданному обьекту.
С оборудованием от соноф не работал, поэтому не знаю, можно ли со стороны сервера узнать состояние реле? Другими словами, есть ли обратная связь?
И вообще, какие там принципы работы? Если сработал физический выключатель (который на стене), каким образом и когда сервер об этом узнает?
Так что по существу сказать ничего не могу. Тут надо, конечно, спрашивать тех, кто с соноф работает.
Jilber
Сообщения: 684
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: Включение света по датчику движения

Сообщение Jilber » Чт фев 21, 2019 2:25 pm

Хоть какой именно Sonoff ? Какая прошивка ?
Аватара пользователя
samolet
Сообщения: 472
Зарегистрирован: Чт июн 29, 2017 10:29 am
Благодарил (а): 46 раз
Поблагодарили: 45 раз

Re: Включение света по датчику движения

Сообщение samolet » Пт фев 22, 2019 6:50 pm

Sonoff Touch EUC1, прошивка родная
код такой но свет не выключает

//определим время, на которое будет видоизменяться элементы интерфейса «датчик движения» после срабатывания
sg('MotionSensorTualet.status', 1);
SetTimeOut("MS2ActTimer","sg('MotionSensorTualet.status', 0);",5);

//запишем время срабатывания датчика в формате «HH:MM»
setGlobal('MotionSensorTualet.updatedTimeHHMM', gg('ThisComputer.timeNow'));

//запустим таймер (15 мин), по истечении которого свет будет выключен
clearTimeOut("lightOffTimer");
SetTimeOut("lightOffTimer","callMethod('Tualetvv.turnOff');",60*15);
Аватара пользователя
samolet
Сообщения: 472
Зарегистрирован: Чт июн 29, 2017 10:29 am
Благодарил (а): 46 раз
Поблагодарили: 45 раз

Re: Включение света по датчику движения

Сообщение samolet » Вт фев 26, 2019 8:31 pm

Вот еще написал но все равно ни чего не выключает
куда рыть?
//определим время, на которое будет видоизменяться элементы интерфейса «датчик движения» после срабатывания
$level=$this->getProperty('status');
if ($level == 1) {
SetTimeOut("MS2ActTimer","sg('MotionSensorvannaya.status', 0);",5);}

//запишем время срабатывания датчика в формате «HH:MM»
setGlobal('MotionSensorvannaya.updatedTimeHHMM', gg('ThisComputer.timeNow'));

//запустим таймер (1 мин), по истечении которого свет будет выключен
clearTimeOut("lightOffTimer");
SetTimeOut("lightOffTimer","callMethod('Vannaya1.turnOff');",60*01);
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Включение света по датчику движения

Сообщение Chainik » Вт фев 26, 2019 8:54 pm

Для начала надо понять, а вообще, доходит ли дело до выполнения куска кода, который якобы не выполняется?
Я бы для проверки временно вписал бы
say("Кусок кода пошел");
И понаблюдал бы.
Аватара пользователя
samolet
Сообщения: 472
Зарегистрирован: Чт июн 29, 2017 10:29 am
Благодарил (а): 46 раз
Поблагодарили: 45 раз

Re: Включение света по датчику движения

Сообщение samolet » Пт мар 01, 2019 7:24 pm

все сделал, спасибо всем за поддержку
сделал вот таким кодом
в метод statusUpdated созданного обьекта 'MotionSensorTualet (сенсор в туалете https://ru.aliexpress.com/item/Free-shi ... fd971c477d)
прописал вот этот код

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

if (gg('MotionSensorTualet.status')==0){
$objects=array('Tualetvv');
foreach($objects as $o) {
clearTimeOut("lightOffTimer");
SetTimeOut("lightOffTimer","callMethod($o.'.turnoff');",60*25);
}}

может кому пригодится
Последний раз редактировалось samolet Пт мар 01, 2019 10:22 pm, всего редактировалось 1 раз.
За это сообщение автора samolet поблагодарил:
Oleg_Ltd (Пн янв 06, 2020 8:31 pm)
Рейтинг: 1.16%
Ответить