Плагин MegaD
-
Участник @intrahouse написал в Плагин MegaD:
- Чтение и управление для 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 } }
- Видим канал 35, к которому подключен один единственный DS2413 (канал MegaD в режиме "OUT->DS2413"), у него значения OFF/OFF - было бы очень хорошо, чтобы значения парсились и присваивались соответственно каналам: 35_A и 35_B. Однако сейчас ID каналов обязательно должны иметь вид 35_9a2938000000_A. Считаю, что в случае множества DS2413 со своими адресами ID-каналов должны иметь другой вид - 35_A_9a2938000000.
- У сложно-составных каналов (где, например, на шине 1-Wire висят и DS18B20, и DS2413 или множество датчиков I2C) по команде cmd=all никаких результатов нет (для примера, смотрим канал 33). Значит парсить нечего, но после запуска плагина нужно получить состояние выходов DS2413 - периодически его опрашивать считаю глупостью. Может быть для первого считывания показаний таких каналов необходим, например, чек-бокс "Опросить при запуске"? Таким образом, после разбора строки cmd=all, принудительно опрашиваем нужные каналы, чтобы получить актуальное состояние всех входов/выходов.
То же относится к расширителю MCP20xxx - постоянно опрашивать его нет смысла. Если все порты расширителя используются в качестве выходов, то нужно его опросить только при запуске плагина, а если все порты - входы, то тоже самое поскольку изменение состояния входа приведет к тому что MegaD пошлет на сервер request. - Еще касаемо сложно-составных каналов, расширителей каналов или многопараметрических датчиков I2C - не планируете сделать иерархичную структуру каналов как есть у http-плагина? По идее было бы удобнее ориентироваться в каналах, осуществлять какие-то общие настройки (тот же чек-бокс "Опросить при запуске") и прочее.
- Если для DS18B20 (в режиме DSen->1W), любого канала DHT22, датчика I2C (если в MegaD выбран конкретный dev) и прочих сенсоров включена "Функция обработки данных" (накопление, откидывание и усреднение значений), то при команде "cmd=all" iH данные из body "не видит", не присваивает их устройствам, а отправляет в массив "Функции обработки данных" в качестве первого накопленного значения.
Хотелось бы чтобы при первоначальном опросе (парсинге body) значения датчиков присваивались устройствам, а не отправлялись в массив "Функции обработки данных" - это позволило бы эффективнее производить отладку)). А в массив попадали именно данные периодического опроса датчиков.
PS: это возможные пути будущего развития/доработки плагина MegaD.
- Чтение и управление для DS2413
-
Подскажите что может быть за ошибка. Останавливается 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. Может быть уважаемый @intrahouse добавит в "базу" svg что-то вроде этого:
-
Участник @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.
Совершенно точно, дело в сервере.
-
Участник @Erik написал в Плагин MegaD:
В финале обновлял через рекавери уже.
Кстати, из-за этого бага.
Думал, что епром не очистился, и поэтому чудит.
Перезалил все через рекавери с ручным восстановлением конфига. Он не сложный.Но все равно. Руками в конфге меги ставлю порту P&R. Сохраняю. А оно возвращается в P.
Если убрать настройку сервера - становится P&R.
Совершенно точно, дело в сервере.Странное дело. Может есть смысл поставить прошивку не совсем последнюю ? Например 4.38 beta1
-
Нет. Дело не в прошивке.
Стираю в настройке меги IP сервера, и моде порта само возвращается в P&R.
Ставлю IP сервера IH - и моде у порта само становится P.
Функционал изменения конфигурации меги с сервера еще не заявлялся. Так что незадекларированная возможность. Но работает пока криво
-
Участник @Erik написал в Плагин MegaD:
Нет. Дело не в прошивке.
Стираю в настройке меги IP сервера, и моде порта само возвращается в P&R.
Ставлю IP сервера IH - и моде у порта само становится P.
Функционал изменения конфигурации меги с сервера еще не заявлялся. Так что незадекларированная возможность. Но работает пока кривоМожете скинуть скрин как у Вас настроено в конфигурации меги и настройке канала в ih. Попробую у себя создать такую проблему:)
-
-
@Erik, сервер совсем ничем не может повлиять на MegaD - посмотрите лог обмена при старте MegaD. Там же все прозрачно - видно что сервер отправляет на контроллер, что обратно приходит. Со своими контроллерами ничего подобного не замечал, хотя порты с СМК у меня в режиме P&R.
Попробуйте прописать не сервер iH, а, например, сервер на apache2 (его-то легко поднимите хоть где или уже есть).
Может быть дело в прошивке? У самого контроллеры пока работают на 4.38 beta3