Плагин MegaD
-
Спасибо, что-то пропустил эту информацию. А с одновременной сработкой каналов еще не разбирались?
-
@gis:
Спасибо, что-то пропустил эту информацию. А с одновременной сработкой каналов еще не разбирались?
Пока нет Если вероятность большая, можно продублировать опросом
-
Коллеги! Поправьте, плиз, в плагине баг по "Формула расчета входного значения" из-за которого не могу значение "сдвинуть" вверх. В общем деление/умножение/вычитание работают, а сложение нет… пробовал использовать Number, но тоже ничего не вышло(
-
Коллеги! Поправьте, плиз, в плагине баг по "Формула расчета входного значения" из-за которого не могу значение "сдвинуть" вверх. В общем деление/умножение/вычитание работают, а сложение нет… пробовал использовать Number, но тоже ничего не вышло(
Если "деление/умножение/вычитание работают", значит формулы в целом работают, Странная избирательность для сложения :(. А можно увидеть лог? И проверьте, может заданный диапазон не позволяет добавлять.
-
Если "деление/умножение/вычитание работают", значит формулы в целом работают, Странная избирательность для сложения :(. А можно увидеть лог? И проверьте, может заданный диапазон не позволяет добавлять.
Заданный диапазон точно позволяет) Тем более мне надо сдвинуть на 2-3 градуса. В сценариях когда-то был подобный баг и приходилось применять Number(x). Лог - легко, правда там действий особо-то не видно…смотрим на канал "ST_HEATING_SYS_01" он же - 31_35e977910902.
Делаю "value+2"...видим, что прибавилось две тысячных...:
18.10 11:29:10.156 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 18.10 11:29:10.239 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 18.10 11:29:10.239 megad4: body: e46477910b02:31.06;666877911402:31.50;35e977910902:30.00 18.10 11:29:10.241 IH: get [ { id: '31_e46477910b02', value: '31.06' }, { id: '31_666877911402', value: '31.50' }, { id: '31_35e977910902', value: '30.00' } ] set { ST_HEATING_SYS_02: { aval: 31.06, err: 0 }, ST_HEATING_SYS_03: { aval: 31.5, err: 0 }, ST_HEATING_SYS_01: { aval: 30.002, err: 0 } }
Делаю "value-2"…видим, что отработало как надо:
18.10 11:34:57.523 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 18.10 11:34:57.607 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 18.10 11:34:57.608 megad4: body: e46477910b02:30.75;666877911402:31.18;35e977910902:29.68 18.10 11:34:57.610 IH: get [ { id: '31_e46477910b02', value: '30.75' }, { id: '31_666877911402', value: '31.18' }, { id: '31_35e977910902', value: '29.68' } ] set { ST_HEATING_SYS_02: { aval: 30.75, err: 0 }, ST_HEATING_SYS_03: { aval: 31.18, err: 0 }, ST_HEATING_SYS_01: { aval: 27.68, err: 0 } }
Делаю "value+60"…видим, что прибавилось почему-то 6 тысячных...совсем без комментариев:
18.10 14:12:48.324 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 18.10 14:12:48.405 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 18.10 14:12:48.406 megad4: body: e46477910b02:26.50;666877911402:26.87;35e977910902:26.00 18.10 14:12:48.408 IH: get [ { id: '31_e46477910b02', value: '26.50' }, { id: '31_666877911402', value: '26.87' }, { id: '31_35e977910902', value: '26.00' } ] set { ST_HEATING_SYS_02: { aval: 26.5, err: 0 }, ST_HEATING_SYS_03: { aval: 26.87, err: 0 }, ST_HEATING_SYS_01: { aval: 26.006, err: 0 } }
И еще бы поправить работу функции обработки значений (напомню - для портов MegaD в режиме I2C и 1WB функция не работает, усреднить показания за интервал времени не получается)! Первоначальный топик об этой проблеме - ТУТ.
-
Заданный диапазон точно позволяет) Тем более мне надо сдвинуть на 2-3 градуса. В сценариях когда-то был подобный баг и приходилось применять Number(x). Лог - легко, правда там действий особо-то не видно…смотрим на канал "ST_HEATING_SYS_01" он же - 31_35e977910902.
Делаю "value+2"...видим, что прибавилось две тысячных...:
Делаю "value-2"...видим, что отработало как надо:
Сделайте как и в сценариях: Number(value)+2, должно работать
И еще бы поправить работу функции обработки значений (напомню - для портов MegaD в режиме I2C и 1WB функция не работает, усреднить показания за интервал времени не получается)! Первоначальный топик об этой проблеме - ТУТ.
Имеется в виду пользовательская функция, не формула. Да, это есть у нас в задачах, пока не успели сделать, там надо плагин поправлять
-
По первому ответу - ок, буду пока делать так.
По второму - буду ждать когда допилите плагин, надеюсь целиком по всем пожеланиям)
-
И еще бы поправить работу функции обработки значений (напомню - для портов MegaD в режиме I2C и 1WB функция не работает, усреднить показания за интервал времени не получается)! Первоначальный топик об этой проблеме - ТУТ.
На github опубликован новый релиз плагина, в котором измен вызов функций для каналов: https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.14
Проверьте, пожалуйста Если заработает, выложим как обновление
-
Здравствуйте. Для удобства, хочу реализовать следующее: при срабатывании порта megad на дисплей ssd1306 выводится сообщение. Например порт 1, на нем датчик дыма, он сработал, на дисплей вывелось сообщение записанное пользователем. Подскажите пожалуйста, как это можно сделать?
-
-
@intrapro, собственно ответил в личных сообщениях старого форума))
-
Чтото в ih перестали приходить события из megad. Точнее события приходят, а плагин не изменяет состояние датчика:
sensor2 не падает в нольupd^ все нормально. не в тот момент обнулял его в сценарии)
-
Небольшой вопрос на лентах ws2811 каналы цветов rgb перепутаны. Как можно выйти из ситуации что бы корректно отображался выбранный цвет?
-
Участник @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 должны переключаться. Попробуйте нажать кнопку Выключить в боковом меню. Должны уйти нули, а устройство перейти в состояние выключено. Ну а картинку для активного состояния сами раскрасьте