[Модуль] MegaD (megad)
Модератор: immortal
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: [Модуль] MegaD (megad)
Настроить точно реально. И с MegaD-328 тоже в принципе проблемы быть не должно. Надо чуть-чуть поэкспериментировать.
Убедитесь, что в настройках модуля MegaD в Мажордомо прописан адрес сервера (поле "Local IP").
Попробуйте в поле "Skip dafault action" указать "Да" (возможно, контроллер не видит сервер и срабатывает действие по-умолчанию, прописанное у входа Меги).
Если в результате всех экспериментов ничего не выйдет, то всегда есть альтернативный вариант настройки (по ВАРИАНТу 2), который сработает (https://www.ab-log.ru/forum/viewtopic.p ... 104#p40104). Но версия модуля MegaD должна быть не старше апреля 2020 г. (ссылка там в конце имеется). Правда, там все настроено без ПУ. Настраиваются в большинстве случаев только входы.
И в вашем случае не надо указывать действие при удержании (LongPress), т.к. выключатели у вас стандартные (с фиксацией) и каждый раз при их переключении происходит еще и "удержание" с отправкой параметра "m=2". Кстати, может именно отсюда "растут уши" описанной вами проблемы (во всяком случае из логов это просматривается).
Пишите, что получилось. И если не выйдет, попробую предложить вариант настройки (хотя в работоспособности вышеуказанного альтернативного варианта не сомневаюсь). Но только в выходные, т.к. раньше не смогу.
Убедитесь, что в настройках модуля MegaD в Мажордомо прописан адрес сервера (поле "Local IP").
Попробуйте в поле "Skip dafault action" указать "Да" (возможно, контроллер не видит сервер и срабатывает действие по-умолчанию, прописанное у входа Меги).
Если в результате всех экспериментов ничего не выйдет, то всегда есть альтернативный вариант настройки (по ВАРИАНТу 2), который сработает (https://www.ab-log.ru/forum/viewtopic.p ... 104#p40104). Но версия модуля MegaD должна быть не старше апреля 2020 г. (ссылка там в конце имеется). Правда, там все настроено без ПУ. Настраиваются в большинстве случаев только входы.
И в вашем случае не надо указывать действие при удержании (LongPress), т.к. выключатели у вас стандартные (с фиксацией) и каждый раз при их переключении происходит еще и "удержание" с отправкой параметра "m=2". Кстати, может именно отсюда "растут уши" описанной вами проблемы (во всяком случае из логов это просматривается).
Пишите, что получилось. И если не выйдет, попробую предложить вариант настройки (хотя в работоспособности вышеуказанного альтернативного варианта не сомневаюсь). Но только в выходные, т.к. раньше не смогу.
-
- Сообщения: 48
- Зарегистрирован: Пн дек 30, 2013 6:37 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: [Модуль] MegaD (megad)
Все прописано, и тем не мение скрипт отрабатывает без параметра м, потом с параметром м=2.
Поля long_press и остальные появились в них поставил не отрабатывать действие по умолчанию, но результат тот же.
Думал что со временем исправили этот глюк, но видимо пока нет.
По альтернативному варианту просматривал но не знаю как установить модуль не последней версии в этой при удалении input удаляются все поля порта.
Если кто подскажет как это сделать под линуксом буду благодарен )
Поля long_press и остальные появились в них поставил не отрабатывать действие по умолчанию, но результат тот же.
Думал что со временем исправили этот глюк, но видимо пока нет.
По альтернативному варианту просматривал но не знаю как установить модуль не последней версии в этой при удалении input удаляются все поля порта.
Если кто подскажет как это сделать под линуксом буду благодарен )
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: [Модуль] MegaD (megad)
Я имел ввиду свойство "LongPress" при реализации ВАРИАНТА 2.
Ну да, в текущей версии модуля при удалении любой строчки по порту удаляется весь порт. Поэтому настройка становится невозможной и приходится использовать предыдущую версию модуля, в которой данного бага не было.
С Linux не подскажу, но на Windows работало так:
1. Сделать полный архив действующей системы.
2. Выключить Мажордомо и заменить содержимое папок по путям (для Windows):
\_majordomo\htdocs\modules\megad
\_majordomo\htdocs\templates\megad
заменить файл "megad.php" по пути: \_majordomo\htdocs
3. Включить Мажордомо и произвести настройку модуля.
-
- Сообщения: 48
- Зарегистрирован: Пн дек 30, 2013 6:37 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: [Модуль] MegaD (megad)
Пробовал скачивать с гитхаба старую версию, упаковывал в .tar .tgz устанавливал в MJ в ручном режиме - вываливается с ошибкой
Plugin 'majordomo-megad.tgz' (Unknown version) installed.
и не устанавливается.
Помогите кто умеет.
Plugin 'majordomo-megad.tgz' (Unknown version) installed.
и не устанавливается.
Помогите кто умеет.
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: [Модуль] MegaD (megad)
Конечно, для начала надо справиться с возвратом на прежнюю версию модуля. Хотя были случаи у некоторых, когда строчки input не мешали запуску метода.
Попробовал реализовать вашу задачу на MegaD-328 и при настройке по ВАРИАНТУ 2. Результат положительный, только пришлось чуть-чуть подправить коды методов.
Код классового метода switch в классе Lighting:
Код классового метода action в классе Switches:
Все работает. Но замечу только, что использовать обычные выключатели (без фиксации) эргономически неудобно. Положение выключателя в этом случае ничего не говорит о состоянии освещения. Мозг каждый раз будет напрягаться и делать лишнее усилие при принятии решения, как правильно щелкнуть выключателем (ИМХО).
Попробовал реализовать вашу задачу на MegaD-328 и при настройке по ВАРИАНТУ 2. Результат положительный, только пришлось чуть-чуть подправить коды методов.
Код классового метода switch в классе Lighting:
Код: Выделить всё
//Переключение диммируемого канала
if ($this->getProperty('Dimmable') == 1) {
$value = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('Port')."&cmd=get");
If ($value == 0 || $value == "") {
$this->callMethod('turnOn');
} else {
$this->callMethod('turnOff');
}
return "";}
//Отпускание клавиши выключателя игнорируем
//if ($_GET['m'] == 1) {
//return "";
//}
//Удержание клавиши выключателя игнорируем
if ($_GET['m'] == 2) {
return "";
}
//Стандартное переключение выхода
file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?cmd=".$this->getProperty('Port').":2");
$state = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('Port')."&cmd=get");
if ($state == "ON") {
$this->setProperty('Status', 1);
} else {
$this->setProperty('Status', 0); }
Код: Выделить всё
//Действие при одинарном нажатии
if ($_GET['click'] == 1) {
eval($this->getProperty('Click'));
return "";}
//Действие при двойном нажатии
if ($_GET['click'] == 2) {
eval($this->getProperty('DoubleClick'));
return "";}
//Действие при удержании
if ($_GET['m'] == 2) {
//eval($this->getProperty('Click'));
return "";}
//Действие при отпускании
if ($_GET['m'] == 1) {
eval($this->getProperty('Click'));
return "";}
//Действие при одинарном нажатии при настройке режима работы входа = "P"
if(isset($_GET['pt'])) {
eval($this->getProperty('Click'));
return "";}
- Рейтинг: 1.16%
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: [Модуль] MegaD (megad)
Вы чего-то намудрили лишнего и, как я понял из описания, работает именно так, как я ожидал бы.
Во-первых, уберите все привязки в модуле mega d и добейтесь, чтобы выключатель работал с контроллером без сервера (7:2 инвертирует состояние и если выключатель с фиксацией, то это не подходит и скорее подойдёт 7:3). Во-вторых, не привязывайте устройство к выключателю -- вам не важно что делает выключатель на самом деле, потому что вам важно чтобы устройство было связано с выходом OUT, т.е. привязывать нужно только к нему и, в принципе, в том виде как у вас на картинке.
Во-первых, уберите все привязки в модуле mega d и добейтесь, чтобы выключатель работал с контроллером без сервера (7:2 инвертирует состояние и если выключатель с фиксацией, то это не подходит и скорее подойдёт 7:3). Во-вторых, не привязывайте устройство к выключателю -- вам не важно что делает выключатель на самом деле, потому что вам важно чтобы устройство было связано с выходом OUT, т.е. привязывать нужно только к нему и, в принципе, в том виде как у вас на картинке.
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Nail
- Сообщения: 375
- Зарегистрирован: Пн мар 05, 2018 7:09 am
- Откуда: Самара
- Благодарил (а): 174 раза
- Поблагодарили: 28 раз
Re: [Модуль] MegaD (megad)
А можно попросить , у MegaD-2561-31I15O-RTC модуль не считывает конфигурацию( только один порт №7 считывает ).
а так же просмотреть если не трудно ,в работе объекта "термостат" хоть ПУ, хоть напрямую создавая, при вк-выкл термостата, температура привязанная к нему (относительно которого он работает) -пропускает точку разделения сотых, т.е. если сработал термостат допустим вкл. ил выкл ,то датчик температуры показывает кратковременно до следующего опроса мегой 5578 град. вместо 55.78.( это происходит только при вкл или выкл. термостата по температуре или в ручную, в остальном работает норм)
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS DIN Mini. Broadlink.
-
- Сообщения: 48
- Зарегистрирован: Пн дек 30, 2013 6:37 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: [Модуль] MegaD (megad)
Добрый день.
С вариантом 7:3 (синхронизация) работает, это я сразу проверил, интересовала ситуация именно с 7:2 - переключением.
Если я правильно понял что если выключатель с фиксацией то метод прописанный в поле INPUT всегда будет отрабатывать дважды и для исключения второго нужно отлавливать параметр "m" и обрабатывать программно, а после будет исполнятся метод прописанный в поле LONG_PRESS.
Исправьте если я не прав.
С вариантом 7:3 (синхронизация) работает, это я сразу проверил, интересовала ситуация именно с 7:2 - переключением.
Если я правильно понял что если выключатель с фиксацией то метод прописанный в поле INPUT всегда будет отрабатывать дважды и для исключения второго нужно отлавливать параметр "m" и обрабатывать программно, а после будет исполнятся метод прописанный в поле LONG_PRESS.
Исправьте если я не прав.
Re: [Модуль] MegaD (megad)
Огромное спасибо!Chainik писал(а): ↑Пт янв 15, 2021 12:30 pmСсылка у вас битая. Вот работающая: https://ab-log.ru/forum/viewtopic.php?f ... 395#p37376
Как там с ПУ не подскажу, ибо не пользуюсь, но без ПУ и без модуля "MegaD" процесс будет выглядеть следующим образом.
Код для запроса значения и сохранения в свойство:Код размещаете в сценарии или в методе.Код: Выделить всё
$Value = file_get_contents('http://192.168.0.14/sec/?pt=37&dev=sr04&echo=29'); sg('Имя_вашего_объекта.Имя_свойства',$Value);
А дальше вызываете код по необходимости или периодически, например, 1 раз в минуту или 1 раз в пять минут.
Организуем периодический запуск сценария/метода с кодом опроса. Проще всего это сделать, записав в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код (ниже строки «$m=date('i',time());»):Опрос будет происходить в данном случае раз в 15 минут.Код: Выделить всё
//В случае сценария if ($m%15 == 0) {runScriptSafe("Имя_вашего_сценария");} //В случае метода if ($m%15 == 0) {callMethodSafe("Имя_объекта.Имя_метода");}
Самый простой способ визуализации - создать на сцене информер и сослаться на объект.свойство, куда сохраняется значение с датчика. Еще хорошая конструкция - %объект.свойство% , которую можно использовать в меню, в элементах на сцене. Такая конструкция тоже позволяет "вытащить" и показать значение свойства.
Наши творцы (в хорошем смысле слова) уже давно расписали в статьях большую часть штатаного функционала системы. Вот про визуализацию данных: https://kb.mjdm.ru/commands_help/
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 29 раз
- Поблагодарили: 28 раз
Re: [Модуль] MegaD (megad)
Вот ответ, почему нет точки, если настроен термостатNail писал(а): ↑Вт янв 26, 2021 9:34 amА можно попросить , у MegaD-2561-31I15O-RTC модуль не считывает конфигурацию( только один порт №7 считывает ).
а так же просмотреть если не трудно ,в работе объекта "термостат" хоть ПУ, хоть напрямую создавая, при вк-выкл термостата, температура привязанная к нему (относительно которого он работает) -пропускает точку разделения сотых, т.е. если сработал термостат допустим вкл. ил выкл ,то датчик температуры показывает кратковременно до следующего опроса мегой 5578 град. вместо 55.78.( это происходит только при вкл или выкл. термостата по температуре или в ручную, в остальном работает норм)
Сам мучался, нигде это не нашел в описаниях.
https://ab-log.ru/forum/viewtopic.php?p ... 0c0#p43828