Подключение контроллера MegaD-328
Модератор: immortal
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Теперь настроим мегу через ее web интерфейс. Ссылочка Config. IP: - адрес Меги. Нужно выбрать ей постоянный адрес, т.к. он быдет использоваться для идентификации меги и отправки ей сообщений.
Pwd: - пароль для меги, чтобы сосед, которому дали пароль от вашего WiFi не мигал Вам ночью светом
По умолчанию sec. Его надо будет указать такой же и в классе, но об этом чуть позже.
GW: - маска сети
SRV: адрес сервера MDM
Script:-php скрипт, который будет вызывать Мега. Пишем туда megad.php
Pwd: - пароль для меги, чтобы сосед, которому дали пароль от вашего WiFi не мигал Вам ночью светом

GW: - маска сети
SRV: адрес сервера MDM
Script:-php скрипт, который будет вызывать Мега. Пишем туда megad.php
- Рейтинг: 1.16%
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
По умолчанию все порты которые IN настроены как P. Это означает, что мега пошлет серверу сообщение только при нажатии (замыкании контактов) кнопки. Сейчас нам этого достаточно.
- Рейтинг: 1.16%
-
- Сообщения: 96
- Зарегистрирован: Ср авг 27, 2014 6:14 am
- Благодарил (а): 36 раз
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
ip меги 192.168.1.14 пароль выставил, маска стоит, адрес сервера 192.168.1.41, скрипт прописал
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Отлично!
Теперь давайте проверим, модем ли мы чем то управлять из MDM. Создайте в MDM новый скрипт, и добавьте туда этот код
где 10 это порт Меги, а 1 означает включить
Забыл еще кое что добавить. В web настройках Меги можно указать Megad-ID. У каждой меги этот идентификатор должен быть разный. Когда какаято мега посылает сообщения на сервер, файл megad.php ищет нужный объект в классе MegaD. Ищет сначала по этому идентификатору, а потом, если не нашел, ищет по ip адресу. Предлагаю просто выставить Megad-ID = 1. И так же указать в объекте класса MegaD1.id = 1
Теперь давайте проверим, модем ли мы чем то управлять из MDM. Создайте в MDM новый скрипт, и добавьте туда этот код
Код: Выделить всё
callMethod('MegaD1.setOutput',array('port'=>10,'value'=>1));
Забыл еще кое что добавить. В web настройках Меги можно указать Megad-ID. У каждой меги этот идентификатор должен быть разный. Когда какаято мега посылает сообщения на сервер, файл megad.php ищет нужный объект в классе MegaD. Ищет сначала по этому идентификатору, а потом, если не нашел, ищет по ip адресу. Предлагаю просто выставить Megad-ID = 1. И так же указать в объекте класса MegaD1.id = 1
-
- Сообщения: 96
- Зарегистрирован: Ср авг 27, 2014 6:14 am
- Благодарил (а): 36 раз
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Извините пожалуйста, а где этот скрипт создать.
У моей меги нет нет настройки ID похоже у меня старая прошивка, у вас ее нет случайно яб ее и прошил
У моей меги нет нет настройки ID похоже у меня старая прошивка, у вас ее нет случайно яб ее и прошил
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Да, скорее всего старая. Прошивка есть, и даже кое какой опыт имеется. Обязательно сделаем, но чуть позже. megad.php должен найти объект и без идентификатора по ip адресу. Заодно и проверим ))
- Рейтинг: 1.16%
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
А новый скрипт создайте в панели управления MDM. Там слева в меню есть сценарии. В группе Test создайте новый сценарий с любым именем. Это нам на пробу, а в него скопируйте тот код.
Потом выполните этот сценарий, и если все хорошо, то на меге должен включиться выход.
Потом выполните этот сценарий, и если все хорошо, то на меге должен включиться выход.
- Рейтинг: 1.16%
-
- Сообщения: 96
- Зарегистрирован: Ср авг 27, 2014 6:14 am
- Благодарил (а): 36 раз
- Поблагодарили: 0
Re: Подключение контроллера MegaD-328
Создал скрипт сто вы предложили вместо 10 порта подставил 8, проверил включается
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Подключение контроллера MegaD-328
Так вообще отлично! Значит все работает. Тогда сейчас надо понять, приходят ли сообщения от Меги в MDM. Я так понял, что выключатель без фиксации состояния - проще говоря кнопка.
Открывает Class: MegaD, Объект: MegaD1, Метод incomingMessage, ссылка настроить
Там должен быть код с таким вот началом:
Нам нужно ветвление
Цифра после case это номер порта. Нас интересуют порты, которые настроены как IN, а конкретно порт, к которому подключен выключатель. Если система MDM умеет разговаривать, то в эту группу case можно написать какой нибудь код, к примеру
В будущем нужно создать группу сase для каждого входа Мега, данные которого нам интересны. В конце есть группа default: Полезно тем, что если у нас в группах case нет например 2 вхда, а на Меге он будет замкнут, то сработает код из группы default: и прозвучит сообщение с номером входа.
Открывает 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);
}
Код: Выделить всё
say('Наша кнопка нажата');