Страница 13 из 41
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 8:59 pm
Dragon
да
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:00 pm
Bagir
Теперь настроим мегу через ее web интерфейс. Ссылочка Config. IP: - адрес Меги. Нужно выбрать ей постоянный адрес, т.к. он быдет использоваться для идентификации меги и отправки ей сообщений.
Pwd: - пароль для меги, чтобы сосед, которому дали пароль от вашего WiFi не мигал Вам ночью светом

По умолчанию sec. Его надо будет указать такой же и в классе, но об этом чуть позже.
GW: - маска сети
SRV: адрес сервера MDM
Script:-php скрипт, который будет вызывать Мега. Пишем туда megad.php
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:02 pm
Bagir
По умолчанию все порты которые IN настроены как P. Это означает, что мега пошлет серверу сообщение только при нажатии (замыкании контактов) кнопки. Сейчас нам этого достаточно.
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:06 pm
Dragon
ip меги 192.168.1.14 пароль выставил, маска стоит, адрес сервера 192.168.1.41, скрипт прописал
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:11 pm
Bagir
Отлично!
Теперь давайте проверим, модем ли мы чем то управлять из MDM. Создайте в MDM новый скрипт, и добавьте туда этот код
Код: Выделить всё
callMethod('MegaD1.setOutput',array('port'=>10,'value'=>1));
где 10 это порт Меги, а 1 означает включить
Забыл еще кое что добавить. В web настройках Меги можно указать Megad-ID. У каждой меги этот идентификатор должен быть разный. Когда какаято мега посылает сообщения на сервер, файл megad.php ищет нужный объект в классе MegaD. Ищет сначала по этому идентификатору, а потом, если не нашел, ищет по ip адресу. Предлагаю просто выставить Megad-ID = 1. И так же указать в объекте класса MegaD1.id = 1
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:18 pm
Dragon
Извините пожалуйста, а где этот скрипт создать.
У моей меги нет нет настройки ID похоже у меня старая прошивка, у вас ее нет случайно яб ее и прошил
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:20 pm
Bagir
Да, скорее всего старая. Прошивка есть, и даже кое какой опыт имеется. Обязательно сделаем, но чуть позже. megad.php должен найти объект и без идентификатора по ip адресу. Заодно и проверим ))
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:22 pm
Bagir
А новый скрипт создайте в панели управления MDM. Там слева в меню есть сценарии. В группе Test создайте новый сценарий с любым именем. Это нам на пробу, а в него скопируйте тот код.
Потом выполните этот сценарий, и если все хорошо, то на меге должен включиться выход.
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:34 pm
Dragon
Создал скрипт сто вы предложили вместо 10 порта подставил 8, проверил включается
Re: Подключение контроллера MegaD-328
Добавлено: Сб сен 13, 2014 9:43 pm
Bagir
Так вообще отлично! Значит все работает. Тогда сейчас надо понять, приходят ли сообщения от Меги в MDM. Я так понял, что выключатель без фиксации состояния - проще говоря кнопка.
Открывает Class: MegaD, Объект: MegaD1, Метод incomingMessage, ссылка
настроить
Там должен быть код с таким вот началом:
Код: Выделить всё
// запускается из файла megad.php с передачей параметров $params['pt'] , $params['m']
//Параметр 'm' не передается при нажатии. А при отпускании кнопки его значение = 1
//Переводим его в статус. 0-не нажата 1-нажата
$m=!$params['m']+0;
...
Нам нужно ветвление
Код: Выделить всё
switch ($params['pt']) {
case 0:
//Этот порт на Меге настроен как P&R
say('Передаю тестовому датчику статус '.$m);
break;
case 1:
//Этот порт на Меге настроен как P
say('Вызываю метод тестового объекта');
break;
// Далее идут уже лично мои настройки. Оставил их для примера.
case 3:
//Сообщение о начале открытии воздушной заслонки.
//Скорее всего потом будет отключено и порт будет свободен
break;
case 4:
callMethod("outdoorAirDamperClose.statusChanged",array("status"=>$m));
//say('Передаю датчику воздушной заслонки статус '.$m);
break;
default:
say('Получено сообщение от Меги. Вход '.$params['pt'].' Статус '.$m);
}
Цифра после case это номер порта. Нас интересуют порты, которые настроены как IN, а конкретно порт, к которому подключен выключатель. Если система MDM умеет разговаривать, то в эту группу case можно написать какой нибудь код, к примеру
В будущем нужно создать группу сase для каждого входа Мега, данные которого нам интересны. В конце есть группа default: Полезно тем, что если у нас в группах case нет например 2 вхда, а на Меге он будет замкнут, то сработает код из группы default: и прозвучит сообщение с номером входа.