Страница 8 из 41
Re: Подключение контроллера MegaD-328
Добавлено: Сб мар 29, 2014 12:09 am
vova5049
Как вариант, через web переменные.
Но у меня он, почему-то, показывает на 2-3 градуса меньше реальной температуры.
Re: Подключение контроллера MegaD-328
Добавлено: Сб мар 29, 2014 12:16 am
dimitrystd
Нормально экспортировался, сейчас еще раз перепроверил.
Только он идет отдельным классом.
Это неправильно он импортировался. Он должен наследоваться от класса Light. Посмотрите на мою картинку, там AutoSwitchOffLight класс как бы вложен в Light

Вы можете попробовать по редактировать AutoSwitchOffLight и выбрать родителем Light. Иначе ничего не должно работать т.к. AutoSwitchOffLight не содержит основных свойств и методов
Re: Подключение контроллера MegaD-328
Добавлено: Сб мар 29, 2014 12:20 am
vova5049
Кстати, у меня он тоже импортировался без наследования - отдельным классом. Наверное есть проблема с экспортом-импортом.
Re: Подключение контроллера MegaD-328
Добавлено: Сб мар 29, 2014 12:28 am
dimitrystd
Хочу "прикрутить" его к системе, пусть показывает температуру в щитке,
но не смог нарыть на сайте автора информацию, как интегрировать его в MjD.
vova5049 писал(а):Как вариант, через web переменные.
Вижу мало смысла в этом для себя но тоже сделал

- temperature.png (16.64 КБ) 16141 просмотр
Re: Подключение контроллера MegaD-328
Добавлено: Пн апр 21, 2014 9:38 pm
Lewcom
Подключил.
Включает выключает как с механики так и с сайта.
Если не сложно разъясните на примере как обрабатывать на сайте нажатия и статусы меги.
Каке состояние имеет вход или выход, реакция на смену состояния входа? Где писать обработку?
Re: Подключение контроллера MegaD-328
Добавлено: Пн апр 21, 2014 11:28 pm
dimitrystd
Lewcom писал(а):Каке состояние имеет вход или выход, реакция на смену состояния входа? Где писать обработку?
Вы импортировали классы? (Light, Megadevice). Если да, то вся логика находится в метода класса Light. Класс Megadevice это больше как драйвер - конвертирует значения свойств мажордома (МД) в протокол мегадевайса, и обратно.
Состояние входов и выходов нигде не хранится. Но их можно запросить\установить. При смене состояния в результате дёргается метод Light.switchPressed
Re: Подключение контроллера MegaD-328
Добавлено: Вт апр 22, 2014 11:07 am
Lewcom
Если я правильно понял:
Нажатие на мех кнопку обратится к megad.php
Он в свою очередь через клас Megadevice будет искать объекты класса Light в которых фигурирует номер активированного порта
и в switchPressed данных объектов выполняет обработку.
здесь же вытаскивать смену состояния мех кнопки.
Но их можно запросить\
это с интервалом надо вызывать для конкретного объекта Light getOutputPortState и результатом будет сотояние портов указаных в .outputPort, или оно будет записано в .enabled ?
так или ...
Re: Подключение контроллера MegaD-328
Добавлено: Вт апр 22, 2014 6:03 pm
Jager
dimitrystd писал(а):
Как бы реализовать длительное нажатие кнопки? Сам megaD вроде позволяет, отслеживая и нажатие и отжатие.
Re: Подключение контроллера MegaD-328
Добавлено: Вт апр 22, 2014 7:06 pm
Stunt
Тоже очень интересует этот вопрос. Хочется включать прожектор парковки по длительному нажатию.
Re: Подключение контроллера MegaD-328
Добавлено: Вт апр 22, 2014 11:47 pm
dimitrystd
У меня увы такой сценарий нигде не используется. Думаю для этого вам надо в 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. Код выше я не проверял, написал прям в браузере.