Опрос датчиков через плату с WebServer

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

Модератор: immortal

Kele6ra
Сообщения: 22
Зарегистрирован: Вт авг 12, 2014 4:53 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Опрос датчиков через плату с WebServer

Сообщение Kele6ra » Вт авг 12, 2014 5:28 pm

Планирую сделать вариант распределенного умного дома. Сервер MDM установлен на ПК, связь с датчика осуществляется с помощью самодельной платы на STM процессоре (на плате поднят WebServer). По 10 раз прочитал темы где описан опрос датчиков через плату. Но одного не могу понять, как связывается MDM с платой для опроса? Везде показана только верхняя часть. Описаны объекты, свойства, а вот связь с платой не описана, подскажите как она реализована.
з.ы. возможно я просто пропустил самое очевидное(
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Опрос датчиков через плату с WebServer

Сообщение sergejey » Вт авг 12, 2014 5:50 pm

Kele6ra писал(а):Планирую сделать вариант распределенного умного дома. Сервер MDM установлен на ПК, связь с датчика осуществляется с помощью самодельной платы на STM процессоре (на плате поднят WebServer). По 10 раз прочитал темы где описан опрос датчиков через плату. Но одного не могу понять, как связывается MDM с платой для опроса? Везде показана только верхняя часть. Описаны объекты, свойства, а вот связь с платой не описана, подскажите как она реализована.
з.ы. возможно я просто пропустил самое очевидное(
Самое простое: если поднят WebServer, то можно через модуль Веб-переменные организовать "вытягивание" данных из устройства в объекты системы. Т.е. в модуле указывается ссылка на страницу с данными и шаблон, по которому берётся конкретное свойство.
За это сообщение автора sergejey поблагодарил:
Kele6ra (Ср авг 13, 2014 8:51 am)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Kele6ra
Сообщения: 22
Зарегистрирован: Вт авг 12, 2014 4:53 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Kele6ra » Ср авг 13, 2014 8:51 am

c вытягиванием понял, а как быть с управлением некоторыми устройствами?
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

Re: Опрос датчиков через плату с WebServer

Сообщение denis » Ср авг 13, 2014 10:09 am

если по http протоколу, то обычно через geturl
примерно так

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

//вкл выход
$cmdUrl = "http://ip&Out1=ON";
getURL($cmdUrl,0);
//выкл выход
$cmdUrl = "http://ip&Out1=OFF";
getURL($cmdUrl,0);
у каждого устройства своя система команд, но принцип одинаков.
Kele6ra
Сообщения: 22
Зарегистрирован: Вт авг 12, 2014 4:53 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Kele6ra » Ср авг 13, 2014 2:36 pm

Благодарю.
Ещё возник вопрос про элемент меню типа "Выключатель", можно ли на него повесить и включение прибора и выключение?
п.с. повесил на выключатель метод rele.switch там почему то всё инверсивно 0_о то есть при единице он не хочет переключать, а при нуле переключает.
Так работает

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

$status=$this->getProperty("status");
if ($status == 0) {
 $this->callMethod('turnOff');
else {$this->callMethod('turnOn');
} 
А так - нет =(

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

$status=$this->getProperty("status");
if ($status == 1) {
 $this->callMethod('turnOff');
else {$this->callMethod('turnOn');
} 
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Vit » Ср авг 13, 2014 4:00 pm

Вечером выложу правильный код на переключение.

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

$status=$this->getProperty("status");
if ($status) {
 $this->callMethod('turnOff');
} else {
 $this->callMethod('turnOn');
}
  
вот так должно работать
Kele6ra
Сообщения: 22
Зарегистрирован: Вт авг 12, 2014 4:53 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Kele6ra » Чт авг 14, 2014 8:43 am

Именно так и не работает, работает если

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

$status=$this->getProperty("status");
if (!$status) {
 $this->callMethod('turnOff');
} else{
 $this->callMethod('turnOn');
}
Если отрицание не ставлю, то в меню он возвращается обратно после нажатия
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 29 раз
Поблагодарили: 28 раз

Re: Опрос датчиков через плату с WebServer

Сообщение denis » Чт авг 14, 2014 9:05 am

позволю себе влезть, но судя по словам "...в меню он возвращается обратно после нажатия.." в методах turnOn turnOff видимо зачем-то снова дергается этот же переключатель. т.е. получается "закольцовывание", вот он и возвращается обратно.
Vit
Сообщения: 867
Зарегистрирован: Вт янв 17, 2012 12:31 pm
Благодарил (а): 121 раз
Поблагодарили: 78 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Vit » Чт авг 14, 2014 9:15 am

Kele6ra писал(а):Именно так и не работает, работает если

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

$status=$this->getProperty("status");
if (!$status) {
 $this->callMethod('turnOff');
} else{
 $this->callMethod('turnOn');
} 
Если отрицание не ставлю, то в меню он возвращается обратно после нажатия

Выложите скрины что у вас и где прописано. И каким образом вы меняете свойство объекта.

Вышеприведенный код рабочий. Поосто возможно у вас в другом где то затык.
Kele6ra
Сообщения: 22
Зарегистрирован: Вт авг 12, 2014 4:53 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Опрос датчиков через плату с WebServer

Сообщение Kele6ra » Чт авг 14, 2014 12:57 pm

У меня работает вот с таким кодом. То есть если ставить отрицание перед $status в методе switch, то работает нормально, иначе ползунок всегда возвращается в своё положение.
Изображение Изображение Изображение Изображение Изображение Изображение
Ответить