Плагин MegaD
-
Во вкладке Обработка есть инверсия значений , но она что то не работает, Может корявые руки
-
Добрый день ВСЕМ!
скажите пжл кто нибудь к меге подкидывал расширители портов типа 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) состоянии.
-
Еще момент по видимому устройству плагина. Оно по умолчанию имеет 3 состояния - NOT ACTIVATED, STOP, RUN.
Хотелось бы чтобы когда плагин принудительно остановлен было состояние - STOP.
Когда КОНТРОЛЛЕР не отвечает (недоступен в сети), но плагин работает, то устройство было в состоянии - NOT ACTIVATED.
Ну и когда все работает в штатном режиме, то - RUN.
Сейчас если контроллер недоступен и плагин используется в проекте, то его устройство мигает STOP/RUN с периодичностью перезапуска плагина…в Berry оно было в состоянии STOP пока контроллер был недоступен.
Еще интересно что устройства плагинов не отображаются в списке устройств, хотя на мнемосхемы их вытащить можно.
-
Есть проблемка со скриптом управления температурой и megaD. Попробую описать. Если запускаем одновременно сервер и роутер, а роутер подвис. Температура сервере установлена 30. Т.к. датчика нет то сервер видит последнюю то есть например 28 и сервер дает команду, но устройства нет в сети. Батареи включается на интерфейсе. Перезагрузил роутер. Батарея включена на интересе дома. А по факту выход не активен. И так пока температура не подниматься выше 30 и снова упадёт. Как с этим бороться? Я так понимаю должна быть индикация аварии если устройства нет в сети.
-
Во вкладке Обработка есть инверсия значений , но она что то не работает, Может корявые руки
Господа, скажите работает инверсия или нет?
-
Во вкладке Обработка есть инверсия значений , но она что то не работает, Может корявые руки
Господа, скажите работает инверсия или нет?
Инверсия отрабатывается на уровне сервера при получении данных от плагина.
То есть Вы увидите инверсию, только если к каналу привязано устройство.
Например, на канале 2 привязан датчик SMOTION_100_1 с инверсией входного значения.
Если смотреть в отладчике : get=0 => set=1
-
А если актуатор на мегад, где галку надо поставить? У меня на экране вкл, а в мегад выкл, и наоборот.
-
А если актуатор на мегад, где галку надо поставить? У меня на экране вкл, а в мегад выкл, и наоборот.
Действительно, Вы правы, не работает инверсия для актуаторов
Поправим в следующем релизе.
-
А по моему вопросу есть решение. Или я не правильно описал проблему.
-
И ещё. Возник вопрос. Как управлять RGB лентой? Есть пример?
-
Есть проблемка со скриптом управления температурой и megaD. Попробую описать. Если запускаем одновременно сервер и роутер, а роутер подвис. Температура сервере установлена 30. Т.к. датчика нет то сервер видит последнюю то есть например 28 и сервер дает команду, но устройства нет в сети. Батареи включается на интерфейсе. Перезагрузил роутер. Батарея включена на интересе дома. А по факту выход не активен. И так пока температура не подниматься выше 30 и снова упадёт. Как с этим бороться? Я так понимаю должна быть индикация аварии если устройства нет в сети.
Вы правы, такая проблема есть.
Дело в том, что MegaD не дает feedback, т е не подтверждает операции переключения, поэтому применяется односторонняя (или оптимистичная :)) связь при управлении: при отправке команды считается, что команда выполнена.
Ситуацию усугубляет то, что в новом плагине MegaD не учитывается отсутствие связи при выполнении команды.
Планируется переработать плагин с учетом этой ситуации, а также включая поправки, которые предлагает Alex_Jet (по мере возможности).
Ориентировочно, после 10 ноября выпустим новый плагин.
По RGB - в Cherry виджет для визуализации RGB запланирован, но пока не сделан.
Я правильно понимаю, Вы хотите управлять RGB с MegaD, посылая команды на диммируемые выхода?
Пока можно управлять, диммируя каждый канал отдельно.
Или в MegaD есть какой-то новый механизм для RGB?