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

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

Модератор: immortal

Dragon
Сообщения: 96
Зарегистрирован: Ср авг 27, 2014 6:14 am
Благодарил (а): 36 раз
Поблагодарили: 0

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

Сообщение Dragon » Сб сен 13, 2014 8:59 pm

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

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

Сообщение Bagir » Сб сен 13, 2014 9:00 pm

Теперь настроим мегу через ее web интерфейс. Ссылочка Config. IP: - адрес Меги. Нужно выбрать ей постоянный адрес, т.к. он быдет использоваться для идентификации меги и отправки ей сообщений.
Pwd: - пароль для меги, чтобы сосед, которому дали пароль от вашего WiFi не мигал Вам ночью светом :) По умолчанию sec. Его надо будет указать такой же и в классе, но об этом чуть позже.
GW: - маска сети
SRV: адрес сервера MDM
Script:-php скрипт, который будет вызывать Мега. Пишем туда megad.php
За это сообщение автора Bagir поблагодарил:
Dragon (Сб сен 13, 2014 9:07 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Сб сен 13, 2014 9:02 pm

По умолчанию все порты которые IN настроены как P. Это означает, что мега пошлет серверу сообщение только при нажатии (замыкании контактов) кнопки. Сейчас нам этого достаточно.
За это сообщение автора Bagir поблагодарил:
Dragon (Сб сен 13, 2014 9:07 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Dragon
Сообщения: 96
Зарегистрирован: Ср авг 27, 2014 6:14 am
Благодарил (а): 36 раз
Поблагодарили: 0

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

Сообщение Dragon » Сб сен 13, 2014 9:06 pm

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

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

Сообщение Bagir » Сб сен 13, 2014 9:11 pm

Отлично!
Теперь давайте проверим, модем ли мы чем то управлять из 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
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Dragon
Сообщения: 96
Зарегистрирован: Ср авг 27, 2014 6:14 am
Благодарил (а): 36 раз
Поблагодарили: 0

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

Сообщение Dragon » Сб сен 13, 2014 9:18 pm

Извините пожалуйста, а где этот скрипт создать.

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

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

Сообщение Bagir » Сб сен 13, 2014 9:20 pm

Да, скорее всего старая. Прошивка есть, и даже кое какой опыт имеется. Обязательно сделаем, но чуть позже. megad.php должен найти объект и без идентификатора по ip адресу. Заодно и проверим ))
За это сообщение автора Bagir поблагодарил:
Dragon (Сб сен 13, 2014 9:34 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

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

Сообщение Bagir » Сб сен 13, 2014 9:22 pm

А новый скрипт создайте в панели управления MDM. Там слева в меню есть сценарии. В группе Test создайте новый сценарий с любым именем. Это нам на пробу, а в него скопируйте тот код.
Потом выполните этот сценарий, и если все хорошо, то на меге должен включиться выход.
За это сообщение автора Bagir поблагодарил:
Dragon (Сб сен 13, 2014 9:34 pm)
Рейтинг: 1.16%
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Dragon
Сообщения: 96
Зарегистрирован: Ср авг 27, 2014 6:14 am
Благодарил (а): 36 раз
Поблагодарили: 0

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

Сообщение Dragon » Сб сен 13, 2014 9:34 pm

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

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

Сообщение Bagir » Сб сен 13, 2014 9:43 pm

Так вообще отлично! Значит все работает. Тогда сейчас надо понять, приходят ли сообщения от Меги в 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 можно написать какой нибудь код, к примеру

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

say('Наша кнопка нажата'); 
В будущем нужно создать группу сase для каждого входа Мега, данные которого нам интересны. В конце есть группа default: Полезно тем, что если у нас в группах case нет например 2 вхда, а на Меге он будет замкнут, то сработает код из группы default: и прозвучит сообщение с номером входа.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить