Плагин MegaD
-
@intrapro Спасибо! Все получилось.
-
Для amgstone
-
Хочется по пробывать эту платформу, есть MedaD-328, прочитал первоначальную инструкцию:
Пример 1: Реле на MegaD.
Используем стандартный тип устройства - Актуатор бинарный.
Создаем типовой канал MegaD, ставим галочку Запись.
Привязываем канал к свойству state. На этом привязка закончена.
Встроенные обработчики команд on/off будут переключать свойство state через привязанный канал.
Команды к каналам привязывать не надо.
В поле пишу команду и отправляю, но состояние порта не изменяется
Сделал скины, укажите на ошибку, ещё где создаётся канал нет шестерни (отладчик) как на скинах в форуме.
менял название канал одной цифрой, результата нет
-
@rodik А почему тип порта у вас Analog OUT? Для реле должен быть Digital Output.
-
@Lost результат тот же, и поле с командами где можно было вписать тут нет
-
@rodik Я сам с 5 версией еще толком не разбирался. Мутновато по сравнению с 4-кой. Попробуйте поставить четверку и попробовать с ней. А как разберетесь так и пятерку можно попробовать освоить.
-
@rodik А так нормальное описание по плагину MEGAD вот здесь https://intrahouse.ru/product/plugin-megad/
-
@Lost Спасибо!
Буду ждать подсказки или какой то инструкции от админов.
-
Просьба к разработчиках дать хоть какую ту маломальскую инструкцию для MegaD в 5-й версии.
-
@rodik В настоящее время занимаемся движком плагинов. В том числе для Меги.
Как закончим, опубликуем и сообщим.
-
Подскажите как правильно настроить выключатели, для MegaD-328 + реле.
- Установил плагин и запустил
- Создал устройства розетки
- Создал каналы для розеток
- Сделал экран, мнемосхему и привязал выходные каналы.
Всё работает с планшета как положено, но не работают физические кнопки по управлению выходными каналами, если отключаю Мегу от интернета, тогда работают.
- Создал устройства выключатели
- Добавил новые каналы как входы.
Кнопки также не работают
- Добавил в расширениях с разными вариантами команд
Кнопки не работают.
Какие действия неправильные?
-
В вебе меги прописан сервер и порт?
-
@thunder_d
дело в том что с планшета всё работает
-
Это сообщение удалено!
-
всё, разобрался, для того чтобы работали физические кнопки,
нужно было прописать скрипт.
-
Хочу одной кнопкой выключать одновременно выключать несколько нагрузок, создал на мнемосхеме кнопку, в этой ветке нашёл команду которая будет запускаться через кнопку, но пока не удаётся,
настройки такие
в отладчике вот это, что можно увидеть где ошибка?16.07 22:34:18.951 megad4: 16.07 22:34:18.952 megad4: localhost => 192.168.1.34 HTTP GET /sec/?pt=8&cmd=get 16.07 22:34:18.956 megad4: localhost <= 192.168.1.34 response: statusCode=200 contentType = text/html 16.07 22:34:18.956 megad4: body: ON 16.07 22:34:18.956 IH: get [ { id: '8', value: '1' } ] set { Roz_328_8: { dval: 1, err: 0 } } 16.07 22:34:19.041 IH: plugin command { unit: 'megad4', clid: 'EHomCfealNm5NKWvB2Zm3Q==', command: 'this.pluginCommand({unit:\'megad4\', command:{url:\'/sec/?cmd=11:2;12:2\', onResponse:[{id:"11",value:2},{id:"12",value:"TOGGLE"}]});', arg: { parentId: '2', parentType: 'WIDGET_MNEMOSCHEMES', targetId: '10', targetType: 'button', targetValue: null, layoutId: [ '7' ], inputs: {}, arg: 'this.pluginCommand({unit:\'megad4\', command:{url:\'/sec/?cmd=11:2;12:2\', onResponse:[{id:"11",value:2},{id:"12",value:"TOGGLE"}]});' }, type: 'command' } 16.07 22:34:19.042 megad4: command: 'this.pluginCommand({unit:\'megad4\', command:{url:\'/sec/?cmd=11:2;12:2\', onResponse:[{id:"11",value:2},{id:"12",value:"TOGGLE"}]});' 16.07 22:34:19.151 megad4: 16.07 22:34:19.151 megad4: localhost => 192.168.1.34 HTTP GET this.pluginCommand({unit:'megad4', command:{url:'/sec/?cmd=11:2;12:2', onResponse:[{id:"11",value:2},{id:"12",value:"TOGGLE"}]}); 16.07 22:34:19.151 megad4: Http request error: Request path contains unescaped characters 16.07 22:34:19.352 megad4:
-
Вопрос отпал. Не достаток информации, приходится много искать на форуме, достаточно было команды
/sec/?cmd=a:0
чтобы выключить все выходы, подсмотрел в ответе от Alex_Jet, спасибо.
-
Всем привет!
Разбираюсь сейчас с плагином системой Интрахаус и привязкой к МегаД.
У меня к МегаД подключен частотник, по протоколу ModBus.
Управлять в принципе им получаеться, отправляя команду плагину из сценария. ```
this.pluginCommand({unit:'megad1', command:'/sec/?uart_tx=010601100000&mode=rs485'})Но хотелось бы получать от частотника и обратную связь. Для этого создал канал с произвольным именем, тип Аналоговый вход, и прописал в строку запроса состояния нужный запрос:
/sec/?uart_rx=1&mode=rs485&cmd=get
Далее планировал его обработать с помощью обработки данных на плагине, чтобы из ответа контроллера выделить цифру. Однако, не могу получит данные в канал. Интрахауз дает запрос, получает ответ:
13.11 21:29:41.239 megad1: localhost => 192.168.0.14 HTTP GET /sec/?uart_rx=1&mode=rs485&cmd=get
13.11 21:29:41.248 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
13.11 21:29:41.249 megad1: body: 01|06|01|10|11|30одако этих данных ( 01|06|01|10|11|30 ) на канале не появляеться. Подскажите, может я где то не так делаю?
-
@AlexMer, добрый день
Канал МегаД принимает только результат в виде числа, body нужно предварительно обработать с помощью формулы обработки, сниппета или сценария.
Чтение данных с uart разбиралось здесь:
Там несколько вариантов предлагается, но смысл в том, что нужно сырые данные распарсить, а результат уже передать в устройствоОдин из вариантов - сценарий чтения данных со счетчика.
const power = Device("SensorA", "Power"); script({ start() { this.pluginCommand({unit:'megad1', command:{url:'/sec/?uart_tx=010400030002&mode=rs485'}}); // Следующий запрос через 100 мсек this.startTimer('T1', 0.1, 'getNext'); // Взвести таймер на случай, если ответа от контроллера нет this.startTimer('T2', 2, 'onTimeout'); }, getNext() { // Передать запрос на megad1, ответ без обработки придет в сценарий (onResponse:'raw') this.pluginCommand({unit:'megad1', command:{url:'/sec/?pt=7&cmd=get', onResponse:'raw'}}, 'getResponse'); }, getResponse(body) { this.log('getResponse body= '+body); if (body.includes('CRC Error')) { this.log('CRC Error'); // Контроллер вернул ошибку CRC this.exit(); } // 01|03|02|08|a1 - в таком виде ожидается ответ const arr = body.split("|"); if (arr && arr.length > 4) { const val = parseInt(arr[3]+arr[4], 16); this.assign(power,"value",val/10000 ); } else { this.log('Не удалось извлечь значение из строки: '+ body); // Данные получены, но парсинг неудачен } this.exit(); }, onTimeout() { this.log('Истек таймаут, ответ от megad не получен'); this.exit(); } });
-
Спасибо за подсказку, принцип понял, подправил код под себя, все работает.