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

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

Модератор: immortal

vova5049
Сообщения: 64
Зарегистрирован: Пт фев 21, 2014 10:56 am
Откуда: Днепропетровск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

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

Сообщение vova5049 » Сб мар 29, 2014 12:09 am

Как вариант, через web переменные.
Но у меня он, почему-то, показывает на 2-3 градуса меньше реальной температуры.
Последний раз редактировалось vova5049 Сб мар 29, 2014 12:17 am, всего редактировалось 1 раз.
2*MegaD328, Система на Raspberry Pi 2
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск
Благодарил (а): 7 раз
Поблагодарили: 3 раза

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

Сообщение dimitrystd » Сб мар 29, 2014 12:16 am

Нормально экспортировался, сейчас еще раз перепроверил.
Только он идет отдельным классом.
Это неправильно он импортировался. Он должен наследоваться от класса Light. Посмотрите на мою картинку, там AutoSwitchOffLight класс как бы вложен в Light
Изображение
Вы можете попробовать по редактировать AutoSwitchOffLight и выбрать родителем Light. Иначе ничего не должно работать т.к. AutoSwitchOffLight не содержит основных свойств и методов
vova5049
Сообщения: 64
Зарегистрирован: Пт фев 21, 2014 10:56 am
Откуда: Днепропетровск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

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

Сообщение vova5049 » Сб мар 29, 2014 12:20 am

Кстати, у меня он тоже импортировался без наследования - отдельным классом. Наверное есть проблема с экспортом-импортом.
2*MegaD328, Система на Raspberry Pi 2
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск
Благодарил (а): 7 раз
Поблагодарили: 3 раза

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

Сообщение dimitrystd » Сб мар 29, 2014 12:28 am

Хочу "прикрутить" его к системе, пусть показывает температуру в щитке,
но не смог нарыть на сайте автора информацию, как интегрировать его в MjD.
vova5049 писал(а):Как вариант, через web переменные.
Вижу мало смысла в этом для себя но тоже сделал :)
temperature.png
temperature.png (16.64 КБ) 15492 просмотра
Lewcom
Сообщения: 48
Зарегистрирован: Пн дек 30, 2013 6:37 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

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

Сообщение Lewcom » Пн апр 21, 2014 9:38 pm

Подключил.
Включает выключает как с механики так и с сайта.
Если не сложно разъясните на примере как обрабатывать на сайте нажатия и статусы меги.
Каке состояние имеет вход или выход, реакция на смену состояния входа? Где писать обработку?
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск
Благодарил (а): 7 раз
Поблагодарили: 3 раза

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

Сообщение dimitrystd » Пн апр 21, 2014 11:28 pm

Lewcom писал(а):Каке состояние имеет вход или выход, реакция на смену состояния входа? Где писать обработку?
Вы импортировали классы? (Light, Megadevice). Если да, то вся логика находится в метода класса Light. Класс Megadevice это больше как драйвер - конвертирует значения свойств мажордома (МД) в протокол мегадевайса, и обратно.
Состояние входов и выходов нигде не хранится. Но их можно запросить\установить. При смене состояния в результате дёргается метод Light.switchPressed
Lewcom
Сообщения: 48
Зарегистрирован: Пн дек 30, 2013 6:37 pm
Благодарил (а): 3 раза
Поблагодарили: 1 раз

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

Сообщение Lewcom » Вт апр 22, 2014 11:07 am

Если я правильно понял:
Нажатие на мех кнопку обратится к megad.php
Он в свою очередь через клас Megadevice будет искать объекты класса Light в которых фигурирует номер активированного порта
и в switchPressed данных объектов выполняет обработку.
здесь же вытаскивать смену состояния мех кнопки.

Но их можно запросить\

это с интервалом надо вызывать для конкретного объекта Light getOutputPortState и результатом будет сотояние портов указаных в .outputPort, или оно будет записано в .enabled ?

так или ...
Последний раз редактировалось Lewcom Вт апр 22, 2014 7:15 pm, всего редактировалось 1 раз.
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Вт апр 22, 2014 6:03 pm

dimitrystd писал(а):
Как бы реализовать длительное нажатие кнопки? Сам megaD вроде позволяет, отслеживая и нажатие и отжатие.
Stunt
Сообщения: 39
Зарегистрирован: Вс мар 16, 2014 8:17 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение Stunt » Вт апр 22, 2014 7:06 pm

Тоже очень интересует этот вопрос. Хочется включать прожектор парковки по длительному нажатию.
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск
Благодарил (а): 7 раз
Поблагодарили: 3 раза

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

Сообщение dimitrystd » Вт апр 22, 2014 11:47 pm

У меня увы такой сценарий нигде не используется. Думаю для этого вам надо в megad.php передать в switchPressed значения параметра "m". Или может даже все параметры передать, не знаю

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

callMethod($light['TITLE'].'.switchPressed', $params);
И уже внутри switchPressed делать анализ что сейчас происходит, начало длинного нажатия или окончание

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

if (array_key_exists('m', $params)) {
  // Отпустили кнопку
  $interval = microtime() - this->getProperty('beginningLongClick');
  if ($interval > 1200) // если держали больше чем 1.2сек
    callMethod('Outdoor_lamp.toggleSwitch');
  else
    callMethod('indoor_lamp.toggleSwitch');
}
else {
  // Если кнопку нажали, то запоминаем время в милисек.
  this->setProperty('beginningLongClick', microtime());
}
P.S. Код выше я не проверял, написал прям в браузере.
Ответить