Плагин MegaD
-
Вчера выполняя указания Dev увидел, что и в версии 1.1.10 порт 16 переключился в режим P.
Это не сказалось на работоспособности потому, что проставился чекбокс рядом с установкой режима.Соответственно, номера версии работающего без ошибки плагина нет.
Но есть такой вопрос. У меня в настройках обоих контроллеров "имя скрипта" пустое, и расширения в плагине тоже не содержат имени скрипта.
Это не может влиять?
-
Имя скрипта MegaD отправляет в запросе перед отправкой параметров (перед знаком вопроса):
То есть:
имя скрипта = megad.php --> запрос будет /megad.php?pt=16
имя скрипта пустое --> запрос будет /?pt=16То есть пустое имя скрипта - это нормальный рабочий вариант
-
Добрый день, можно как то дать запрос на мегу чтобы узнать статус реле, включено или выключено реле? У меня внешние ролокасети на 3 провода (1 общий, 2,3 верх, низ). Хочу что бы Ih помнил статус (последние действие), проверял или реле активно у меня сейчас работает без обратной связи а ето не удобно. У меня реализировано команду устройству.
-
Создайте кнопку.
В ней выбирете "команда плагина", выберите свою мегу и напишите эту команду.
/%pwd%/?cmd=all
вместо pwd - свой пароль на меге.
Кнопка будет обновлять состояния всех каналов этой меги.
-
@Erik у маня созданы ACTOR для каждой ролокасети, можно как то чтобы в ACTORе обновлялось состояние, нету описания на эту тему. Чтобы использовать эти значения в сценарии.
Ну и у меня открытие и закрытие подключено к 2 разных реле через: ```this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p200;'+jalusi.getParam('point_open')+':0'});
ну и по аналогии закрытие
Вопрос как мне с 2 реле собрать информацию в одном акторе чтобы видеть последнее состояния с реле, чтобы ІН знал жалюзя сейчас открыта или закрыта, нету обратной связи.скрипт
/** * @name Новый мультисценарий * @desc * @version 4 */ const switch_1 = Device("ActorE","Switch"); const jalusi = Device("ActorD","Actor",[ {"name":"point_open", "note":"Пін відкриття", "type":"number", "val":15}, {"name":"point_close", "note":"Пін закриття", "type":"number", "val":16} ]); startOnChange([switch_1,jalusi]); script({ start() { if(this.isChanged(switch_1)){ this.onSwitch(); } if(this.isChanged(jalusi)){ this.onJalusi(); } }, onSwitch(){ switch(switch_1.value){ case 0: if(jalusi.id === "ACTOR7"){ jalusi.on(); this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p200;'+jalusi.getParam('point_open')+':0'}); } if(jalusi.id === "ACTOR8"){ //this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p210;'+jalusi.getParam('point_open')+':0'}); } if(jalusi.id === "ACTOR9"){ //this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p230;'+jalusi.getParam('point_open')+':0'}); } break; case 1: //this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_open')+':0;'+jalusi.getParam('point_close')+':0'}); break; case 2: if(jalusi.id === "ACTOR7"){ jalusi.off(); this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p200;'+jalusi.getParam('point_close')+':0'}); } if(jalusi.id === "ACTOR8"){ jalusi.off(); this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p210;'+jalusi.getParam('point_close')+':0'}); } if(jalusi.id === "ACTOR9"){ this.startTimer('T1', 30, 'turnAllOff'); } break; } this.log('Жалюзі статус : '+switch_1.value+' '+jalusi.id); }, turnAllOff(){ jalusi.off(); this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p240;'+jalusi.getParam('point_close')+':0'}); this.exit(); }, onJalusi(){ //this.log(this.isChanged(jalusi)+' 38 line'); if(jalusi.isOn()){ //this.log('jalusi On'); if(jalusi.id === "ACTOR7"){ this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p200;'+jalusi.getParam('point_open')+':0'}); } if(jalusi.id === "ACTOR8"){ this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p210;'+jalusi.getParam('point_open')+':0'}); } if(jalusi.id === "ACTOR9"){ this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_open')+':1;p240;'+jalusi.getParam('point_open')+':0'}); } }else{ //this.log('jalusi Off'); if(jalusi.id === "ACTOR7"){ this.pluginCommand({unit:'megad3', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p200;'+jalusi.getParam('point_close')+':0'}); } if(jalusi.id === "ACTOR8"){ this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p210;'+jalusi.getParam('point_close')+':0'}); } if(jalusi.id === "ACTOR9"){ this.pluginCommand({unit:'megad2', command:'/258/?cmd='+jalusi.getParam('point_close')+':1;p240;'+jalusi.getParam('point_close')+':0'}); } } this.exit(); } });
а так в админке http://joxi.ru/DmBRwpQSJvnMNm
-
В этом же скрипте после действия присвойте атуатору нужное значение.
После каждого действия присвоение соответствующего значения.
Актуатор будет всегда иметь значение, соответствующее последнему действию.
-
версию 1.1.14 убрали?
Обновление предлагается на 1.1.13 сегодня.
-
Участник @Erik написал в Плагин MegaD:
версию 1.1.14 убрали?
Версия 1.1.14 была сделана для тестирования и официально еще не публиковалась.
При желании ее можно взять на гитхабе.
-
Значит это нервное уже.
А что в ней нового?
-
@Erik можете подсказать что дописать?
-
После открытия
Actor.On();
после закрытия
Actor.Off();Вместо Actor - название нужного актуатора.
-
Участник @Erik написал в Плагин MegaD:
А что в ней нового?
В версии v1.1.14 изменение только для параметра канала
"Использовать функцию обработки при получении данных от контроллера"Ранее функция была привязана к номеру порта контроллера, теперь - к идентификатору канала, чтобы это работало для расширенных портов (MCP, I2C)
Сегодня на github планируем выложить версию v1.1.15, в которой будет:
-
Решение для одновременной сработки датчиков, подключенных к MCP
(модуль MegaD-16I-XT) -
Возможность обработать в сценарии ответ от контроллера для команды pluginCommand
Также на github выложен список изменений плагина за этот год :
https://github.com/intrahouseio/intraHouse.plugin-MegaD файл CHANGELOG
-
-
@intrapro будет реализована обратная связь (pluginCommand) с ролокасетами? То что я так долго ждал?
-
@amgstone, реализовано получение ответа от контроллера в сценарий:
script({ start() { // Передать запрос на megad1, ответ придет в сценарий (onResponse:'raw') this.pluginCommand({unit:'megad1', command:{url:'/sec/?pt=7&cmd=get', onResponse:'raw'}}, 'getResponse'); // Взвести таймер на случай, если ответа от контроллера нет this.startTimer('T1', 3, 'onTimeout'); }, getResponse(body) { // body this.log('getResponse body= '+body); // Анализируем body .... this.exit(); }, onTimeout() { this.log('Истек таймаут, ответ от megad1 не получен'); this.exit(); } });
Если это поможет, то да
-
@intrapro, так в body будет всего лишь "Done". Какой смысл его анализировать? Собственно, тут написал как правильнее сделать @amgstone
-
@Alex_Jet а у Вас ролета подключена к 2 реле, одно на открытие а второе на закрытие?
-
@amgstone, нет - у меня одно выбирает направление, другое подает питание))). Но от этого суть не меняется.
-
@intrapro, даже не представляю какая полезность будет от доработки по п.2...
А вы мои выкладки тут не анализировали?
И да - для Формулы расчета входного значения нужно добавить конвертацию типа данных чтобы не писать "Number(value)+2".Update: тестируя версию 1.1.14, я на старом форуме в личных сообщениях писал что не работает.
-
Участник @Alex_Jet написал в Плагин MegaD:
@intrapro, даже не представляю какая полезность будет от доработки по п.2...
- Во-первых, такой функционал (функция-обработчик для ответа при выполнении pluginCommand ) добавлен в ядре, и при доработке плагинов добавляем всем, тут просто совпало.
- Во-вторых, можно ведь послать команду на опрос канала, как в примере:
this.pluginCommand({unit:'megad1', command:{url:'/sec/?pt=7&cmd=get', onResponse:'raw'}}, 'getResponse');
Для выхода контроллер вернет "ON" или "OFF". Можно иногда использовать, если выход постоянно не опрашивать. Или еще какой экзотический запрос. Да, не несущая конструкция, но пригодится
И да - для Формулы расчета входного значения нужно добавить конвертацию типа данных чтобы не писать "Number(value)+2".
Это на сервере считается, в релизе нужно будет поправить
Update: тестируя версию 1.1.14, я на старом форуме в личных сообщениях писал что не работает.
Не работает функция для подканала? А мы так поняли что работает Личка старого форума к сожалению больше не доступна.
А вы мои выкладки тут не анализировали?
Конечно, анализировали, спасибо за подробное описание и предложения. Но пока не хочется ничего менять сущностно. Для версии сервера 5.x будем переделывать плагин с использованием иерархических структур.
Цель последнего изменения - решение для датчиков, подключенных к MCP. Сейчас нет никакой возможности обработать одновременные сработки.
-
Участник @gis написал в Плагин MegaD:
Подскажите, будет ли доработан плагин для обработки одновременных срабатываний каналов MegaD-16I-XT?
Подключил датчики движения, там через раз происходят одновременные срабатывания которые не обрабатываются плагином. Периодически опрашивать датчики движения, как вы понимаете, нет ни какого смысла.На github выложена новая версия плагина v1.1.15:
https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.15Нужно скачать zip архив и загрузить его:
Плагины -> меню Command -> Загрузить из .zip файлаВ новой версии плагина в Расширениях добавлен флаг:
Расширенный порт (одновременная сработка датчиков)Все датчики одного порта pt, которые могут сработать одновременно, нужно прописать в одном запросе (обратите внимание, что MCP расширения (ext) нумеруются с 0, а каналы на сервере с 1, т е ext0 - это 32_1 )
Пример настройки расширений для порта 32:
Входящее от контроллера:
/?pt=32&ext0=*&ext1=*&ext2=*&ext3=*&ext4=*&ext5=*&ext6=*&ext7=*
Установить состояния каналов:
32_1=%ext0%&32_2=%ext1%&32_3=%ext2%&32_4=%ext3%&32_5=%ext4%&32_6=%ext5%&32_7=%ext6%&32_8=%ext7%
Расширенный порт: Да
В результате, например, такого входящего запроса /pt=32&ext1=1&ext7=0 будут присвоены значения 32_2=1 и 32_8=0
Просьба счастливых обладателей расширенных портов протестировать функционал