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

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

Модератор: immortal

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

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

Сообщение Bagir »

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

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

Сообщение Amarok »

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

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

Сообщение dimik »

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

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

Сообщение Bagir »

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

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

Сообщение Bagir »

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(). Тогда код будет более универсальный. И если у Меги поменяется адрес, не придется править его в коде.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am

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

Сообщение dimik »

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

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

Сообщение Bagir »

Файл 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

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

Сообщение Zaratustra »

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
Откуда: Ярославская область город Углич

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

Сообщение Bagir »

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

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

Сообщение Zaratustra »

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

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

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

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

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