Плагин MegaD



  • alt text
    подскажите причину почему intrahouse не видит статуса портов?



  • @amgstone, как будто не привязано устройство к каналу, хотя оно привязано. У меня у всех каналов (кроме DS2413), к которым привязано устройство, отображается либо 0, либо 1. А вот для DS2413 если канал выключен, то вместо 0 отображается "-".
    Попробуйте перезапустить плагин или перепривязать устройства.



  • @Alex_Jet на одной меге пересоздал устройство, делал принтскрин, помогло, у всех устройствах появился статус, но на 2 мегах там де висят вентиляторы, пересоздавал но статус "-"
    alt text



  • @amgstone, так пересоздавали или перепривязывали устройства? Мне кажестя, что достаточно будет перепривязать - отвязать и сохранить канал, снова привязать нужное устройство и сохранить.
    А вот где глюк - это, вероятно, поможет разобраться @intrapro



  • Добрый день! Для начала нужно попробовать вентилятор включить.
    Хотелось бы еще увидеть настройки канала.
    Кстати, какой порт используется? Если это обычный порт, то надо посмотреть, что приходит в cmd=all
    И учитывайте, что оперативного обновления таблички в PM нет 😞



  • @intrapro, почему нет оперативного обновления? У меня как только что-то меняется или проходит первый cmd=all, то все значения обновляются!



  • @Alex_Jet перепривязал, но ничего не помогло.
    alt text

    Включение: 11.02 19:22:37.064 IH: command [ { dn: 'VENT2', prop: 'on' } ]
    11.02 19:22:37.066 IH: send { type: 'act',
    data:
    [ { chan: '19',
    id: '19',
    set: '',
    ks: 0,
    desc: 'DO',
    weight: 1,
    reqsek: 0,
    kh: 0,
    req: '/%pwd%/?pt=%adr%&cmd=get',
    value: 1,
    script: '',
    restore: true,
    usescript: '',
    nofb: false,
    command: 'on' } ] }

    Выключение: 11.02 19:22:39.266 IH: command [ { dn: 'VENT2', prop: 'off' } ]
    11.02 19:22:39.267 IH: send { type: 'act',
    data:
    [ { chan: '19',
    id: '19',
    set: '',
    ks: 0,
    desc: 'DO',
    weight: 1,
    reqsek: 0,
    kh: 0,
    req: '/%pwd%/?pt=%adr%&cmd=get',
    value: 0,
    script: '',
    restore: true,
    usescript: '',
    nofb: false,
    command: 'off' } ] }



  • Доброй ночи, придумал подключить к Megad пульт от электрических ворот чтобы не искать по карманах пульты, идея такая: button делаю на мнемосхеме, создаю сценарий в котором прописываю отправку на мегу click эмулируя нажатие кнопки, в меге настраиваю IN на клик.
    Вопрос: как написать сценарий чтобы отправлялся скрипт на мегу (клик) и блокировался button на время открытия или закрытия ворот (в секундах).



  • @amgstone, извините, но Вы иногда несете какой-то сумбур...
    MegaD не может принимать команды, которые она сама генерирует в адрес сервера при действиях на ее входах. Поэтому ни о какой эмуляции нажатия кнопки нет и речи! Ваша Button должна генерировать http-команду непосредственно на MegaD, чтобы замкнулся нужный ее выход. Однако в разрезе решения данной задачи нужно делать не button, а полноценное устройство (актюатор универсальный дискретный), по сработке которого будет запускаться сценарий:

    1. Включить выход
    2. Отсчитать время, необходимое для закрытия/открытия ворот
    3. Выключить выход

    Другое дело если приемная часть от вашего пульта может подключаться непосредственно ко входу MegaD (такие есть - см. сат ab-log). Но опять же - для правильного управления воротами не обойтись без сценария!



  • @Alex_Jet создал сценарий, пудьт подключил к out на меге и передаю короткий импульс на реле, этого достаточно чтобы кнопка идеально работала.
    alt text
    создал устройство
    alt text
    добавил на мнемосхему button
    alt text

    все работает но добавил галочку, устройство может быть заблокировано но визуально не блокирует устройство в приложении не появляется block
    alt text
    у меня на ролетах работает
    alt text



  • Здравствуйте. Подскажите пожалуйста, для использования megaD 16 XT в настройках, необходимо выбрать вход цифровой и актуатор универсальный аналоговый?



  • Добрый день. 3 контроллера работают без сервера стабильно. Как только подключаю IH, вылетает первая (всегда она) Мега. Ни под каким IP ее нет в сети. Приходиться делать полный ee reset и по новой настраивать. При этом
    две другие Меги продолжают дружить c IH. Где искать причину? спасибо.



  • @nikycoral поменяйте ip адрес меги



  • @amgstone менял



  • Пользователь @nikycoral написал в Плагин MegaD:

    Добрый день. 3 контроллера работают без сервера стабильно. Как только подключаю IH, вылетает первая (всегда она) Мега. Ни под каким IP ее нет в сети. Приходиться делать полный ee reset и по новой настраивать. При этом
    две другие Меги продолжают дружить c IH. Где искать причину? спасибо.

    Добрый день. Пока гипотез нет, предлагаю попробовать так:

    1. В IH остановить плагин, связанный с вылетающей Мегой
    2. Привести контроллер в боевую готовность, убедиться, что он доступен через свой web-интерфейс
    3. В IH перейти в отладчик остановленного плагина и запустить плагин. В окне отладчика будет выведен полный лог обмена данными с контроллером. Нужно понять, на каком этапе возникают проблемы - при подключении или после какого-то запроса


  • @intrapro добрый день. Вчера запускал отладчик. 29.05 19:37:50.581 megad1:
    29.05 19:37:50.585 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=7&cmd=get
    29.05 19:37:51.085 megad1:
    29.05 19:37:51.086 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=35&cmd=get
    29.05 19:37:51.587 megad1:
    29.05 19:37:51.589 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=30&cmd=get
    29.05 19:37:52.090 megad1:
    29.05 19:37:52.091 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=30&cmd=get
    29.05 19:37:52.592 megad1:
    29.05 19:37:52.594 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=30&cmd=get
    29.05 19:37:53.095 megad1:
    29.05 19:37:53.096 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=34&cmd=get
    29.05 19:37:53.597 megad1:
    29.05 19:37:53.599 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=11&cmd=get
    29.05 19:38:20.084 megad1: localhost <=> 192.168.0.14 Socket timed out - abort!
    29.05 19:38:20.088 megad1: localhost <= 192.168.0.14 Error ECONNRESET. Stopped.
    29.05 19:38:20.111 IH: Plugin exit with code 3
    29.05 19:38:20.118 IH: restart timer 5

    сегодня сделал эксперимент. Присвоил новый IP этой Меге. В IH прописал ее под новым ID. Вроде как несколько часов все работало и ни одна из мег больше не вылетала. Более того я их всех обновил до последней версии прошивки и все шло хорошо. Я решил перегрузить сервер(малинка) и... больше
    сервера я не вижу. Такое ощущение что не грузится boot IH. Вечером буду переустанавливать.спасибо. буду наблюдать.



  • Здравствуйте. Может кто нибудь помочь с настройкой датчика ACS758LCB. Сложность возникает как с megad2561, входа АЦП иметь значения на сервере intrahouse. Как можно настроить этот датчик, подскажите пожалуйста.



  • Здравствуйте. Разбираюсь с системой и возникает множество вопросов))

    1. Как настраивается в плагине в канале"Функция обработки значения"?
      в каком виде можно писать?
      Например датчик температуры, если он показывает меньше -40, либо ровно 0, либо больше 100 значит он неисправен, как это записать?
    2. Где вообще можно посмотреть хорошее описание API по intraHouse? Например по работе с БД?
      В https://ih-systems.com/ru/command_list/ лишь часть.
    3. Как проверять работу сложного скрипта? Как посмотреть результаты работы consol.log('') или использовать какие либо аналоги ?


  • Пользователь @regabriel написал в Плагин MegaD:

    Здравствуйте. Разбираюсь с системой и возникает множество вопросов))

    1. Как настраивается в плагине в канале"Функция обработки значения"?
      в каком виде можно писать?
      Например датчик температуры, если он показывает меньше -40, либо ровно 0, либо больше 100 значит он неисправен, как это записать?

    Добрый день.
    Настройку интервала допустимых значений можно настроить прямо на устройстве (min-max) . Там же можно определить, что делать, если произошел выход из диапазона:

    • "Не принимать значение вне диапазона" - значение не будет присвоено
    • "Установить ошибку при выходе из диапазона"

    Можно эти флаги устанавливать независимо. Также можно контролировать поступление данных - "Установить ошибку если нет данных в течение (сек)"

    device_setting.png

    Функция обработки в канале используется, если нужна сложная предварительная обработка. Например, от контроллера получаем 5 значений, сортируем, откидываем минимальное и максимальное и вычисляем среднее. И именно вычисленное значение отдаем ядру системы.
    Пример такой функции для плагина MegaD приведен в описании плагина (в конце страницы):
    https://ih-systems.com/ru/product/plugin-megad/

    1. Где вообще можно посмотреть хорошее описание API по intraHouse? Например по работе с БД?

    Пользовательские SQL запросы к БД на уровне ядра в версии 4 не поддерживаются. Можно писать и читать из сценария с помощью функций this.dbread(), this.dbwrite().
    Если нужно напрямую работать с БД, есть возможность написать отдельный плагин. Документации на эту тему нет 😞 , но есть примеры реализации.

    1. Как проверять работу сложного скрипта? Как посмотреть результаты работы consol.log('') или использовать какие либо аналоги ?

    Для отладки скрипта есть "Отладчик" в нижнем окне сценария. Там выводится трассировка при выполнении команд, таймеров, проверки условий.
    Вместо console.log в скрипте используйте. this.log(''), сообщение будет выведено в этом же окне



  • Здравствуйте. Вопросы, вопросы по работе системы))) Мануальчика поописательней не хватает))

    Пытаюсь настроить нормально счетчики. Т.к. импульсы(пакеты) иногда теряются, да и реагировать на каждый импульс это немного бредово(можем получать по 10-40 импульсов в сек...)). Поэтому гораздо логичнее периодически считывать значение cnt и разницу записывать. И тут возникает вопросы:

    По идее на запрос
    /%pwd%/?pt=%adr%&cmd=get
    мега даст ответ
    OFF/61
    Можно было бы в функции обработки записать

    function (val, depo) {
    if (!depo.oldcnt) depo.oldcnt = 0;
    if (val.substr(0,2) =='OF'){
    cnt = val.substr(4));
    }else{
    cnt = val.substr(3));
    }
    //дальше обрабатываем cnt, был ли переход через 65535  и т.д.
         } 
    

    Но

    1. как понять какую ошибку выдает обработка скрипта? Где логи?
    2. Во вторых this.log(); сдесь не работает. Как понять в каком виде сейчас val ???

    Можно было бы пойти обходным путем, написать скрипт для опроса всех счетчиков в виде:

    let te = this.pluginCommand({unit:'megad3', command:'/sec/?pt=0&cmd=get'});
    //дальше уже обработаем ответ, но
            this.log('te = ' + te);
    

    но te в данном случае выдает = undefined , т.е. pluginCommand не выдает ответ от меги.

    Писать ради такого случая require('http').get('http://192.168.1.202/' ) и т.п. считаю крайне некрасивым вариантом.


Log in to reply