[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

tsember
Сообщения: 52
Зарегистрирован: Ср фев 04, 2015 12:28 am
Благодарил (а): 54 раза
Поблагодарили: 6 раз

Re: Модуль "MegaD"

Сообщение tsember » Вт фев 07, 2017 9:45 am

sergejey писал(а):
AHgpeu писал(а):и категорически необходима галочка для входов "обрабатывать отпускание кнопки"
Так вы поставьте в свойствах входа тип R&D (если не ошибаюсь) и событие будет приходить дважды -- как на нажатие так и на отпускание. При этом в метод передаётся парметр value, который говорит как раз о том, какое действие было произведено.
Сергей. Вопрос до сих пор актуален. В связанный метод передается два параметра: сработавший порт и его значение. Катострофически не хватает переданного параметра m (отпустили кнопку или держим свыше 1,5 сек).
Хочу сделать простую логику работы "железной" кнопки:
m=0. Кликнул - свет включился на Х минут; Кликнул еще - свет выключился;
m=1. На отжатие не реагируем, т.к. у нас кнопка
m=0, m=2. При выключенном свете нажал и подержал - свет сразу включится как бы на Х минут и через полторы секунды второй параметр скажет, что таймер Х минут нужно очистить (свет будет продолжать гореть до активации режима "Никого нет дома" или пока его не выключат).

Если два параметра уже передаются, то передать третий - не должно быть проблемой. Или кто может подсказать что нужно править что бы передавать параметр m?
Заранее большое спасибо участниками конференции.



UPD:
На удивление сам разобрался: примерно в середине файла megad.class.php есть код:
СпойлерПоказать

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

if ($prop['LINKED_OBJECT'] && $prop['LINKED_METHOD']) { // && $old_value!=$prop['CURRENT_VALUE_STRING']
      $params=array();
      $params['TITLE']=$rec['TITLE'];
      $params['VALUE']=$prop['CURRENT_VALUE_STRING'];
      $params['value']=$params['VALUE'];
      $params['port']=$prop['NUM'];
      $methodRes=callMethod($prop['LINKED_OBJECT'].'.'.$prop['LINKED_METHOD'], $params);
 
после строчки

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

      $params['port']=$prop['NUM']; 
добавляем строчку:

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

$params['m']=$m; 
оказывается в модуле уже все есть, только этот параметр в метод не передавался.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 07, 2017 1:03 pm

tsember писал(а):
Сергей. Вопрос до сих пор актуален. В связанный метод передается два параметра: сработавший порт и его значение. Катострофически не хватает переданного параметра m (отпустили кнопку или держим свыше 1,5 сек).
Хочу сделать простую логику работы "железной" кнопки:
m=0. Кликнул - свет включился на Х минут; Кликнул еще - свет выключился;
m=1. На отжатие не реагируем, т.к. у нас кнопка
Реализовать различную реакцию на одинарное и двойное нажатие кнопки можно и чисто программно (без "вытаскивания" параметра).
sega6549 выкладывал видео, в котором показано как это можно сделать.
https://www.youtube.com/watch?v=ghi6KyTTDcE
cheese
Сообщения: 8
Зарегистрирован: Чт окт 29, 2015 10:57 am
Откуда: Минск
Благодарил (а): 0
Поблагодарили: 0

Re: Модуль "MegaD"

Сообщение cheese » Вт фев 07, 2017 7:30 pm

Приветствую всех!

Может подскажите, проблема следующая:
На windows 10 x64 стоит VirtualBox. В виртуалке крутиться Debian 8.
Собственно Majordomo стала нормально. Но я не могу подконектиться к девайсу MegaD-2561. После кнопки "Сканировать устройства" - результат нулевой.
Сеть настроена в режиме моста. Статический IP. С виртуалки MegaD пингуется. Все в одной сети. Всю сеть вижу.
IP сервера 192.168.1.222
IP megad 192.168.1.111

Подскажите куда копать, а то уже и не знаю что делать?

П.С. На железном компе с Debian все работает.
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Вт фев 07, 2017 9:46 pm

tsember писал(а): Достаточно при получении команды st=1 отправлять на Мегу все последние значения портов. Это сделать не трудно, может быть даже и самостоятельно реализуемо, но Очень хотелось бы, что бы эта возможность была в модуле штатно.
Уже пальцы стер указывая на этот момент...:(
Аватара пользователя
Kod.Begemot
Сообщения: 358
Зарегистрирован: Чт июн 20, 2013 5:53 pm
Благодарил (а): 32 раза
Поблагодарили: 42 раза

Re: Модуль "MegaD"

Сообщение Kod.Begemot » Вт фев 07, 2017 11:09 pm

Victor_S писал(а): ... st=1 ...:(
А я таки уполз от модуля, и работаю с классом Bagir-a, st=1 обрабатываю находя объекты с этой мегой в классе Relay и PWM, и делаю им "Refresh"...
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: Модуль "MegaD"

Сообщение Victor_S » Ср фев 08, 2017 8:02 pm

Я долго на данном классе сидел, вроде все устраивало, но сдуру на модуль перешел, просто у меня, ну совсем никаких "изысков" на Меге не импользуется. Модуль всем устраивает кроме отсутствия поддержки st.
За это сообщение автора Victor_S поблагодарил:
tsember (Ср фев 08, 2017 11:25 pm)
Рейтинг: 1.16%
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Модуль "MegaD"

Сообщение gagarin74 » Вс фев 12, 2017 4:21 pm

Добрый день. Нужна помощь. Может уже это обсуждалось ,но полностью 57 листов просчитать не осилил,да и на форуме веток много.
Суть проблемы.
Имеем 3 устройства
1 телефон с андройдом
2 мега девайс
3 Умный дом на Rasperry.

Начнем с телефона. На нем установлен самописный софт который имеет две кнопки -включить свет и отключить свет. Соответственно отсылает команды по Http на мега девайс как у него написано в мануале. Включает и выключает реле (работает без проблем).
Заходя на веб морду мега девайса (или веб командой для просмотра состояние портов) -видим что все отображается правильно. Да и свет во всей квартире не даст соврать :).
Дальше наступают траблы и бубны (может только у меня). Умный дом ни как не хочет реагировать на изменение состояние портов.
Модуль мега в умном доме стоит -работает "корректно", но обновляет данные только при нажатие кнопки в модуле обновить!!!!!
Тобишь в сухом остатке получаем -что мегадевайс отработал (и мы видим это в его веб морде) ,а дальше КОСТЫЛЬ.
Причем если все это организовать без телефона,а воспользоваться прикруткой кнопок к мегадевайсу и с их помощью гасить свет,данные попадают в умный дом (и соответственно меняются показатели).

Нужен совет(ы).
1 как заставить обновиться данные в умном доме.
2 как заставить мега девайс послать волшебный пинок умному дому и сообщить что параметр изменился.

В мегадевайсе с кнопками вроде более менее понятно -там всяких настроик на входы полно. А вот как быть с выходами?!! если их задействовать на прямую без кнопок с мегадевайса.


Спасибо за понимание. (пока писал сообщение прошло минут 5), умный дом так и не оповестил меня(и себя тоже) что на меге один выход переключился с ON на OFF
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вс фев 12, 2017 6:28 pm

gagarin74 писал(а): Нужен совет(ы).
1 как заставить обновиться данные в умном доме.
2 как заставить мега девайс послать волшебный пинок умному дому и сообщить что параметр изменился.
По второму вопросу не подскажу. А по первому можно использовать вариант, описанный в моем пространном посте (в конце последние два скрипта, где сервер периодически запрашивает состояние порта):
viewtopic.php?f=5&t=2263&start=510

Мне этот вариант не нравится, т.к. чтобы обеспечить приемлемую актуальность состояния выходов в Мажордомо, нужно нагружать сервер и сетевой трафик. Но это все же лучше, чем ничего...
gagarin74
Сообщения: 330
Зарегистрирован: Пн апр 06, 2015 9:51 am
Благодарил (а): 37 раз
Поблагодарили: 22 раза

Re: Модуль "MegaD"

Сообщение gagarin74 » Вс фев 12, 2017 8:09 pm

Chainik писал(а):
gagarin74 писал(а): Нужен совет(ы).
1 как заставить обновиться данные в умном доме.
2 как заставить мега девайс послать волшебный пинок умному дому и сообщить что параметр изменился.
По второму вопросу не подскажу. А по первому можно использовать вариант, описанный в моем пространном посте (в конце последние два скрипта, где сервер периодически запрашивает состояние порта):
viewtopic.php?f=5&t=2263&start=510

Мне этот вариант не нравится, т.к. чтобы обеспечить приемлемую актуальность состояния выходов в Мажордомо, нужно нагружать сервер и сетевой трафик. Но это все же лучше, чем ничего...
Спасибо за ответ. Но вот вопрос ниже пояса. А ОНО так и должно коряво работать? Или у меня руки кривые ?
Просто сам мегадевайс не копейки стоит.И как я понимаю у него в прошивки нет функционала -давать пендаль умному дому,если изменилось состояние выхода. Про входы,повторюсь -все работает на ура!!!
Вопрос риторический. И наверное больше направлен на тех кто ковырял мега девайс.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вс фев 12, 2017 9:07 pm

gagarin74 писал(а):Просто сам мегадевайс не копейки стоит.И как я понимаю у него в прошивки нет функционала -давать пендаль умному дому,если изменилось состояние выхода.
Написал об этом в профильную ветку форума ab-log.
http://www.ab-log.ru/forum/viewtopic.ph ... 660#p26660
Посмотрим, что скажет Андрей.
Ответить