Подключение контроллера MegaD-328

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

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн окт 06, 2014 12:16 pm

dimik Как вариант, использовать getOutput. Запускать так же из onNewMinute с требуемым интервалом. Ответ в виде temp:25/hum:43 будет записан в указанное свойство. А дальше его можно сразу раскидать на нужные составляющие.
BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Подключение контроллера MegaD-328

Сообщение Amarok » Пн окт 06, 2014 1:07 pm

Bagir писал(а):BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
А пример можно?
Моя Алиска живёт на Proxmox в Debian 12
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Подключение контроллера MegaD-328

Сообщение dimik » Пн окт 06, 2014 2:02 pm

Bagir писал(а):dimik Как вариант, использовать getOutput. Запускать так же из onNewMinute с требуемым интервалом. Ответ в виде temp:25/hum:43 будет записан в указанное свойство. А дальше его можно сразу раскидать на нужные составляющие.
BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
Пример как это сделать проще?
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн окт 06, 2014 2:06 pm

Не могу пока помочь. Моя ардуина еще только едет с алиэеспресс. Я так понимаю, Вам интересно вообще в целом как на ардуино выполнить GET запрос. Такое популярное железо, уверен, что либо примеры есть на форуме, либо Вам обязательно помогут.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн окт 06, 2014 2:35 pm

dimik писал(а):Запрос в браузере выглядит вот так:
http://192.168.1.25/sec/?pt=11&cmd=get
ответ вот так:
temp:25/hum:43
пока смог придумать только так:
в onNewMinute прописал

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

$state = file_get_contents('http://192.168.1.25/sec/?pt=11&cmd=get');
$value = explode('/',$state);
sg('Room.Temperature',substr($value[0],5));
sg('Room.Humidity',substr($value[1],4));
Вот пример опроса датчика газа

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

callMethod('MegaD1.getOutput',array('port'=>14,'objName'=>'sensorOutdoorAirGas','propertyName'=>'status'));
Так то метод getOutput делает тоже самое что и ваш код. Просто пользуется свойствами объекта MegaD1, чтобы не привязываться к адресам в коде. Чтобы перед записью данных от меги в свойство их обработать, можно взять пару строк из метода getOutput

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

$cmdUrl = sprintf ("http://%s/%s/?pt=%d&cmd=get", $this->getProperty('IpAddress'), $this->getProperty('Password'), intval($params['port']));
$state = trim(file_get_contents($cmdUrl));
 
Вместо this->getProperty() можно использовать getGlobal(). Тогда код будет более универсальный. И если у Меги поменяется адрес, не придется править его в коде.
За это сообщение автора Bagir поблагодарил:
dimik (Пн окт 06, 2014 6:08 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Подключение контроллера MegaD-328

Сообщение dimik » Пн окт 06, 2014 6:10 pm

О! Спасибо за наводку, я как раз и думал откуда IP-шник взять......
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн окт 06, 2014 8:37 pm

Файл megad.php и класс теперь находятся тут http://smartliving.ru/forum/viewtopic.php?f=14&t=1832 Обсуждение продолжаем в этой ветке.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Zaratustra
Сообщения: 9
Зарегистрирован: Пт окт 10, 2014 7:48 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Подключение контроллера MegaD-328

Сообщение Zaratustra » Пт окт 10, 2014 7:59 pm

Bagir писал(а):Файл megad.php и класс теперь находятся тут http://smartliving.ru/forum/viewtopic.php?f=14&t=1832 Обсуждение продолжаем в этой ветке.
Здравствуйте.
Являюсь пользователем Megad, установил MajorDomo и Ваш класс и megad.php

В процессе настройки возник вопрос: в настройках Megad есть опция srv loop, которая периодически передает статус всех портов на сервер в виде
OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;OFF;OFF;OFF;OFF;OFF;OFF;174;147

На сколько я понял, то Ваш скрипт обрабатывает такой ответ не правильно, поскольку идет реакция, как будто сработал нулевой порт.

Можно ли каким-то образом периодически обновлять статусы всех портов? например при обновлении страницы на сайте или по мере сработки самого порта. Например: в закладке "Свет" есть несколько выключателей света, и нужно, чтобы они меняли свое положение (ВКЛ<->ВЫКЛ) если я переключу этот порт не с сайта, а с выключателя на стене.
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пт окт 10, 2014 8:03 pm

Да действительно я даже и не думал о srv loop. А в случае управления с разных терминалов это будет полезно. Уверен, тут совсем все просто. Постараюсь сегодня ночью посмотреть и допилить!
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Zaratustra
Сообщения: 9
Зарегистрирован: Пт окт 10, 2014 7:48 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Подключение контроллера MegaD-328

Сообщение Zaratustra » Пт окт 10, 2014 8:31 pm

Bagir писал(а):Да действительно я даже и не думал о srv loop. А в случае управления с разных терминалов это будет полезно. Уверен, тут совсем все просто. Постараюсь сегодня ночью посмотреть и допилить!
Отлично, буду ждать для тестирования :)

На сколько я понимаю, то реакция на срабатывания портов прописывается также в файле megad.php?
Как правильно прописывать реакцию на порты если устройств несколько?

Можно ли добавить в этот скрипт функцию ведения логов срабатывания портов в базе данных?
Было бы удобно смотреть, какие сработки были за время отсутствия, кто звонил в дверь, кто ходил под окнами (датчик движения активирует фото или видео съемку), до какой температуры нагревался котёл и какие лампы больше всего были включены на месяц или год.
Или эта функция уже есть? Если есть, то как ею пользоваться?

Также как можно реализовать автоматическое выключение порта через заданный период времени не было сработок датчика движения в помещении?

Чувствую, что с моими большими запросами придется изучать РHP :)
Ответить