Плагин MegaD
-
Ошибка исправлена. Обновите систему
-
Спасибо за оперативность.
-
Две проблемы пр работе с плагином MegaD:
1. В каналах не хватает описания устройства. По идентификатору тяжело определить что это за конкретное устройство. А шагать по ним по всем - долго.
2. При копировании канала из существующего невозможно выбрать новое устройство. Точнее можно если принудительно выделить то что есть и удалить - тогда список устройств появляется.
-
Добрый день,
Две проблемы пр работе с плагином MegaD:
В каналах не хватает описания устройства. По идентификатору тяжело определить что это за конкретное устройство. А шагать по ним по всем - долго.
Спасибо за предложение, мы постараемся учесть Ваше пожелание в новых версиях.
При копировании канала из существующего невозможно выбрать новое устройство. Точнее можно если принудительно выделить то что есть и удалить - тогда список устройств появляется.
Запланировано сделать выбор устройства более прозрачным в новых версиях. Данное поле одновременно является фильтром и списком ввода.
MegaD_в каналах при копировании канала нельзя выбрать новое устройство.png
По скриншоту видно что у Вас уже присутствует канал (9) с устройством "LAMP1_03" и при добавлении нового канала с устройством "LAMP1_03" происходит ошибка, которая сообщает о данной проблеме.
-
@dev:
По скриншоту видно что у Вас уже присутствует канал (9) с устройством "LAMP1_03" и при добавлении нового канала с устройством "LAMP1_03" происходит ошибка, которая сообщает о данной проблеме.
Да, я это понимаю - я копировал новый канал из девятого, но как Вы видите - в выпадающем списке было только то же самое устройство! Других выбрать не было возможности. Получилось сохранить новый канал только тогда когда догадался просто удалить (выделить и удалить клавишей delete) это устройство. После удаления устройства появляется выпадающий список со всеми доступными устройствами.
Подобный баг был ранее с "-".
-
Добрался до "аналоговых" каналов в MegaD. Точнее каналов, к которым подключаются датчики по I2C - HTU21D, BME280 и прочие.
Как должна выглядеть "Формула расчета входного значения"??? если мне требуется
1. Провести 5 измерений через 1 минуту каждое.
2. Отсортировать значения, откинуть самое меньшее и большее.
3. Сделать среднее арифметическое из 3-х оставшихся.
@dev:
Запланировано сделать выбор устройства более прозрачным в новых версиях. Данное поле одновременно является фильтром и списком ввода.
Это относится к тому, что при создании каналов в выпадающем списке устройств будут только те, которые еще не привязаны к другим каналам? А то сейчас получается жуткая портянка…среди которой надо найти нужное устройство.
-
Пока, к сожалению, запуск функции для обработки полученного значения (функционал, который был в Berry), не реализован
Добавим в ближайших версиях
-
По формуле понятно.
А как прописать Request-ы? Так у меня есть в Berry:
-
Делается примерно также как в Berry в разделе Расширения
-
Во вкладке Обработка есть инверсия значений , но она что то не работает, Может корявые руки
-
Добрый день ВСЕМ!
скажите пжл кто нибудь к меге подкидывал расширители портов типа MCP23017 с привязкой к интре?
если реализовывали поделитесь конфигами пжл
-
К MegaD подключаю CP-Z2L (EM-Marine). При поднесении ключа она отправляет на сервер: /mod_megad.php?pt=35&ib=521f73001200
В каналах я завел канал 35 и привязал к нему датчик универсальный бинарный. Сформировал соответствующий request:
Но в отладчике вижу то что есть ниже. А переключения датчика универсального бинарного нет!04.10 21:57:02.317 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=35&ib=521f73001200 04.10 21:57:02.318 IH: get [] 04.10 21:57:02.318 IH: set {} 04.10 21:57:02.318 megad5: 192.168.11.25 <= localhost:11025
-
TOGGLE для бинарных датчиков не определен
-
TOGGLE для бинарных датчиков не определен
Какие есть варианты? Мне бы хотелось иметь возможность активировать/деактивировать виртуальный индикатор взятия в том числе с помощью iButton
-
TOGGLE для бинарных датчиков не определен
Какие есть варианты? Мне бы хотелось иметь возможность активировать/деактивировать виртуальный индикатор взятия в том числе с помощью iButton
Как вариант можно управлять датчиком через сценарий, подписавшись на актуатор, такой хак
-
@dev:
TOGGLE для бинарных датчиков не определен
Какие есть варианты? Мне бы хотелось иметь возможность активировать/деактивировать виртуальный индикатор взятия в том числе с помощью iButton
Как вариант можно управлять датчиком через сценарий, подписавшись на актуатор, такой хак
Можно еще проще - привязать бинарный актуатор, а интерактивные операции для него отключить
-
Можно еще проще - привязать бинарный актуатор, а интерактивные операции для него отключить
Да, это идея, спасибо!
Еще есть проблема с отображением значений датчиков, подключенных к MegaD по I2C, но не выбранных в контроллере в качестве default (если они выбраны по умолчанию, то по команде cmd=all будет результат вида - temp:128.85/hum:118.98) - то есть данные с датчиков запрашиваем принудительно и в ответе контроллер посылает только числовое значение:
09.10 09:51:26.629 megad5: 09.10 09:51:26.630 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d&i2c_par=1 09.10 09:51:26.688 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:51:26.689 megad5: body: 26.02 09.10 09:51:26.689 IH: get [] 09.10 09:51:26.689 IH: set {} 09.10 09:51:26.830 megad5: 09.10 09:51:26.831 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d 09.10 09:51:26.858 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:51:26.859 megad5: body: 40.13 09.10 09:51:26.860 IH: get [] 09.10 09:51:26.860 IH: set {}
Если бы датчик был выбран в контроллере по умолчанию, то ответ был бы не только числовым (в примере для DS18B20):
09.10 09:59:06.772 megad5: 09.10 09:59:06.773 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=29&cmd=get 09.10 09:59:06.782 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:59:06.782 megad5: body: temp:25.25 09.10 09:59:06.783 IH: get [{"id":"29","value":"25.25"}] 09.10 09:59:06.783 IH: set {"ST_HEATING4_02":{"aval":"25.25"}}
Еще один момент - после старта плагина (или если MegaD перезагрузился - дал на сервер команду st), необходимо не только считать все каналы командой cmd=all, но и считать сразу все доп каналы (особенно касается I2C каналов). Сейчас при считывании состояния всех каналов, некоторые из них по сути "undefined" (в ответе присутствует ";;;") и только через интервал опроса получаем с них данные. Кроме этого, не понятно почему каналы с состоянием "undefined" принимают нулевые значения, например, канал 35:
09.10 09:54:06.435 megad5: MegaD plugin has started. 09.10 09:54:06.451 megad5: Listen server start 09.10 09:54:06.458 megad5: Listening localhost:11025 09.10 09:54:06.662 megad5: 09.10 09:54:06.662 megad5: localhost => 192.168.11.25 HTTP GET /sec/?cmd=all 09.10 09:54:06.837 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:54:06.845 megad5: body: OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;ON/1;ON/1;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:24.93;OFF/0;OFF/0;OFF/0;OFF/0;ON/1;temp:0.00;temp:0.00;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:25.31;;;temp:128.85/hum:118.98;temp:128.85/hum:118.98;OFF;;OFF;OFF 09.10 09:54:06.848 IH: get [{"id":"5","value":"1"},{"id":"6","value":"1"},{"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":"14","value":"24.93"},{"id":"18","value":"0"},{"id":"19","value":"1"},{"id":"20","value":"0"},{"id":"21","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":"29","value":"25.31"},{"id":"35","value":"0"},{"id":"32_1","value":"128.85"},{"id":"32_2","value":"118.98"},{"id":"33_1","value":"128.85"},{"id":"33_2","value":"118.98"}] 09.10 09:54:06.849 IH: set {"SGERKON4_02":{"dval":0},"SMOTION4_02":{"dval":0},"LAMP0_01":{"dval":"0"},"LAMP1_07":{"dval":"0"},"VENT1":{"dval":"0"},"VENT2":{"dval":"0"},"ACTOR_HEATING4_01":{"dval":"0"},"ACTOR_HEATING4_02":{"dval":"0"},"ST_HEATING4_01":{"aval":"24.93"},"SENSOR1_01":{"dval":"0"},"SFIRE1_04":{"dval":0},"STEMP_PVU1":{"aval":"0"},"STEMP_PVU2":{"aval":"0"},"VENT_PVU1":{"dval":"0"},"VENT_PVU2":{"dval":"0"},"VENT_PVU3":{"dval":"0"},"VALVE_AIR1":{"dval":"0"},"VALVE_AIR3":{"dval":"0"},"VALVE_AIR4":{"dval":"0"},"VALVE_AIR5":{"dval":"0"},"ST_HEATING4_02":{"aval":"25.31"},"SSECURITY_SYS_01":{"dval":"0"},"STEMP1_02":{"aval":"128.85"},"SHUMIDITY1_02":{"aval":"118.98"},"STEMP_PVU3":{"aval":"128.85"},"SHUMIDITY_PVU1":{"aval":"118.98"}} 09.10 09:59:06.573 megad5: 09.10 09:59:06.574 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=14&cmd=get 09.10 09:59:06.581 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:59:06.582 megad5: body: temp:24.87 09.10 09:59:06.583 IH: get [{"id":"14","value":"24.87"}] 09.10 09:59:06.583 IH: set {"ST_HEATING4_01":{"aval":"24.87"}} 09.10 09:59:06.772 megad5: 09.10 09:59:06.773 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=29&cmd=get 09.10 09:59:06.782 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:59:06.782 megad5: body: temp:25.25 09.10 09:59:06.783 IH: get [{"id":"29","value":"25.25"}] 09.10 09:59:06.783 IH: set {"ST_HEATING4_02":{"aval":"25.25"}} 09.10 09:59:06.973 megad5: 09.10 09:59:06.974 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d&i2c_par=1 09.10 09:59:07.033 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:59:07.033 megad5: body: 26.00 09.10 09:59:07.034 IH: get [] 09.10 09:59:07.034 IH: set {} 09.10 09:59:07.174 megad5: 09.10 09:59:07.175 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d 09.10 09:59:07.203 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 09.10 09:59:07.204 megad5: body: 40.21 09.10 09:59:07.204 IH: get [] 09.10 09:59:07.204 IH: set {}
В качестве пояснения что такое "датчик на шине I2C выбран по умолчанию". В текущем примере выбран по умолчанию дисплей OLED с контроллером SSD1306 - чтобы при загрузке MegaD проходила инициализация дисплея. При этом на эту шину можно еще 100500 датчиков подключить с разными адресами, запрашивая данные "нативной" командой.
-
Пока, к сожалению, запуск функции для обработки полученного значения (функционал, который был в Berry), не реализован
Добавим в ближайших версиях
Когда можно ожидать этот функционал? Без него мне нет смысла переходить на Cherry. При этом 70% настроек сервера уже сделал.
-
-
Можно еще проще - привязать бинарный актуатор, а интерактивные операции для него отключить
Загвоздка в том, что для DI нельзя выбрать актюатор… А если сделать DO, то может, наверно, как-нибудь не адекватно обрабатываться состояние? Вечером попробую проверить.
@intrahouse:
Предположительно до конца месяца.
Это очень хорошо. И неточности в работе плагина надо устранить (см.выше).
Про функционал вывода информации на OLED-дисплей даже молчу… пока, наверное, придется со второстепенного сервера отображать информацию на дисплеях.
В дополнение прикладываю лог отладчика для анализа и исправления неточностей работы плагина MegaD:
12.10 12:36:15.112 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?st=1 12.10 12:36:15.112 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:15.125 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=5&cnt=1 12.10 12:36:15.126 IH: get [{"id":"5","value":"1"}] 12.10 12:36:15.127 IH: set {"SGERKON4_02":{"dval":0}} 12.10 12:36:15.127 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:15.140 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=6&cnt=1 12.10 12:36:15.140 IH: get [{"id":"6","value":"1"}] 12.10 12:36:15.141 IH: set {"SMOTION4_02":{"dval":0}} 12.10 12:36:15.141 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:15.154 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=19&cnt=1 12.10 12:36:15.155 IH: get [{"id":"19","value":"1"}] 12.10 12:36:15.155 IH: set {"SFIRE1_04":{"dval":0}} 12.10 12:36:15.156 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:15.170 megad5: 12.10 12:36:15.170 megad5: localhost => 192.168.11.25 HTTP GET /sec/?cmd=all 12.10 12:36:15.339 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:36:15.340 megad5: body: OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;ON/1;ON/1;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:25.81;OFF/0;OFF/0;OFF/0;OFF/0;ON/1;temp:26.93;temp:26.75;OFF;OFF;OFF;OFF;OFF;OFF;OFF;temp:26.00;;;temp:128.85/hum:118.98;temp:128.85/hum:118.98;OFF;;OFF;OFF 12.10 12:36:15.342 IH: get [{"id":"5","value":"1"},{"id":"6","value":"1"},{"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":"14","value":"25.81"},{"id":"18","value":"0"},{"id":"19","value":"1"},{"id":"20","value":"26.93"},{"id":"21","value":"26.75"},{"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":"29","value":"26"},{"id":"35","value":"0"},{"id":"32_1","value":"128.85"},{"id":"32_2","value":"118.98"},{"id":"33_1","value":"128.85"},{"id":"33_2","value":"118.98"}] 12.10 12:36:15.343 IH: set {"SGERKON4_02":{"dval":0},"SMOTION4_02":{"dval":0},"LAMP0_01":{"dval":"0"},"LAMP1_07":{"dval":"0"},"VENT1":{"dval":"0"},"VENT2":{"dval":"0"},"ACTOR_HEATING4_01":{"dval":"0"},"ACTOR_HEATING4_02":{"dval":"0"},"ST_HEATING4_01":{"aval":"25.81"},"SENSOR1_01":{"dval":"0"},"SFIRE1_04":{"dval":0},"STEMP_PVU1":{"aval":"26.93"},"STEMP_PVU2":{"aval":"26.75"},"VENT_PVU1":{"dval":"0"},"VENT_PVU2":{"dval":"0"},"VENT_PVU3":{"dval":"0"},"VALVE_AIR1":{"dval":"0"},"VALVE_AIR3":{"dval":"0"},"VALVE_AIR4":{"dval":"0"},"VALVE_AIR5":{"dval":"0"},"ST_HEATING4_02":{"aval":"26"},"ACTOR_SECURITY_SYS01":{"dval":"0"},"STEMP1_02":{"aval":"128.85"},"SHUMIDITY1_02":{"aval":"118.98"},"STEMP_PVU3":{"aval":"128.85"},"SHUMIDITY_PVU1":{"aval":"118.98"}} 12.10 12:36:16.082 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=6&m=2&cnt=1 12.10 12:36:16.083 IH: get [{"id":"6","value":"1"}] 12.10 12:36:16.083 IH: set {"SMOTION4_02":{"dval":0}} 12.10 12:36:16.084 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:16.094 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=5&m=2&cnt=1 12.10 12:36:16.095 IH: get [{"id":"5","value":"1"}] 12.10 12:36:16.095 IH: set {"SGERKON4_02":{"dval":0}} 12.10 12:36:16.096 megad5: 192.168.11.25 <= localhost:11025 12.10 12:36:16.107 megad5: 192.168.11.25 => localhost:11025 HTTP GET /mod_megad.php?pt=19&m=2&cnt=1 12.10 12:36:16.108 IH: get [{"id":"19","value":"1"}] 12.10 12:36:16.109 IH: set {"SFIRE1_04":{"dval":0}} 12.10 12:36:16.109 megad5: 192.168.11.25 <= localhost:11025 12.10 12:41:15.251 megad5: 12.10 12:41:15.252 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=14&cmd=get 12.10 12:41:15.260 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:15.260 megad5: body: temp:25.93 12.10 12:41:15.261 IH: get [{"id":"14","value":"25.93"}] 12.10 12:41:15.261 IH: set {"ST_HEATING4_01":{"aval":"25.93"}} 12.10 12:41:15.452 megad5: 12.10 12:41:15.453 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=20&cmd=get 12.10 12:41:15.463 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:15.464 megad5: body: temp:27.00 12.10 12:41:15.464 IH: get [{"id":"20","value":"27"}] 12.10 12:41:15.465 IH: set {"STEMP_PVU1":{"aval":"27"}} 12.10 12:41:15.654 megad5: 12.10 12:41:15.654 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=21&cmd=get 12.10 12:41:15.663 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:15.663 megad5: body: temp:26.75 12.10 12:41:15.664 IH: get [{"id":"21","value":"26.75"}] 12.10 12:41:15.664 IH: set {"STEMP_PVU2":{"aval":"26.75"}} 12.10 12:41:15.854 megad5: 12.10 12:41:15.855 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=29&cmd=get 12.10 12:41:15.863 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:15.864 megad5: body: temp:26.06 12.10 12:41:15.864 IH: get [{"id":"29","value":"26.06"}] 12.10 12:41:15.865 IH: set {"ST_HEATING4_02":{"aval":"26.06"}} 12.10 12:41:16.056 megad5: 12.10 12:41:16.056 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d&i2c_par=1 12.10 12:41:16.116 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:16.116 megad5: body: 26.93 12.10 12:41:16.117 IH: get [] 12.10 12:41:16.117 IH: set {} 12.10 12:41:16.257 megad5: 12.10 12:41:16.258 megad5: localhost => 192.168.11.25 HTTP GET /sec/?pt=30&scl=34&i2c_dev=htu21d 12.10 12:41:16.287 megad5: localhost <= 192.168.11.25 response: statusCode=200 contentType = text/html 12.10 12:41:16.287 megad5: body: 35.66 12.10 12:41:16.288 IH: get [] 12.10 12:41:16.288 IH: set {}
Для информации - после перезагрузки MegaD выдает серверу сообщение st=1, а потом самостоятельно фигачит "трапы" по каждому входу, которые находятся не в "дефолтном" (OFF) состоянии.