Плагин MegaD



  • Здравствуйте. Для удобства, хочу реализовать следующее: при срабатывании порта megad на дисплей ssd1306 выводится сообщение. Например порт 1, на нем датчик дыма, он сработал, на дисплей вывелось сообщение записанное пользователем. Подскажите пожалуйста, как это можно сделать?



  • @artem521, посмотри тут



  • @intrapro, собственно ответил в личных сообщениях старого форума))



  • Чтото в ih перестали приходить события из megad. Точнее события приходят, а плагин не изменяет состояние датчика:
    550c5bd3-5539-4f13-ba7f-7c0cb8acb718-image.png
    sensor2 не падает в ноль

    upd^ все нормально. не в тот момент обнулял его в сценарии)



  • Небольшой вопрос на лентах ws2811 каналы цветов rgb перепутаны. Как можно выйти из ситуации что бы корректно отображался выбранный цвет?



  • Участник @intrahouse написал в Плагин MegaD:

    1. Чтение и управление для DS2413
      Запрос
      /sec/?pt=32&cmd=list

    Ответ содержит как DS18B20, так и DS2413: aad6a070000:25.43;85a56a070000:32.43;79c439000000:OFF/OFF;c6c439000000:ON/ON
    Канал DS18B20 формируется как обычно: 32_aad6a070000
    Каналы DS2413: 32_79c439000000_A, 32_79c439000000_B
    Время для опроса нужно как обычно выставить только в одном из каналов!!
    Больше никакой настройки не требуется, команды управления будут сформированы автоматически: /sec/?cmd=32A:1&addr=79c439000000

    Сделал небольшой апгрейд одного из контроллеров (заменил модуль 7I7O на 8I7O и добавил MegaD-2W/DS2413 на 35-канал) и при новом конфигурировании каналов плагина пришел к выводу что плагин к всевозможным конфигурациям MegaD заточить сложно...нужно иметь больше практических ситуаций. Сейчас имею вот такой "стартовый" лог:

    07.11 15:01:31.203 megad1: localhost => 192.168.11.21 HTTP GET /sec/?cmd=all
    07.11 15:01:31.335 megad1: localhost <= 192.168.11.21  response: statusCode=200 contentType = text/html
    07.11 15:01:31.337 megad1:  body: OFF/27;OFF/28;OFF/19;OFF/9;OFF/70;OFF/7;OFF/0;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:26.10/hum:36.60;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:2.50;temp:5.87;temp:4.06;;OFF;OFF/OFF;OFF;OFF
    07.11 15:01:31.341 IH: get [ { id: '7', value: '0' },
      { id: '8', value: '0' },
      { id: '9', value: '0' },
      { id: '10', value: '0' },
      { id: '11', value: '0' },
      { id: '12', value: '0' },
      { id: '13', value: '0' },
      { id: '22', value: '0' },
      { id: '23', value: '0' },
      { id: '24', value: '0' },
      { id: '25', value: '0' },
      { id: '26', value: '0' },
      { id: '27', value: '0' },
      { id: '28', value: '0' },
      { id: '30', value: '2.5' },
      { id: '31', value: '5.87' },
      { id: '32', value: '4.06' },
      { id: '14_1', value: '26.1' },
      { id: '14_2', value: '36.6' } ]
    set { LAMP1_01: { dval: 0, err: 0 },
      LAMP1_03: { dval: 0, err: 0 },
      LAMP1_05: { dval: 0, err: 0 },
      LAMP1_08: { dval: 0, err: 0 },
      LAMP1_10: { dval: 0, err: 0 },
      LAMP1_12: { dval: 0, err: 0 },
      LAMP1_13: { dval: 0, err: 0 },
      LAMP4_01: { dval: 0, err: 0 },
      LAMP4_02: { dval: 0, err: 0 },
      LAMP4_03: { dval: 0, err: 0 },
      LAMP1_02: { dval: 0, err: 0 },
      LAMP1_04: { dval: 0, err: 0 },
      LAMP1_06: { dval: 0, err: 0 },
      LAMP1_09: { dval: 0, err: 0 },
      ST_SEWERAGE1: { aval: 2.5, err: 0 },
      ST_SEWERAGE2: { aval: 5.87, err: 0 },
      ST_SEWERAGE3: { aval: 4.06, err: 0 },
      STEMP1_03: { aval: 26.1, err: 0 },
      SHUMIDITY1_03: { aval: 36.6, err: 0 } }
    
    1. Видим канал 35, к которому подключен один единственный DS2413 (канал MegaD в режиме "OUT->DS2413"), у него значения OFF/OFF - было бы очень хорошо, чтобы значения парсились и присваивались соответственно каналам: 35_A и 35_B. Однако сейчас ID каналов обязательно должны иметь вид 35_9a2938000000_A. Считаю, что в случае множества DS2413 со своими адресами ID-каналов должны иметь другой вид - 35_A_9a2938000000.
    2. У сложно-составных каналов (где, например, на шине 1-Wire висят и DS18B20, и DS2413 или множество датчиков I2C) по команде cmd=all никаких результатов нет (для примера, смотрим канал 33). Значит парсить нечего, но после запуска плагина нужно получить состояние выходов DS2413 - периодически его опрашивать считаю глупостью. Может быть для первого считывания показаний таких каналов необходим, например, чек-бокс "Опросить при запуске"? Таким образом, после разбора строки cmd=all, принудительно опрашиваем нужные каналы, чтобы получить актуальное состояние всех входов/выходов.
      То же относится к расширителю MCP20xxx - постоянно опрашивать его нет смысла. Если все порты расширителя используются в качестве выходов, то нужно его опросить только при запуске плагина, а если все порты - входы, то тоже самое поскольку изменение состояния входа приведет к тому что MegaD пошлет на сервер request.
    3. Еще касаемо сложно-составных каналов, расширителей каналов или многопараметрических датчиков I2C - не планируете сделать иерархичную структуру каналов как есть у http-плагина? По идее было бы удобнее ориентироваться в каналах, осуществлять какие-то общие настройки (тот же чек-бокс "Опросить при запуске") и прочее.
    4. Если для DS18B20 (в режиме DSen->1W), любого канала DHT22, датчика I2C (если в MegaD выбран конкретный dev) и прочих сенсоров включена "Функция обработки данных" (накопление, откидывание и усреднение значений), то при команде "cmd=all" iH данные из body "не видит", не присваивает их устройствам, а отправляет в массив "Функции обработки данных" в качестве первого накопленного значения.
      Хотелось бы чтобы при первоначальном опросе (парсинге body) значения датчиков присваивались устройствам, а не отправлялись в массив "Функции обработки данных" - это позволило бы эффективнее производить отладку)). А в массив попадали именно данные периодического опроса датчиков.

    PS: это возможные пути будущего развития/доработки плагина MegaD.



  • Подскажите что может быть за ошибка. Останавливается megad Текст ссылки перегружаю megad и через пару минут айпи адрес меги не отвечает.



  • @Alex_Jet может сложные места сниппетом забрать и все?



  • @amgstone, сервер кидает на Мегу свои запросы, а она ни на один не отвечает. Проверяйте сеть и почему MegaD недоступна с сервера.



  • @homa, согласен, что костыль решает многие проблемы), особенно если "голь на выдумки хитра"! Но вижу что плагин можно довести до кондиции - просто никто его не "юзал" во всевозможных конфигурациях чтобы убрать все "баги" и сделать "юзерфрендли".



  • @intrapro, подключил ленту WS2818 к контроллеру, в канале плагина вписал команду управления /%pwd%/?pt=%adr%&ws=%value%&chip=151. Все работает, однако братья китайцы где-то напутали и поменяли местами R и G... как итог лента не RGB, а GRB... стандартными средствами плагина можно выйти из положения?
    Еще момент по уровню яркости. Если установить какой-нибудь цвет, то слайдер L по умолчанию переходит в значение 50. Если его двигать в сторону 0, то яркость выбранного цвета уменьшается, однако если двигать к 100, то яркость увеличивается, но и цвет плывет причем на 100 получается просто белый цвет. Это явно не верный алгоритм.

    А еще поработать бы с самим устройством. По идее индикатор 1 - это RGB параметры, а индикатор 2 - это уровень яркости. Однако сейчас индикатор 2 отображает, например, "0,255,0", хотя при настройке устройства на мнемосхеме отображается уровень в виде "100". При нажатии на устройство - ничего не меняется - (картинки одинаковые), уровень остается тот же.



  • Участник @Alex_Jet написал в Плагин MegaD:

    @intrapro, подключил ленту WS2818 к контроллеру, в канале плагина вписал команду управления /%pwd%/?pt=%adr%&ws=%value%&chip=151. Все работает, однако братья китайцы где-то напутали и поменяли местами R и G... как итог лента не RGB, а GRB... стандартными средствами плагина можно выйти из положения?

    Попробуйте в канале на вкладке Обработка прописать:
    Формула расчета выходного значения для актуаторов: [ value[1],value[0],value[2] ]

    Ну и входное тоже нужно так же:
    Формула расчета входного значения: [ value[1],value[0],value[2] ]

    Еще момент по уровню яркости. Если установить какой-нибудь цвет, то слайдер L по умолчанию переходит в значение 50. Если его двигать в сторону 0, то яркость выбранного цвета уменьшается, однако если двигать к 100, то яркость увеличивается, но и цвет плывет причем на 100 получается просто белый цвет. Это явно не верный алгоритм.

    Это вопрос спорный. Сейчас нужно ориентироваться, что трушный цвет при L=50

    А еще поработать бы с самим устройством. По идее индикатор 1 - это RGB параметры, а индикатор 2 - это уровень яркости. Однако сейчас индикатор 2 отображает, например, "0,255,0", хотя при настройке устройства на мнемосхеме отображается уровень в виде "100". При нажатии на устройство - ничего не меняется - (картинки одинаковые), уровень остается тот же.

    Да, с индикаторами не очень 😞 Сейчас наверху выводится текущее значение массива, внизу должно быть дефолтное значение (для команды on) Cостояния on/off должны переключаться. Попробуйте нажать кнопку Выключить в боковом меню. Должны уйти нули, а устройство перейти в состояние выключено. Ну а картинку для активного состояния сами раскрасьте 🙂



  • Участник @intrapro написал в Плагин MegaD:

    Попробуйте в канале на вкладке Обработка прописать:
    Формула расчета выходного значения для актуаторов: [ value[1],value[0],value[2] ]

    Прописал только это и теперь работает все правильно! Здорово, что есть такой функционал!

    Да, с индикаторами не очень 😞 Сейчас наверху выводится текущее значение массива, внизу должно быть дефолтное значение (для команды on) Cостояния on/off должны переключаться. Попробуйте нажать кнопку Выключить в боковом меню. Должны уйти нули, а устройство перейти в состояние выключено. Ну а картинку для активного состояния сами раскрасьте 🙂

    Не пойму что где выводится. При включении/выключении изменяется только верхний массив. Нижний не понял от чего меняется - может быть и правда - это выбранное дефолтное значение. В качестве примера:
    RGB_On_Off.png

    По поводу картинок - очень не хватает картинок для RGB. Может быть уважаемый @intrahouse добавит в "базу" svg что-то вроде этого:
    RGB_Lamp_Off.png



  • Участник @Alex_Jet написал в Плагин MegaD:

    По поводу картинок - очень не хватает картинок для RGB. Может быть уважаемый @intrahouse добавит в "базу" svg что-то вроде этого:

    Сделали. Можно взять здесь



  • Здравствуйте. Подскажите пожалуйста, как отобразить в ih человеческие значения ацп megad с датчика температуры и давления?



  • @artem521, вроде была тема на ab-log. Тут все зависит от реального значения набортного напряжения 3.3В и коэффициентов пересчета температура/напряжение и давление/напряжение, которые зависят от датчика.



  • Добрый день.
    Наткнулся на баг.
    Впервые обновил прошивку меги. До этого работали только включатели и светильники, а тут запланировал устройство I2C, обновился, и началось.

    Один из портов конфигурируется сервером IH. И конфигурируется не верно.
    Настраиваю порт IN, в ACT пишу 23:3, и mode P&R.
    Все работает, пока не подключу IH.
    При подключении сразу mode становится P. Соответственно, работает не правильно.
    Это он каким образом делает?



  • Участник @Erik написал в Плагин MegaD:

    Добрый день.
    Наткнулся на баг.
    Впервые обновил прошивку меги. До этого работали только включатели и светильники, а тут запланировал устройство I2C, обновился, и началось.

    Один из портов конфигурируется сервером IH. И конфигурируется не верно.
    Настраиваю порт IN, в ACT пишу 23:3, и mode P&R.
    Все работает, пока не подключу IH.
    При подключении сразу mode становится P. Соответственно, работает не правильно.
    Это он каким образом делает?

    Приветствую. Обновили прошивку с момента покупки мега д ? Обновляли через php или под windows приложением?



  • Участник @Erik написал в Плагин MegaD:

    Добрый день.
    Наткнулся на баг.
    Впервые обновил прошивку меги. До этого работали только включатели и светильники, а тут запланировал устройство I2C, обновился, и началось.

    Один из портов конфигурируется сервером IH. И конфигурируется не верно.
    Настраиваю порт IN, в ACT пишу 23:3, и mode P&R.
    Все работает, пока не подключу IH.
    При подключении сразу mode становится P. Соответственно, работает не правильно.
    Это он каким образом делает?

    У меня был подобный глюк с портами in out. При подключении ih и загрузки еще пару мег в сети становилось что-то мистическое. Я этот глюк сделал случайно, сам, по невнимательности, когда в сети были меги с одним и тем же ip .Программа под windiws совместила настройки с megad328 и megad2561. Я пытался прошить несколько раз megad2561 но глюк не проходил. Потом сделал reset на самой меги прошил под linux по старинке, со сбросом eeprom, все заработало корректно.



  • В финале обновлял через рекавери уже. 🙂
    Кстати, из-за этого бага.
    Думал, что епром не очистился, и поэтому чудит.
    Перезалил все через рекавери с ручным восстановлением конфига. Он не сложный.

    Но все равно. Руками в конфге меги ставлю порту P&R. Сохраняю. А оно возвращается в P.
    Если убрать настройку сервера - становится P&R.
    Совершенно точно, дело в сервере.


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