Плагин MegaD
-
Это нормально. CNT - это счетчик количества замыканий/размыканий контакта. В MegaD все входы работают так и на сервер отсылается сообщение с cnt. Вот почему iH это не обрабатывает? Вот это вопрос. Вы расширения прописали?
Причем у вас в config контроллера получается (вижу по логу), что имя скрипта не задано. Значит расширение должно выглядеть как /?pt=30&ext0=1
Вроде всё так.
-
Вроде всё так.
расширения.png
Значит вопрос к intrapro - почему нет iH get/set? Может все же дело в не числовых номерах портов?
МАМОНТ, попробуйте задать номер порта числовой, например, 320,321,322 и т.д. И то же прописать в расширениях 320=ON/OFF.
-
Может все же дело в не числовых номерах портов?
Да, вы правы, здесь были предусмотрены только числовые порты :(. С числовыми все должно работать.
Но если планируется получать данные и через опрос, то не нужно переделывать нумерацию каналов, поправим и добавим разбор при опросе
И, да, подключив MCP к MegaD обнаружил интересную вещь, которой раньше не было - пока к порту расширителя, у которого в плагине стоит время опроса, но не привязано ни одно устройство плагин не опрашивает этот порт! Как только привязываю к порту устройство, так плагин начинает опрашивать порт. Чтобы было понятнее - вот так плагин не опрашивает порт, на котором висит MCP:
Да, это так. И относится не только к порту расширения, а к любому каналу - если нет привязки, порт не опрашивается. Для экономии
Единственное что будет, если сработает одновременно два канала расширителя и MegaD пришлет ?pt=32&ext0=1&ext1=1???
А это возможный вариант? Если да, то нужно будет устанавливать флаг в расширении, что надо продолжать перебор входящих:
/?pt=32&ext0=* 32_0=%ext0% и продолжаем перебирать /?pt=32&ext1=* 32_1=%ext1% .. /?pt=32&ext16=* 32_16=%ext16%
-
Да, это так. И относится не только к порту расширения, а к любому каналу - если нет привязки, порт не опрашивается. Для экономии
С точки зрения отладки - не очень удобно. Проще время опроса обнулять чтобы не было опроса.
А это возможный вариант? Если да, то нужно будет устанавливать флаг в расширении, что надо продолжать перебор входящих:
> /?pt=32&ext0=* 32_0=%ext0% и продолжаем перебирать > /?pt=32&ext1=* 32_1=%ext1% > .. > /?pt=32&ext16=* 32_16=%ext16% > >
Теоретически да. Например, сработка двух смежных датчиков движения. Больше примеров придумать не могу
-
Вроде всё так.
Значит вопрос к intrapro - почему нет iH get/set? Может все же дело в не числовых номерах портов?
МАМОНТ, попробуйте задать номер порта числовой, например, 320,321,322 и т.д. И то же прописать в расширениях 320=ON/OFF.
Опубликован новый релиз плагина v1.1.13
1. Добавлен разбор подканалов в формате значений через символ ";" - для MCP
Обратите внимание! Поскольку в других местах подканалы нумеруются с 1, здесь сохранен такой же подход: 32_1,…32_16
То есть ext0 - это 32_1. Но можно переделать, если сильно неудобно
2. В расширениях в поле "Установить состояния каналов" принимаются нечисловые каналы: 32_1=ON работает
Также, как и раньше, для сокращения строк можно использовать синтаксис присваивания с подстановкой:
/?pt=32&ext0=* - принимается любое значение в параметр ext0 32_1=%ext0% - значение будет подставлено в состояние канала
3. Добавлено свойство ip в объект для передачи сценарию
Единственное что будет, если сработает одновременно два канала расширителя и MegaD пришлет ?pt=32&ext0=1&ext1=1???
Этот вопрос пока не прорабатывался.
-
Опубликован новый релиз плагина v1.1.13
1. Добавлен разбор подканалов в формате значений через символ ";" - для MCP
Обратите внимание! Поскольку в других местах подканалы нумеруются с 1, здесь сохранен такой же подход: 32_1,…32_16
То есть ext0 - это 32_1. Но можно переделать, если сильно неудобно
Обновил плагин. При опросе со стороны сервера плагин отрабатывает ожидаемо.
Реальное срабатывание портов MCP23017 смогу проверить в понедельник.Кстати, при детальном (после порции пенного ) рассмотрении отладки, нашел таки у себя ошибку. :oops:
Ну почему 30 порт….... :oops:
-
Коллеги, случайно удалось поймать перезапуск плагина. Во вложении лог обмена данными между плагином megad и контроллером. Тут представлено два цикла - обмен данными сразу после перезагрузки контроллера и обмен данными после запуска плагина megad. По сути полностью прошел цикл опроса контроллера (окончание цикла - это опрос MCP на pt=33) - и в первом и во втором случае.
Мне очень не нравится, что плагин в какой-то момент перезагружается. Как Вы считаете (судя по логу) что происходит?
01.04 10:16:35.365 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?st=1 01.04 10:16:35.367 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:35.376 megad2: { type: 'startscene', id: 'MegaD_ST_to_Log', arg: '{"dev":"MegaD-2561-22 (Датчики #1)"}' } 01.04 10:16:35.377 IH: startscene MegaD_ST_to_Log 01.04 10:16:35.420 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=0&cnt=1 01.04 10:16:35.420 IH: get [{"id":"0","value":"1"}] 01.04 10:16:35.422 IH: set {"SGERKON1_01":{"dval":0,"err":0}} 01.04 10:16:35.422 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:35.422 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=1&cnt=1 01.04 10:16:35.422 IH: get [{"id":"1","value":"1"}] 01.04 10:16:35.423 IH: set {"SGERKON1_02":{"dval":0,"err":0}} 01.04 10:16:35.423 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:35.484 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=7&v=2450&dir=1 01.04 10:16:35.485 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:35.560 megad2: 01.04 10:16:35.561 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cf=7&stime=10:16:35:1 01.04 10:16:35.584 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:35.584 megad2: body: [Back](/sec/?cf=1) <form action="/sec/">Cur time: 10:16:35 [1] Set time: SCL: SDA: T: Act: T: Act: T: Act: T: Act: T: Act: </form> 01.04 10:16:35.585 IH: get [] 01.04 10:16:35.585 IH: set {} 01.04 10:16:35.762 megad2: 01.04 10:16:35.763 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cmd=all 01.04 10:16:35.964 megad2: 01.04 10:16:35.964 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 01.04 10:16:36.165 megad2: 01.04 10:16:36.166 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 01.04 10:16:36.173 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.173 megad2: body: temp:24.00 01.04 10:16:36.351 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=0&m=2&cnt=1&mdid= 01.04 10:16:36.352 IH: get [{"id":"0","value":"1"}] 01.04 10:16:36.353 IH: set {"SGERKON1_01":{"dval":0,"err":0}} 01.04 10:16:36.353 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:36.360 megad2: 192.168.11.22 => localhost:11022 HTTP GET /mod_megad.php?pt=1&m=2&cnt=1&mdid= 01.04 10:16:36.361 IH: get [{"id":"1","value":"1"}] 01.04 10:16:36.361 IH: set {"SGERKON1_02":{"dval":0,"err":0}} 01.04 10:16:36.362 megad2: 192.168.11.22 <= localhost:11022 01.04 10:16:36.366 megad2: 01.04 10:16:36.366 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 01.04 10:16:36.374 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.375 megad2: body: temp:24.43 01.04 10:16:36.566 megad2: 01.04 10:16:36.567 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 01.04 10:16:36.574 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.574 megad2: body: temp:24.25 01.04 10:16:36.768 megad2: 01.04 10:16:36.769 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:16:36.826 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.827 megad2: body: 24.91 01.04 10:16:36.828 IH: get [{"id":"30_1","value":"24.91"}] 01.04 10:16:36.830 IH: set {"STEMP1_01":{"aval":"24.91","err":0}} 01.04 10:16:36.969 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.970 megad2: 01.04 10:16:36.971 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 01.04 10:16:36.973 megad2: body: temp:24.50 01.04 10:16:36.997 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.998 megad2: body: 32.23 01.04 10:16:36.998 IH: get [{"id":"30_2","value":"32.23"}] 01.04 10:16:36.999 IH: set {"SHUMIDITY1_01":{"aval":"32.23","err":0}} 01.04 10:16:37.171 megad2: 01.04 10:16:37.172 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=31&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:16:37.180 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:37.180 megad2: body: NA 01.04 10:16:37.373 megad2: 01.04 10:16:37.373 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=31&scl=35&i2c_dev=htu21d 01.04 10:16:37.382 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:37.383 megad2: body: NA 01.04 10:16:37.574 megad2: 01.04 10:16:37.575 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=32&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:16:37.583 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:37.583 megad2: body: NA 01.04 10:16:37.775 megad2: 01.04 10:16:37.775 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=32&scl=35&i2c_dev=htu21d 01.04 10:16:37.783 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:37.784 megad2: body: NA 01.04 10:16:37.976 megad2: 01.04 10:16:37.976 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 01.04 10:16:37.986 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:37.987 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 01.04 10:16:37.988 IH: get [{"id":"Q33_1","value":"0"}] 01.04 10:16:37.988 IH: set {"SENSOR6":{"dval":"0","err":0}} 01.04 10:17:05.766 megad2: localhost <=> 192.168.11.22 Socket timed out - abort! 01.04 10:17:05.768 megad2: localhost <= 192.168.11.22 Error ECONNRESET. Stopped. 01.04 10:17:05.772 IH: Plugin exit with code 3 01.04 10:17:05.778 IH: restart timer 60 01.04 10:18:06.356 IH: Run /var/lib/intrahouse-c/plugins/megad/megad.js megad2 01.04 10:18:06.573 megad2: MegaD plugin has started. 01.04 10:18:06.603 megad2: Listen server start 01.04 10:18:06.610 megad2: Listening localhost:11022 01.04 10:18:06.814 megad2: 01.04 10:18:06.814 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cf=7&stime=10:18:06:1 01.04 10:18:06.852 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:06.858 megad2: body: [Back](/sec/?cf=1) <form action="/sec/">Cur time: 10:18:06 [1] Set time: SCL: SDA: T: Act: T: Act: T: Act: T: Act: T: Act: </form> 01.04 10:18:06.860 IH: get [] 01.04 10:18:06.861 IH: set {} 01.04 10:18:07.029 megad2: 01.04 10:18:07.030 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cmd=all 01.04 10:18:07.042 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:07.043 megad2: body: ON/1;ON/1;temp:NA;OFF;OFF;OFF;OFF;temp:24.43;OFF/0;temp:23.93;temp:24.43;OFF;OFF;OFF;OFF;OFF;OFF;temp:24.18;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;OFF;ON/2;MCP;;OFF;OFF;OFF 01.04 10:18:07.045 IH: get [{"id":"0","value":"1"},{"id":"1","value":"1"},{"id":"3","value":"0"},{"id":"4","value":"0"},{"id":"5","value":"0"},{"id":"6","value":"0"},{"id":"8","value":"0"}] 01.04 10:18:07.045 IH: set {"SGERKON1_01":{"dval":0,"err":0},"SGERKON1_02":{"dval":0,"err":0},"SMOTION1_02":{"dval":"0","err":0},"SFIRE1_01":{"dval":"0","err":0},"SFIRE1_02":{"dval":"0","err":0},"SLEAKAGE1_01":{"dval":"0","err":0},"BUTTON1_01":{"dval":"0","err":0}} 01.04 10:18:07.232 megad2: 01.04 10:18:07.232 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 01.04 10:18:07.239 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:07.240 megad2: body: temp:24.43 01.04 10:18:07.433 megad2: 01.04 10:18:07.433 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 01.04 10:18:07.441 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:07.441 megad2: body: temp:23.93 01.04 10:18:07.634 megad2: 01.04 10:18:07.635 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 01.04 10:18:07.642 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:07.643 megad2: body: temp:24.43 01.04 10:18:07.835 megad2: 01.04 10:18:07.835 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 01.04 10:18:07.842 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:07.843 megad2: body: temp:24.18 01.04 10:18:08.036 megad2: 01.04 10:18:08.036 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:18:08.094 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:08.095 megad2: body: 24.80 01.04 10:18:08.095 IH: get [{"id":"30_1","value":"24.8"}] 01.04 10:18:08.095 IH: set {"STEMP1_01":{"aval":"24.8","err":0}} 01.04 10:18:08.236 megad2: 01.04 10:18:08.240 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 01.04 10:18:08.263 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:08.264 megad2: body: 32.37 01.04 10:18:08.264 IH: get [{"id":"30_2","value":"32.37"}] 01.04 10:18:08.265 IH: set {"SHUMIDITY1_01":{"aval":"32.37","err":0}} 01.04 10:18:08.438 megad2: 01.04 10:18:08.438 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=31&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:18:08.447 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:08.447 megad2: body: NA 01.04 10:18:08.639 megad2: 01.04 10:18:08.640 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=31&scl=35&i2c_dev=htu21d 01.04 10:18:08.648 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:08.649 megad2: body: NA 01.04 10:18:08.840 megad2: 01.04 10:18:08.840 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=32&scl=35&i2c_dev=htu21d&i2c_par=1 01.04 10:18:08.849 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:08.850 megad2: body: NA 01.04 10:18:09.041 megad2: 01.04 10:18:09.041 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=32&scl=35&i2c_dev=htu21d 01.04 10:18:09.049 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:09.050 megad2: body: NA 01.04 10:18:09.242 megad2: 01.04 10:18:09.243 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 01.04 10:18:09.253 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:18:09.254 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 01.04 10:18:09.255 IH: get [{"id":"Q33_1","value":"0"}] 01.04 10:18:09.255 IH: set {"SENSOR6":{"dval":"0","err":0}}
-
Коллеги, случайно удалось поймать перезапуск плагина. Во вложении лог обмена данными между плагином megad и контроллером. Тут представлено два цикла - обмен данными сразу после перезагрузки контроллера и обмен данными после запуска плагина megad. По сути полностью прошел цикл опроса контроллера (окончание цикла - это опрос MCP на pt=33) - и в первом и во втором случае.
Мне очень не нравится, что плагин в какой-то момент перезагружается. Как Вы считаете (судя по логу) что происходит?
Здесь все объяснимо:
Контроллер по какой-то причине не отвечает на два запроса. Но начиная с третьего начинает отвечать.
Опрос идет асинхронно. Для каждого запроса взводится таймаут - 30 сек.
01.04 10:16:35.763 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cmd=all 01.04 10:16:35.964 megad2: 01.04 10:16:35.964 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 01.04 10:16:36.165 megad2: 01.04 10:16:36.166 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 01.04 10:16:36.173 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 01.04 10:16:36.173 megad2: body: temp:24.00
Через 30 секунд без ответа (10:16:35.763+30 сек= 10:17:05.766) фиксируется, что ждать нечего.
Поскольку раньше контроллер зависал, при таких ошибках сделана перезагрузка плагина.
01.04 10:17:05.766 megad2: localhost <=> 192.168.11.22 Socket timed out - abort! 01.04 10:17:05.768 megad2: localhost <= 192.168.11.22 Error ECONNRESET. Stopped. 01.04 10:17:05.772 IH: Plugin exit with code 3
Если сейчас контроллер не виснет, а перезагружается сам, можно эту перезагрузку плагина убрать, просто сбросить запрос и игнорировать.
Для этого предусмотрен флаг stopOnError - попробуйте его установить в false
Модуль plugin.js, строки 146-158
getReqObj(index) { if (index >= 0) { return { url: this.reqarr[index].url, adr: this.reqarr[index].adr, host: this.params.host, port: this.params.port, stopOnError: true, // строка 154 -> false index }; } },
Плагин будет просто сбрасывать запросы без ответа, как и было в старой версии.
Почему контроллер позволяет себе игнорировать запросы - уже другой вопрос.
Можно перестать думать о контроллере MegaD как об асинхронном устройстве и передавать следующий запрос только при получении ответа на предыдущий. В этом случае производительность может ухудшиться (остановимся сразу после запроса cmd=all), но зато можно четко фиксировать момент отказа.
-
Коллеги, обратите внимание, что в свежей прошивке Меги добавился новый параметр.
Мега сообщает серверу об изменении состояния выходов, если изменение не было инициировано внешним запросом, через параметр "v"
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Непрочитанное сообщение Andrey_B » Сегодня, 15:19
https://ab-log.ru/files/File/megad-2561 … a1-hex.zip
- Добавлена функция отправки на сервер сообщений об изменении состояния выходов.
Эта функция срабатывает только в том случае, если порты переключаются самим контроллером: Act, Cron, Program.
Контроллер не будет отправлять на сервер информацию об изменениях, если порты переключались внешним запросом, так как это создаст лишний трафик и может в некоторых случаях снизить производительность.
На сервер передается параметр "v". Пример, когда P7 включен: pt=7&v=1
Первоисточник тут:
https://ab-log.ru/forum/viewtopic.php?p=36252#p36252
Соответственно, надо добавить обработку этого параметра в Ваших настройках intraHouse, если ставите свежую прошивку.
-
Коллеги.
Если кто зарегистрирован на форуме ab-log, прошу поддержать тему https://www.ab-log.ru/forum/viewtopic.php?f=1&t=1580
Задавать такой опрос на нашем форуме я не стал. Здесь пользователи intraHouse.
А на ab-log посчитал вопрос уместным.
Для чего нам это нужно?
Во-первых нам интересно это сравнение с точки зрения потребностей пользователей и дальнейшего развития системы.
Во-вторых многие просто не знают про возможности системы intraHouse.
-
Не получается настроить датчики температуры 1Wire. Подсоединены к порту 30, выдают значения температуры в device List ee9561131602:21.37;ff199f311801:21.12 В плагине нестроен канал 30_ee9561131602, строка запроса /%pwd%/?pt=%adr%&cmd=list
Показаний температуры нет, в отладчике выдает
13.05 09:12:33.204 megad1: localhost => 192.168.0.201 HTTP GET /sec/?pt=30&cmd=list 13.05 09:12:33.205 megad1: Http request error: Request path contains unescaped characters ````В чем может быть проблема?
-
@gis:
Не получается настроить датчики температуры 1Wire. Подсоединены к порту 30, выдают значения температуры в device List ee9561131602:21.37;ff199f311801:21.12 В плагине нестроен канал 30_ee9561131602, строка запроса /%pwd%/?pt=%adr%&cmd=list
Показаний температуры нет, в отладчике выдает
> 13.05 09:12:33.204 megad1: localhost => 192.168.0.201 HTTP GET /sec/?pt=30&cmd=list > 13.05 09:12:33.205 megad1: Http request error: Request path contains unescaped characters > ````В чем может быть проблема? Не уходит запрос на контроллер, тормозится на уровне плагина. А другие каналы на этом плагине (контроллере) работают? Проверьте, в начале и конце запроса не должно быть пробелов
-
Проверьте, в начале и конце запроса не должно быть пробелов
Спасибо, был в начале пробел - сейчас все заработало.
-
Коллеги! Обратил внимание что не все каналы MegaD "поддерживают" включенную функцию обработки значений. В моем примере она такая:
function (val, depo) { var result; if (!depo.res) depo.res = []; depo.res.push(val); if (depo.res.length < 5) //Нужны еще измерения, значение не возвращаем return; else { depo.res.sort(); result = ((depo.res[1] + depo.res[2] + depo.res[3]) / 3).toFixed(2); } depo.res = []; //Перед следующими измерениями сбрасываем массив return result; //Возвращаем значение }
Вот пример лога когда данные от DS18B20, висящие на отдельном порте контроллера, "проходят" через функцию обработки значений (только после пятого измерения данные присваиваются устройству). А DS18B20 на шине контроллера - не "проходят" через функцию - каждую минуту устройству присваиваются данные:
27.05 10:59:55.112 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=30&cmd=get 27.05 10:59:55.120 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 10:59:55.120 megad1: body: temp:8.75 27.05 10:59:55.312 megad1: 27.05 10:59:55.312 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=31&cmd=get 27.05 10:59:55.320 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 10:59:55.320 megad1: body: temp:3.93 27.05 10:59:55.514 megad1: 27.05 10:59:55.514 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=33&cmd=list 27.05 10:59:55.574 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 10:59:55.575 megad1: body: ff48a6701605:6.12;ff779e701604:3.56 27.05 10:59:55.575 IH: set {"ST_SEWERAGE4":{"aval":6.12,"err":0},"ST_SEWERAGE5":{"aval":3.56,"err":0}} 27.05 11:00:55.280 megad1: 27.05 11:00:55.280 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=30&cmd=get 27.05 11:00:55.288 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:00:55.288 megad1: body: temp:8.75 27.05 11:00:55.481 megad1: 27.05 11:00:55.482 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=31&cmd=get 27.05 11:00:55.490 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:00:55.491 megad1: body: temp:3.93 27.05 11:00:55.683 megad1: 27.05 11:00:55.683 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=33&cmd=list 27.05 11:00:55.743 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:00:55.744 megad1: body: ff48a6701605:6.12;ff779e701604:3.56 27.05 11:00:55.744 IH: set {"ST_SEWERAGE4":{"aval":6.12,"err":0},"ST_SEWERAGE5":{"aval":3.56,"err":0}} 27.05 11:01:55.446 megad1: 27.05 11:01:55.446 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=30&cmd=get 27.05 11:01:55.454 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:01:55.455 megad1: body: temp:8.75 27.05 11:01:55.647 megad1: 27.05 11:01:55.648 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=31&cmd=get 27.05 11:01:55.656 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:01:55.657 megad1: body: temp:3.93 27.05 11:01:55.847 megad1: 27.05 11:01:55.848 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=33&cmd=list 27.05 11:01:55.908 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:01:55.909 megad1: body: ff48a6701605:6.12;ff779e701604:3.56 27.05 11:01:55.909 IH: set {"ST_SEWERAGE4":{"aval":6.12,"err":0},"ST_SEWERAGE5":{"aval":3.56,"err":0}} 27.05 11:02:55.612 megad1: 27.05 11:02:55.613 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=30&cmd=get 27.05 11:02:55.621 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:02:55.622 megad1: body: temp:8.81 27.05 11:02:55.814 megad1: 27.05 11:02:55.814 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=31&cmd=get 27.05 11:02:55.822 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:02:55.823 megad1: body: temp:3.93 27.05 11:02:56.015 megad1: 27.05 11:02:56.016 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=33&cmd=list 27.05 11:02:56.076 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:02:56.077 megad1: body: ff48a6701605:6.12;ff779e701604:3.56 27.05 11:02:56.077 IH: set {"ST_SEWERAGE4":{"aval":6.12,"err":0},"ST_SEWERAGE5":{"aval":3.56,"err":0}} 27.05 11:03:55.785 megad1: 27.05 11:03:55.785 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=30&cmd=get 27.05 11:03:55.794 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:03:55.794 megad1: body: temp:8.81 27.05 11:03:55.796 IH: set {"ST_SEWERAGE1":{"aval":8.77,"err":0}} 27.05 11:03:55.986 megad1: 27.05 11:03:55.987 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=31&cmd=get 27.05 11:03:55.994 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:03:55.995 megad1: body: temp:3.93 27.05 11:03:55.995 IH: set {"ST_SEWERAGE2":{"aval":3.93,"err":0}} 27.05 11:03:56.187 megad1: 27.05 11:03:56.187 megad1: localhost => 192.168.11.21 HTTP GET /sec/?pt=33&cmd=list 27.05 11:03:56.247 megad1: localhost <= 192.168.11.21 response: statusCode=200 contentType = text/html 27.05 11:03:56.247 megad1: body: ff48a6701605:6.12;ff779e701604:3.50 27.05 11:03:56.248 IH: set {"ST_SEWERAGE4":{"aval":6.12,"err":0},"ST_SEWERAGE5":{"aval":3.5,"err":0}}
То же самое с I2C-датчиками, например:
27.05 11:18:08.221 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=30&cmd=get 27.05 11:18:08.228 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:18:08.228 megad4: body: temp:NA 27.05 11:18:08.423 megad4: 27.05 11:18:08.423 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 27.05 11:18:08.505 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:18:08.506 megad4: body: e46477910b02:25.50;666877911400:25.12;35e977910902:24.93 27.05 11:18:08.508 IH: set {"ST_HEATING_SYS_02":{"aval":25.5,"err":0},"ST_HEATING_SYS_03":{"aval":25.12,"err":0},"ST_HEATING_SYS_01":{"aval":24.93,"err":0}} 27.05 11:18:08.623 megad4: 27.05 11:18:08.623 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 27.05 11:18:08.641 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:18:08.642 megad4: body: 15.99 27.05 11:18:08.643 IH: set {"STEMP4_01":{"aval":15.99,"err":0}} 27.05 11:18:08.825 megad4: 27.05 11:18:08.826 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=2 27.05 11:18:08.842 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:18:08.842 megad4: body: 39.793 27.05 11:18:08.843 IH: set {"SHUMIDITY4_01":{"aval":39.793,"err":0}} 27.05 11:18:09.027 megad4: 27.05 11:18:09.027 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280 27.05 11:18:09.044 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:18:09.044 megad4: body: 756.36 27.05 11:18:09.044 IH: set {"SPRESSURE4_01":{"aval":756.36,"err":0}} 27.05 11:19:08.384 megad4: 27.05 11:19:08.384 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=30&cmd=get 27.05 11:19:08.390 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:19:08.391 megad4: body: temp:NA 27.05 11:19:08.587 megad4: 27.05 11:19:08.587 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=31&cmd=list 27.05 11:19:08.670 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:19:08.671 megad4: body: e46477910b02:25.50;666877911400:25.12;35e977910902:25.00 27.05 11:19:08.671 IH: set {"ST_HEATING_SYS_02":{"aval":25.5,"err":0},"ST_HEATING_SYS_03":{"aval":25.12,"err":0},"ST_HEATING_SYS_01":{"aval":25,"err":0}} 27.05 11:19:08.788 megad4: 27.05 11:19:08.788 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=1 27.05 11:19:08.806 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:19:08.807 megad4: body: 16.01 27.05 11:19:08.807 IH: set {"STEMP4_01":{"aval":16.01,"err":0}} 27.05 11:19:08.989 megad4: 27.05 11:19:08.989 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280&i2c_par=2 27.05 11:19:09.006 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:19:09.007 megad4: body: 39.969 27.05 11:19:09.008 IH: set {"SHUMIDITY4_01":{"aval":39.969,"err":0}} 27.05 11:19:09.190 megad4: 27.05 11:19:09.191 megad4: localhost => 192.168.11.24 HTTP GET /sec/?pt=34/?pt=34&scl=35&i2c_dev=bmx280 27.05 11:19:09.208 megad4: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 27.05 11:19:09.208 megad4: body: 756.37 27.05 11:19:09.209 IH: set {"SPRESSURE4_01":{"aval":756.37,"err":0}}
Еще пример (такое ощущение, что это работает только для каналов MegaD в режиме 1W-DSen…правда плагину все равно на конфигурацию портов контроллера):
27.05 11:36:05.466 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 27.05 11:36:05.474 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:05.475 megad2: body: temp:24.62 27.05 11:36:05.667 megad2: 27.05 11:36:05.668 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 27.05 11:36:05.674 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:05.675 megad2: body: temp:24.56 27.05 11:36:05.869 megad2: 27.05 11:36:05.870 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 27.05 11:36:05.876 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:05.877 megad2: body: temp:25.18 27.05 11:36:06.070 megad2: 27.05 11:36:06.071 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 27.05 11:36:06.078 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:06.078 megad2: body: temp:24.00 27.05 11:36:06.271 megad2: 27.05 11:36:06.272 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 27.05 11:36:06.330 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:06.330 megad2: body: 24.87 27.05 11:36:06.331 IH: set {"STEMP1_01":{"aval":24.87,"err":0}} 27.05 11:36:06.473 megad2: 27.05 11:36:06.473 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 27.05 11:36:06.499 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:06.500 megad2: body: 37.28 27.05 11:36:06.501 IH: set {"SHUMIDITY1_01":{"aval":37.28,"err":0}} 27.05 11:36:06.675 megad2: 27.05 11:36:06.675 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 27.05 11:36:06.685 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:36:06.685 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 27.05 11:36:06.686 IH: set {"SENSOR6":{"dval":0,"err":0}} 27.05 11:37:05.643 megad2: 27.05 11:37:05.643 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 27.05 11:37:05.650 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:05.651 megad2: body: temp:24.62 27.05 11:37:05.845 megad2: 27.05 11:37:05.845 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 27.05 11:37:05.853 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:05.854 megad2: body: temp:24.56 27.05 11:37:06.046 megad2: 27.05 11:37:06.046 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 27.05 11:37:06.053 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:06.054 megad2: body: temp:25.12 27.05 11:37:06.246 megad2: 27.05 11:37:06.247 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 27.05 11:37:06.254 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:06.254 megad2: body: temp:24.00 27.05 11:37:06.447 megad2: 27.05 11:37:06.448 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 27.05 11:37:06.505 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:06.505 megad2: body: 24.87 27.05 11:37:06.506 IH: set {"STEMP1_01":{"aval":24.87,"err":0}} 27.05 11:37:06.649 megad2: 27.05 11:37:06.649 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 27.05 11:37:06.675 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:06.676 megad2: body: 37.28 27.05 11:37:06.676 IH: set {"SHUMIDITY1_01":{"aval":37.28,"err":0}} 27.05 11:37:06.850 megad2: 27.05 11:37:06.850 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 27.05 11:37:06.860 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:37:06.860 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 27.05 11:37:06.861 IH: set {"SENSOR6":{"dval":0,"err":0}} 27.05 11:38:05.821 megad2: 27.05 11:38:05.821 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 27.05 11:38:05.828 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:05.829 megad2: body: temp:24.62 27.05 11:38:06.023 megad2: 27.05 11:38:06.023 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 27.05 11:38:06.030 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:06.031 megad2: body: temp:24.56 27.05 11:38:06.225 megad2: 27.05 11:38:06.226 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 27.05 11:38:06.233 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:06.233 megad2: body: temp:25.12 27.05 11:38:06.426 megad2: 27.05 11:38:06.427 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 27.05 11:38:06.435 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:06.436 megad2: body: temp:24.00 27.05 11:38:06.627 megad2: 27.05 11:38:06.628 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 27.05 11:38:06.684 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:06.685 megad2: body: 24.87 27.05 11:38:06.686 IH: set {"STEMP1_01":{"aval":24.87,"err":0}} 27.05 11:38:06.828 megad2: 27.05 11:38:06.828 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 27.05 11:38:06.855 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:06.855 megad2: body: 37.30 27.05 11:38:06.856 IH: set {"SHUMIDITY1_01":{"aval":37.3,"err":0}} 27.05 11:38:07.030 megad2: 27.05 11:38:07.030 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 27.05 11:38:07.040 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:38:07.041 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 27.05 11:38:07.042 IH: set {"SENSOR6":{"dval":0,"err":0}} 27.05 11:39:06.009 megad2: 27.05 11:39:06.010 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=7&cmd=get 27.05 11:39:06.016 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:06.016 megad2: body: temp:24.62 27.05 11:39:06.019 IH: set {"ST_HEATING1_02":{"aval":24.62,"err":0}} 27.05 11:39:06.210 megad2: 27.05 11:39:06.210 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=9&cmd=get 27.05 11:39:06.217 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:06.218 megad2: body: temp:24.56 27.05 11:39:06.219 IH: set {"ST_HEATING1_03":{"aval":24.56,"err":0}} 27.05 11:39:06.411 megad2: 27.05 11:39:06.411 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=10&cmd=get 27.05 11:39:06.418 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:06.419 megad2: body: temp:25.12 27.05 11:39:06.420 IH: set {"ST_HEATING1_01":{"aval":25.14,"err":0}} 27.05 11:39:06.613 megad2: 27.05 11:39:06.613 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=17&cmd=get 27.05 11:39:06.620 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:06.621 megad2: body: temp:24.00 27.05 11:39:06.622 IH: set {"ST_HEATING1_07":{"aval":24,"err":0}} 27.05 11:39:06.814 megad2: 27.05 11:39:06.815 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 27.05 11:39:06.873 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:06.874 megad2: body: 24.86 27.05 11:39:06.874 IH: set {"STEMP1_01":{"aval":24.86,"err":0}} 27.05 11:39:07.016 megad2: 27.05 11:39:07.016 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 27.05 11:39:07.043 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:07.044 megad2: body: 37.30 27.05 11:39:07.044 IH: set {"SHUMIDITY1_01":{"aval":37.3,"err":0}} 27.05 11:39:07.217 megad2: 27.05 11:39:07.217 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=33&cmd=get 27.05 11:39:07.227 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 27.05 11:39:07.228 megad2: body: OFF;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON 27.05 11:39:07.229 IH: set {"SENSOR6":{"dval":0,"err":0}}
-
@Pulkin:
Привет.
Никак не получается законнектить IH и контроллер ab-log
Система установлена на Raspberry Pi B+, контроллер подключен по LAN.
После запуска плагин останавливается через 5 секунд, в отладчике вот такая информация:
07.06 11:10:53.285 IH: Run /var/lib/intrahouse-c/plugins/megad/megad.js megad1
07.06 11:10:53.993 megad1: MegaD plugin has started.
07.06 11:10:54.020 megad1: Listen server start
07.06 11:10:54.046 megad1: Listening localhost:8081
07.06 11:10:54.256 megad1:
07.06 11:10:54.257 megad1: localhost => 192.168.0.21 HTTP GET /sec/?cmd=all
07.06 11:10:57.383 megad1: localhost <= 192.168.0.21 Error EHOSTUNREACH. Stopped.
07.06 11:10:57.397 IH: Plugin exit with code 3
07.06 11:10:57.398 IH: restart timer 5
Чего только не пробовал, но вылечить не получается. Спасайте!)
Raspberry контроллер не видит
Попробуйте с консоли Raspberry пинговать 192.168.0.21
-
Вопрос.
У меня к меге подключены обычные выключатели, а не кнопки.
Они и так работают, конечно, во взаимодействии с мегой проблем нет.
В поле Act стоит 9:3, например, и выход 9 повторяет состояние выключателя на входе.
А во взаимодействии с сервером слишком много вариантов.
вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.
Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода. В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?
Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.
Как правильно?
-
Вопрос.
У меня к меге подключены обычные выключатели, а не кнопки.
Они и так работают, конечно, во взаимодействии с мегой проблем нет.
В поле Act стоит 9:3, например, и выход 9 повторяет состояние выключателя на входе.
А во взаимодействии с сервером слишком много вариантов.
вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.
Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода. В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?
Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.
Как правильно?
Не бывает слишком много вариантов в нашем многовариантном мире
И единственно правильного решения тоже нет. Все зависит от задачи
вариант 1.
Создать расширения, и в поле ответ поставить те же самые 9:3.
Этот вариант самый быстрый - и по скорости реакции, и по реализации
Ответ отправляется как response на request сервера.
Еще плюс - вход как устройство (и даже как канал) можно не создавать.
Этот вариант заточен на контроллер MegaD, который дает возможность передать команду в ответ на request о переключении состояния
Вариант 2.
Создать расширения, и мультисценарий, который в зависимости от состояния входа устанавливавет состояние выхода.
Здесь будет задержка на выполнение сценария (которая реально конечно не заметна)
Опять можно обойтись без создания устройства для входа. В сценарий передается тело запроса.
Логично использовать, если существуют какие-то условия для выполнения команды, которые нужно проверить сценарием
В этом случае поле "отправить в ответ" и "установить состояние каналов" в расширении оставить пустым?
Да. "отправить в ответ" - это отправить response на request сервера. Здесь команда на контроллер пойдет отдельным запросом,
И состояние выхода будет установлено как результат выполнения этой команды
Вариант 3.
Расширения не создавать, создать мультисценарий, запускающийся при изменении входа, и устанавливающий состояние выхода в соответствии с изменением.
Здесь придется создать для каждого входа устройство. Это универсальный вариант, не связанный с функционалом контроллера
-
В варианте 1. Сервер отобразит лампу включенной? Или что нужно настроить?
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
-
В варианте 1. Сервер отобразит лампу включенной? Или что нужно настроить?
Нужно "установить состояние каналов" для выхода:
Так как у вас команда 3, то номер выхода=%значение входа% , например, 7=%ext0% (зависит от входящего сообщения)
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
Сервер на любой запрос меги отвечает кодом 200. Он просто не передаст команду в ответ.
Из священного мануала:
<quote>> Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.
-
В варианте 2 и 3. В этом случае сервер не ответит на запрос меги, он отправит свою собственную команду. А что будет с полем Act у меги? Мега не дождется ответа, сделает то, что прописано в Act, а потом еще и команда от сервера прилетит?
Сервер на любой запрос меги отвечает кодом 200. Он просто не передаст команду в ответ.
Из священного мануала:
<quote>> Флажок (чекбокс) справа от поля Act определяет логику работы сценария. Если он не установлен (по умолчанию), то сценарий выполняется ТОЛЬКО если сервер не прописан, недоступен или HTTP-статус отличен от 200. Если флажок установлен, то сценарий выполняется всегда независимо от наличия сервера. Контроллер в этом случае будет сообщать на сервер о событиях, но его ответные команды в рамках одной TCP-сессии будут проигнорированы.Это не понятно.
Вот у меня флажок не стоял, сервер по-умолчанию отвечал 200, не посылая никаких команд, а свет таки включался. Только задержка была с секунду примерно.