Плагин MegaD



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

    Полностью ответ выглядит так
    00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00
    1 байт стартовый
    234 - адрес счетчика
    5 - код запроса , это все hex
    Далее показания по тарифам как есть. Т1 - 024174,58. Т2 - 008445,92. Т3 - 000000,00. Т4 - 000000,00

    Для варианта 00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00 так:
    Но каждый тариф нужно будет отдельно запрашивать 😞

    const arr = data.split("|");
    if (arr && arr.length > 8) {
      const t1=  parseInt(arr[5]+arr[6]+arr[7]+arr[8], 10);  //2417458
      callback(null,  t1/100);
    
      // const t2=  parseInt(arr[9]+arr[10]+arr[11]+arr[12], 10);  //844592
      // callback(null,  t2/100);
    }
    

    Если же в начале тоже есть |, приходит |00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00, то индекс сдвигается на 1:

    const t1=  parseInt(arr[6]+arr[7]+arr[8]+arr[9], 10);  //2417458
    


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

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

    Полностью ответ выглядит так
    00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00
    1 байт стартовый
    234 - адрес счетчика
    5 - код запроса , это все hex
    Далее показания по тарифам как есть. Т1 - 024174,58. Т2 - 008445,92. Т3 - 000000,00. Т4 - 000000,00

    Для варианта 00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00 так:
    Но каждый тариф нужно будет отдельно запрашивать 😞

    const arr = data.split("|");
    if (arr && arr.length > 8) {
      const t1=  parseInt(arr[5]+arr[6]+arr[7]+arr[8], 10);  //2417458
      callback(null,  t1/100);
    
      // const t2=  parseInt(arr[9]+arr[10]+arr[11]+arr[12], 10);  //844592
      // callback(null,  t2/100);
    }
    

    Если же в начале тоже есть |, приходит |00|02|4c|f3|27|02|41|74|58|00|84|45|92|00|00|00|00|00|00|00|00, то индекс сдвигается на 1:

    const t1=  parseInt(arr[6]+arr[7]+arr[8]+arr[9], 10);  //2417458
    

    Спасибо большое, все работает!!!



  • Подскажите почему с MegaD не приходит состояния с канала при перезагрузке MegaD. Даже после ручного включения лампочки состояния не миняется, визуализирует.
    alt text



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

    Подскажите почему с MegaD не приходит состояния с канала при перезагрузке MegaD. Даже после ручного включения лампочки состояния не миняется, визуализирует.
    alt text

    Мне кажется надо выставить период опроса порта не ноль а скажем раз в 10 сек.



  • @aleks-zonov IH мочемуто не считывает с MegaD состояния устройства



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

    @aleks-zonov IH мочемуто не считывает с MegaD состояния устройства

    А остальные порты с megaD плагин опрашивает нормально? Просто на сколько я понимаю если сами порт не опросите при настройке плагина или канала, ни кто за вас это не сделает.



  • @amgstone, разработчики писали, что эта страничка не интерактивная. Чтобы значения обновились нужно сверху этого окна нажать кнопку "обновить". Хотя у меня вроде обновляются не нулевые значения и без этого. А вот вместо 0 всегда пишет "-".



  • @Alex_Jet так я знаю ща кнопку обновления, но после ручного включения и выключения то состояние не меняется, дальше пробел даже после обновления странички



  • @aleks-zonov на каждой меге по пару таких каналов с пробелами



  • @amgstone Странное поведение у меня постоянно работают 4 megaD прочерки есть только на димируемых каналах а так везде 0 1, были прочерки если переключал порт самой megaD тогда канал не обновлялся.



  • Уважаемые коллеги, добрый день!
    Может мой вопрос покажется "не новым", но всё же попытаюсь его сформулировать.
    В MegaD есть поддержка 1w. В моем случае на 34 порт подключен датчик ds18b20 и все как бы отлично.
    MegaD_1W.png
    И плагин работает как и было задумано.
    ds18b20.png

    Но ведь, в MegaD есть и другой режим работы - 1WBUS. Благодаря чему, на тот же 34 порт, я могу подключить несколько датчиков ds18b20.
    MegaD_1WBUS.png
    Результат опроса шины 1wbus:
    MegaD_4d.png
    А теперь вопрос, как отобразить состояние этих четырёх датчиков в IntraHouse?
    4x_ds18b20.png
    Заранее извиняюсь перед людьми, для которых мой вопрос покажется тупым !



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

    Уважаемые коллеги, добрый день!
    Может мой вопрос покажется "не новым", но всё же попытаюсь его сформулировать.
    В MegaD есть поддержка 1w. В моем случае на 34 порт подключен датчик ds18b20 и все как бы отлично.
    MegaD_1W.png
    И плагин работает как и было задумано.
    ds18b20.png

    Но ведь, в MegaD есть и другой режим работы - 1WBUS. Благодаря чему, на тот же 34 порт, я могу подключить несколько датчиков ds18b20.
    MegaD_1WBUS.png
    Результат опроса шины 1wbus:
    MegaD_4d.png
    А теперь вопрос, как отобразить состояние этих четырёх датчиков в IntraHouse?
    4x_ds18b20.png
    Заранее извиняюсь перед людьми, для которых мой вопрос покажется тупым !

    У меня это работает как 34_адрес датчика и тд.



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

    У меня это работает как 34_адрес датчика и тд.

    Огромное спасибо !
    Всё оказалось до безобразия просто. Всё работает.



  • Добрый вечер!
    Столкнулся с такой ситуацией. Если происходит перезагрузка Меги и при этом изменяются состояния выходных каналов (включаются по умолчанию) то это новое состояние каналов IH в упор не видит. В отладчике плагина каждый раз одно и тоже:

    01.06 22:57:36.674 megad1: 192.168.0.14 => localhost:8081 HTTP GET /megad1?st=1&mdid=1
    01.06 22:57:36.677 megad1: 192.168.0.14 <= localhost:8081
    01.06 22:57:36.816 megad1:
    01.06 22:57:36.817 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=29&cmd=list
    01.06 22:57:36.827 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
    01.06 22:57:36.830 megad1: body: busy
    01.06 22:57:37.018 megad1:
    01.06 22:57:37.019 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=31&cmd=get
    01.06 22:57:37.029 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
    01.06 22:57:37.030 megad1: body: temp:12.88/hum:100.00
    01.06 22:57:37.032 IH: get [ { id: '31_1', value: '12.88' }, { id: '31_2', value: '100' } ]
    set { STEMP_4_2: { aval: 12.88, err: 0 },
    SHUMIDITY_4_1: { aval: 100, err: 0 } }
    01.06 22:57:37.220 megad1:
    01.06 22:57:37.221 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=32&cmd=get
    01.06 22:57:37.228 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
    01.06 22:57:37.229 megad1: body: temp:17.68
    01.06 22:57:37.230 IH: get [ { id: '32', value: '17.68' } ]
    set { STEMP_1_2: { aval: 17.68, err: 0 } }
    01.06 22:57:37.423 megad1:
    01.06 22:57:37.424 megad1: localhost => 192.168.0.14 HTTP GET /sec/?tget=1
    01.06 22:57:37.433 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
    01.06 22:57:37.434 megad1: body: 19.25
    01.06 22:57:37.435 IH: get [ { id: '38', value: '19.25' } ]
    set { STEMP_1_3: { aval: 19.25, err: 0 } }
    01.06 22:57:39.028 megad1:
    01.06 22:57:39.029 megad1: localhost => 192.168.0.14 HTTP GET /sec/?pt=29&cmd=list
    01.06 22:57:39.095 megad1: localhost <= 192.168.0.14 response: statusCode=200 contentType = text/html
    01.06 22:57:39.096 megad1: body: fff2c75a1604:15.31;ffd39d011705:12.93
    01.06 22:57:39.097 IH: get [ { id: '29_fff2c75a1604', value: '15.31' },
    { id: '29_ffd39d011705', value: '12.93' } ]
    set { STEMP_1_1: { aval: 15.31, err: 0 },
    STEMP_4_1: { aval: 12.93, err: 0 } }

    Сам факт рестарта Меги просто так выявить не возможно. Нужно сравнивать сигнализацию на модулях
    с состоянием каналов в IH. Ну или пожинать плоды безконтрольного включения каналов. Чтобы привести систему в чувства приходится включать/отключать каналы, которые активируются при старте Меги. Как от этого избавиться? Как заставить плагин опрашивать все каналы при получении от Меги ST=1? Периодический опрос всех каналов заводить очень не хотелось бы.



  • @Lost, добрый день
    При перезагрузке Меги можно восстановить состояния выходных каналов, если установить галочку: "Восстанавливать выход при перезагрузке контроллера"

    Сам факт рестарта Меги просто так выявить невозможно.

    Это возможно, нужно слушать сообщение от Меги /st=1 в Расширениях.



  • @intrapro можно визуализацию где настроить.



  • @intrapro Спасибо! Все получилось.



  • Для amgstone
    5a9b5418-39fa-4c74-83f2-cec336ed9dea-image.png



  • Хочется по пробывать эту платформу, есть MedaD-328, прочитал первоначальную инструкцию:
    Пример 1: Реле на MegaD.
    Используем стандартный тип устройства - Актуатор бинарный.
    Создаем типовой канал MegaD, ставим галочку Запись.
    Привязываем канал к свойству state. На этом привязка закончена.
    Встроенные обработчики команд on/off будут переключать свойство state через привязанный канал.
    Команды к каналам привязывать не надо.
    В поле пишу команду и отправляю, но состояние порта не изменяется
    Сделал скины, укажите на ошибку, ещё где создаётся канал нет шестерни (отладчик) как на скинах в форуме.
    настройка меги.jpg настройка меги 1.jpg команда 1.jpg команда 2.jpg команда 3.jpg
    менял название канал одной цифрой, результата нет
    команда 4.jpg



  • @rodik А почему тип порта у вас Analog OUT? Для реле должен быть Digital Output.


Авторизуйтесь, чтобы ответить