Страница 17 из 41
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 12:16 pm
Bagir
dimik Как вариант, использовать getOutput. Запускать так же из onNewMinute с требуемым интервалом. Ответ в виде temp:25/hum:43 будет записан в указанное свойство. А дальше его можно сразу раскидать на нужные составляющие.
BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 1:07 pm
Amarok
Bagir писал(а):BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
А пример можно?
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 2:02 pm
dimik
Bagir писал(а):dimik Как вариант, использовать getOutput. Запускать так же из onNewMinute с требуемым интервалом. Ответ в виде temp:25/hum:43 будет записан в указанное свойство. А дальше его можно сразу раскидать на нужные составляющие.
BlackWarrior Возможно я просто не понял суть вопроса, но почему бы с ардуины не использовать обычные GET запросы?
Пример как это сделать проще?
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 2:06 pm
Bagir
Не могу пока помочь. Моя ардуина еще только едет с алиэеспресс. Я так понимаю, Вам интересно вообще в целом как на ардуино выполнить GET запрос. Такое популярное железо, уверен, что либо примеры есть на форуме, либо Вам обязательно помогут.
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 2:35 pm
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(). Тогда код будет более универсальный. И если у Меги поменяется адрес, не придется править его в коде.
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 6:10 pm
dimik
О! Спасибо за наводку, я как раз и думал откуда IP-шник взять......
Re: Подключение контроллера MegaD-328
Добавлено: Пн окт 06, 2014 8:37 pm
Bagir
Файл megad.php и класс теперь находятся тут
http://smartliving.ru/forum/viewtopic.php?f=14&t=1832 Обсуждение продолжаем в этой ветке.
Re: Подключение контроллера MegaD-328
Добавлено: Пт окт 10, 2014 7:59 pm
Zaratustra
Здравствуйте.
Являюсь пользователем 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
На сколько я понял, то Ваш скрипт обрабатывает такой ответ не правильно, поскольку идет реакция, как будто сработал нулевой порт.
Можно ли каким-то образом периодически обновлять статусы всех портов? например при обновлении страницы на сайте или по мере сработки самого порта. Например: в закладке "Свет" есть несколько выключателей света, и нужно, чтобы они меняли свое положение (ВКЛ<->ВЫКЛ) если я переключу этот порт не с сайта, а с выключателя на стене.
Re: Подключение контроллера MegaD-328
Добавлено: Пт окт 10, 2014 8:03 pm
Bagir
Да действительно я даже и не думал о srv loop. А в случае управления с разных терминалов это будет полезно. Уверен, тут совсем все просто. Постараюсь сегодня ночью посмотреть и допилить!
Re: Подключение контроллера MegaD-328
Добавлено: Пт окт 10, 2014 8:31 pm
Zaratustra
Bagir писал(а):Да действительно я даже и не думал о srv loop. А в случае управления с разных терминалов это будет полезно. Уверен, тут совсем все просто. Постараюсь сегодня ночью посмотреть и допилить!
Отлично, буду ждать для тестирования
На сколько я понимаю, то реакция на срабатывания портов прописывается также в файле megad.php?
Как правильно прописывать реакцию на порты если устройств несколько?
Можно ли добавить в этот скрипт функцию ведения логов срабатывания портов в базе данных?
Было бы удобно смотреть, какие сработки были за время отсутствия, кто звонил в дверь, кто ходил под окнами (датчик движения активирует фото или видео съемку), до какой температуры нагревался котёл и какие лампы больше всего были включены на месяц или год.
Или эта функция уже есть? Если есть, то как ею пользоваться?
Также как можно реализовать автоматическое выключение порта через заданный период времени не было сработок датчика движения в помещении?
Чувствую, что с моими большими запросами придется изучать РHP
