Плагин MegaD
-
@dev:
Без претензий, но меня смущает почему разработчики мегаД пошли таким путем, сообщение в cp886, вместо пробела _ а не %20, вроде как запросы идут по http, там близки такие вещи UTF8, encodeURIComponent
Разработчик ответил тут - https://www.ab-log.ru/forum/viewtopic.php?f=1&t=1195&sid=27b893a284a49a2abfcec7f75e5d6cb2&start=2480#p35049
Я так понимаю вся проблема - в экономии flash-памяти.
-
Доброе утро! А как на счет реализации диммера и управления RGB? Скоро будет?
Добрый вечер, будет точно в этом году
-
I2C каналы сейчас можно сделать …, но не происходит "обработки" данных в теле
...
Вот этого, действительно не хватает! Для всех I2C-девайсов есть "отдельный" запрос по каждому параметру, например, http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=1 таким образом считываемый параметр легко привязать к устройству. Не стоит делать реализацию (cmd=get), при которой надо парсить сразу все значения параметров (так выводится в веб-интерфейсе, когда датчик подключен к MegaD "нативно"), придумывая как их привязывать к каналам. Сейчас только, если надо, например, для канала 31 сделать 7 подканалов не единовременно, то они будут разбросаны по разным местам.
На гитхабе опубликован новый релиз 1.1.8 https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases
Попробуйте, там такие запросы отрабатываются.
Нужно назначить ID канала без привязки к порту, например: i2c_temp, i2c_31_temp, 310_temp - да как угодно, только чтобы начало адреса не было связано с портами 0-38, иначе плагин пытается вытащить данные из cmd=all строки.
Также в новом релизе добавлены параметры:
1. Отправлять время на контроллер - для опциональной отправки
Время отправляется при старте плагина и при получении st=1 от контроллера
2.Интервал отправки запросов (мсек)
И интересует более подробно п.4 - что это и зачем?
В новом релизе плагина изменен механизм отправки команд.
В предыдущей версии следующий запрос очереди опроса не отправлялся чаще 200 мсек, но пришедшая команда управления шла напрямую. Теперь все команды управления включаются в общую очередь - естественно в начало.
В новой версии также добавлена возможность настроить интервал отправки запросов (200 мсек по умолчанию).
То есть сейчас гарантируется, что обращения к контроллеру происходят не чаще заданного интервала, включая управление (получается не более 5 запросов в сек для 200 мсек)
Поскольку решил постепенно переходить на Cherry, то решил из нее делать хотя бы опрос датчиков без прослушки http-трапов от MegaD.
Почему? Слушающий сервер ведь абсолютно как в Berry. Или?
Еще надо:
1. Опционально (check box при настройке плагина) в журнал делать записи о перезагрузке MegaD (st=1).
2. Адекватное поведение виджета плагина. Если остановлен, то STOPPED. Если в работе и MegaD нормально отвечает, то RUN. Если MegaD не отвечает, то NOT ACTIVATED до тех пор пока контроллер не ответит (сейчас если контроллера нет в сети, но плагин запущен происходит дергание STOPPED/RUN).
Это относится к серверной части, обновление сделаем после праздников - возможно к середине месяца.
-
Обновления, связанные с каналами MegaD-2561 в режиме DSEN/1WBUS и OUT/DS2413. На оба таких канала можно одновременно подключить как DS18B20, так и DS2413 - по несколько штук в том числе! В общем случае, при запросе вида http://192.168.0.14/sec/?pt=32&cmd=list будет выдано следующее:
> aad6a070000:25.43;79c439000000:OFF/ON >
Отличия настроек каналов DSEN/1WBUS и OUT/DS2413:
1. DSEN/1WBUS - контроллер сам посылает запрос на конвертацию температуры. Поэтому при переходе по ссылке Device List (или запросе http://192.168.0.14/sec/?pt=32&cmd=list) по адресам датчиков температуры будет выдано действительное значение температур, а по адресам DS2413 - состояние их портов:
> aad6a070000:25.43;85a56a070000:32.43;79c439000000:OFF/OFF;c6c439000000:ON/ON >
2. OUT/DS2413 - контроллер не посылает запрос на конвертацию температуры, а в веб-интерфейсе контроллера есть кнопки ON/OFF для включения/отключения портов А и В DS2413. При этом если подключено несколько DS2413, то из веб-интерфейса контроллера будут включаться/выключаться порты всех DS2413 (соответственно - А или В). Раздельно можно включать только с помощью сервера - обращаясь к контроллеру с конкретным адресом:
> http://192.168.0.14/sec/?cmd=32A:1&addr=c6c439000000 >
При переходе по ссылке Device List (или запросе http://192.168.0.14/sec/?pt=32&cmd=list) по адресам датчиков температуры будет выдано значение температур до их конвертации, а по адресам DS2413 - состояние их портов:
> aad6a070000:85.00;85a56a070000:85.00;79c439000000:OFF/OFF;c6c439000000:ON/ON >
Для данного случае чтобы получить действительные значения температур с датчиков необходимо перед считыванием состояния порта посылать команду на конвертацию температуры:
> http://192.168.0.14/sec/?pt=32&cmd=conv >
Поскольку данные к каналам будут привязываться по адресам устройств, а запрос необходимо выполнять всего лишь раз, то логично в одном канале производить запрос на конвертацию температур, а в другом запрос по значениям. То есть для всей кучки из 100500 датчиков, подключенных к порту MegaD-2561 с режимом OUT/DS2413 нужно будет два запроса - на конвертацию температуры и запрос значений.
На гитхабе опубликован новый релиз плагина с поддержкой DS2413:
https://github.com/intrahouseio/intraHouse.plugin-MegaD/releases/tag/v1.1.9
Каналы DS18B20 формируются как обычно: 32_aad6a070000
Для DS2413 нужно создать два канала для портов А и B: 32_79c439000000_A, 32_79c439000000_B
Время опроса для запроса /sec/?pt=32&cmd=list нужно как обычно выставить только в одном из каналов!
Больше для каналов реле никакой настройки не требуется, команды управления будут сформированы автоматически
-
Нужно назначить ID канала без привязки к порту, например: i2c_temp, i2c_31_temp, 310_temp - да как угодно, только чтобы начало адреса не было связано с портами 0-38, иначе плагин пытается вытащить данные из cmd=all строки.
А если номер канала обозначен как 30_1? Судя по логу привязка правильная получается. И в парсинге cmd=all этих каналов нет. Кстати, на MegaD-2561 каналов 38 шт. - от 0 до 37.
06.01 23:40:36.127 megad2: 06.01 23:40:36.128 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1 06.01 23:40:36.183 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 06.01 23:40:36.184 megad2: body: 24.35 06.01 23:40:36.185 IH: get [{"id":"30_1","value":"24.35"}] 06.01 23:40:36.185 IH: set {"STEMP1_01":{"aval":"24.35","err":0}} 06.01 23:40:36.327 megad2: 06.01 23:40:36.328 megad2: localhost => 192.168.11.22 HTTP GET /sec/?pt=34&scl=35&i2c_dev=htu21d 06.01 23:40:36.353 megad2: localhost <= 192.168.11.22 response: statusCode=200 contentType = text/html 06.01 23:40:36.354 megad2: body: 24.08 06.01 23:40:36.355 IH: get [{"id":"30_2","value":"24.08"}] 06.01 23:40:36.355 IH: set {"SHUMIDITY1_01":{"aval":"24.08","err":0}}
Также в новом релизе добавлены параметры:
1. Отправлять время на контроллер - для опциональной отправки
Время отправляется при старте плагина и при получении st=1 от контроллера
Класс! Только почему в конце 282??? Это милисекунды? А должен быть день недели:
06.01 23:48:49.431 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cf=7&stime=23:48:49:282
Автор MegaD пишет: "Формат ЧЧ:ММ:СС:ДН, то есть 15:30:00:5 - последняя цифра - день недели…"
То есть сейчас гарантируется, что обращения к контроллеру происходят не чаще заданного интервала, включая управление (получается не более 5 запросов в сек для 200 мсек)
Это хорошо! Может быть у меня уйдут проблемы спонтанной перезагрузки двух контроллеров.
Почему? Слушающий сервер ведь абсолютно как в Berry. Или?
Пока не было функционала, который вы сейчас добавили, я не мог в контроллерах прописать адрес нового сервера. Соответственно http пакеты, которые контроллеры формируют самостоятельно, принимал только старый сервер. Делать постоянный http-polling контроллеров как-то не комильфо в плоской сети. Ну а нарезать VLAN с access-портами и несколько сетей - все руки не доходят.
Это относится к серверной части, обновление сделаем после праздников - возможно к середине месяца.
Отлично! И огромное спасибо за доработки! Мне уже можно переходить на Cherry
-
А если номер канала обозначен как 30_1? Судя по логу привязка правильная получается. И в парсинге cmd=all этих каналов нет.
Ну и прекрасно, поскольку сами проверяем на эмуляторе, точно не знаем, что там будет в cmd=all для i2c.
Класс! Только почему в конце 282??? Это милисекунды? А должен быть день недели:
> 06.01 23:48:49.431 megad2: localhost => 192.168.11.22 HTTP GET /sec/?cf=7&stime=23:48:49:282 >
Автор MegaD пишет: "Формат ЧЧ:ММ:СС:ДН, то есть 15:30:00:5 - последняя цифра - день недели…"
Что тогда обозначает cf? А можно ссылку, где описан этот запрос
И огромное спасибо за доработки! Мне уже можно переходить на Cherry
Надеемся, что Cherry заслужит ваше доверие, как и Berry
Всех с Рождеством, друзья!
-
Ну и прекрасно, поскольку сами проверяем на эмуляторе, точно не знаем, что там будет в cmd=all для i2c.
А с Андреем по поводу сотрудничества не связывались?
Что тогда обозначает cf? А можно ссылку, где описан этот запрос
cf=7 - это "конфигурационная таблица №7" в коде прошивки микроконтроллера. Ссылка на "даташит" - https://www.ab-log.ru/smart-house/ethernet/megad-2561, на странице сделайте поиск по словосочетанию "синхронизировать время".
Всех с Рождеством, друзья!
Аналогично поздравляю Вас с Рождеством и всех соучастников тоже !
-
Момент по расширениям в плагине. "Расширение" - /mod_megad.php?pt=7. Однако счетчик считает 2 раза:
08.01 00:03:04.213 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&cnt=9&mdid= 08.01 00:03:04.214 IH: get [{"id":"7","value":3989.510000000001}] 08.01 00:03:04.214 IH: set {"METER1_01":{"aval":3989.510000000001,"err":0}} 08.01 00:03:04.216 megad4: 192.168.11.24 <= localhost:11024 08.01 00:03:05.208 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=2&cnt=9&mdid= 08.01 00:03:05.209 IH: get [{"id":"7","value":3989.5200000000013}] 08.01 00:03:05.209 IH: set {"METER1_01":{"aval":3989.5200000000013,"err":0}} 08.01 00:03:05.210 megad4: 192.168.11.24 <= localhost:11024
В Berry при такой настройке считал только 1 раз. "Удержание" (m=2) не считалось.
-
Еще проблема по "Расширения". Делаю запрос на другой контроллер MegaD - "http://192.168.11.24/sec/?cmd=15:2", запрос исполняется (свет включается/выключается), но как сообщить серверу что изменилось состояние канала на другом контроллере, а не на том от которого приходит команда???
09.01 00:04:05.314 megad1: 192.168.11.21 => localhost:11021 HTTP GET /mod_megad.php?pt=0&click=2&cnt=8&mdid= 09.01 00:04:05.314 IH: get [] 09.01 00:04:05.315 IH: set {} 09.01 00:04:05.315 megad1: 192.168.11.21 <= localhost:11021 09.01 00:04:05.315 megad1: 09.01 00:04:05.316 megad1: localhost => 192.168.11.24 HTTP GET /sec/?cmd=15:2 09.01 00:04:05.321 megad1: localhost <= 192.168.11.24 response: statusCode=200 contentType = text/html 09.01 00:04:05.321 megad1: body: Done
Может быть в этом месте нужно не текстовое поле, а выпадающий список со всеми плагинами + произвольный запрос, при выборе которого появляется текстовое поле для ввода url?
-
Вопрос по счетчикам в MegaD… вроде все сделал по инструкции, но значения счетчика не приходят, причем в логах значения показываются. Где может быть ошибка?
11.01 01:49:24.857 megad2: 11.01 01:49:24.857 megad2: localhost => 10.255.255.60 HTTP GET /sec/?pt=17&cmd=get 11.01 01:49:24.863 megad2: localhost <= 10.255.255.60 response: statusCode=200 contentType = text/html 11.01 01:49:24.863 megad2: body: ON/300 11.01 01:49:24.863 IH: get [] 11.01 01:49:24.864 IH: set {}
И вопрос по сохранению значений: kernelchip хранит значение счетчиков в энергонезависимой памяти, а megad скидывает их при перезагрузке. Это решаемый вопрос? Как не потерять показания счетчика при отключении питания megad?
-
Вопрос по счетчикам в MegaD… вроде все сделал по инструкции, но значения счетчика не приходят, причем в логах значения показываются. Где может быть ошибка?
> 11.01 01:49:24.857 megad2: > 11.01 01:49:24.857 megad2: localhost => 10.255.255.60 HTTP GET /sec/?pt=17&cmd=get > 11.01 01:49:24.863 megad2: localhost <= 10.255.255.60 response: statusCode=200 contentType = text/html > 11.01 01:49:24.863 megad2: body: ON/300 > 11.01 01:49:24.863 IH: get [] > 11.01 01:49:24.864 IH: set {} >
И вопрос по сохранению значений: kernelchip хранит значение счетчиков в энергонезависимой памяти, а megad скидывает их при перезагрузке. Это решаемый вопрос? Как не потерять показания счетчика при отключении питания megad?
homa, а что вы сделали по инструкции? По вашему логу не видно, что от megad пришел get-запрос вида "/mod_megad.php?pt=7&cnt=9&mdid=", а видно, что вы опрашиваете контроллер средствами сервера, когда сам контроллер должен сообщать серверу о срабатывании контактов счетчика. Посмотрите мой лог двумя постами выше и какое "расширение" (звучит да действительно криво) надо прописать в плагине. Как раз описываю не верную работу плагина по "засчитыванию" показаний счетчика.
По поводу сброса показаний в MegaD после перезагрузки - зачем их хранить в энергонезависимой памяти когда всему голова сам сервер?
-
Вопрос по счетчикам в MegaD… вроде все сделал по инструкции, но значения счетчика не приходят, причем в логах значения показываются. Где может быть ошибка?
> > 11.01 01:49:24.857 megad2: > > 11.01 01:49:24.857 megad2: localhost => 10.255.255.60 HTTP GET /sec/?pt=17&cmd=get > > 11.01 01:49:24.863 megad2: localhost <= 10.255.255.60 response: statusCode=200 contentType = text/html > > 11.01 01:49:24.863 megad2: body: ON/300 > > 11.01 01:49:24.863 IH: get [] > > 11.01 01:49:24.864 IH: set {} > >
И вопрос по сохранению значений: kernelchip хранит значение счетчиков в энергонезависимой памяти, а megad скидывает их при перезагрузке. Это решаемый вопрос? Как не потерять показания счетчика при отключении питания megad?
homa, а что вы сделали по инструкции? По вашему логу не видно, что от megad пришел get-запрос вида "/mod_megad.php?pt=7&cnt=9&mdid=", а видно, что вы опрашиваете контроллер средствами сервера, когда сам контроллер должен сообщать серверу о срабатывании контактов счетчика. Посмотрите мой лог двумя постами выше и какое "расширение" (звучит да действительно криво) надо прописать в плагине. Как раз описываю не верную работу плагина по "засчитыванию" показаний счетчика.
По поводу сброса показаний в MegaD после перезагрузки - зачем их хранить в энергонезависимой памяти когда всему голова сам сервер?
Добрый день! Опрос делаю средствами сервера, т.к. состояния почему-то сами не приходят, точнее не отображаются, хотя в логах я вижу показания датчиков и счетчиков. Согласен, что получать состояние при изменении значительно лучше, чем постоянный опрос. Расширение у Вас действительно написано не так как предлагается в инструкции. Сейчас я не у контроллера, не могу физически замкнуть контакты и попробовать, но мне кажется опрос средствами сервера тоже должен работать, а у меня там 0. Текущие (по инструкции) настройки на скринах.
По хранению показаний - на MegaD пока не пробовал как работает счетчик, но, например, если обнуляется счетчик в KernelChip, то он покажет 0 и в IH, если в MegaD реализовано сохранение текущего значения на сервере - то нужно срочно переходить с KernelChip на MegaD)))
-
По хранению показаний - на MegaD пока не пробовал как работает счетчик, но, например, если обнуляется счетчик в KernelChip, то он покажет 0 и в IH, если в MegaD реализовано сохранение текущего значения на сервере - то нужно срочно переходить с KernelChip на MegaD)))
Подскажите. В KernelChip счетчик энергонезависимый? Если да, то переходить не стоит.
Мы долго искали энергонезависимые счетчики импульсов. Пробовали 4-канальные счетчики импульсов от Тепловодохран. Работают нормально но цена
Сейчас нашли еще один интересный девайс: https://shop.nag.ru/catalog/00007.Avtomatizatsiya-i-monitoring-/05629.ERD-Kontrollery/20485.SNR-ERD-4s#downloads
Там есть 5шт дискретных входов/выходов, которые могут использоваться как 32 битные энергонезависимые (до 5 дней) счетчики.
Плюс шина 1-wire, плюс rs485, плюс POE, плюс MQTT. Надо будет попробовать.
-
@intrahouse:
По хранению показаний - на MegaD пока не пробовал как работает счетчик, но, например, если обнуляется счетчик в KernelChip, то он покажет 0 и в IH, если в MegaD реализовано сохранение текущего значения на сервере - то нужно срочно переходить с KernelChip на MegaD)))
Подскажите. В KernelChip счетчик энергонезависимый? Если да, то переходить не стоит.
Мы долго искали энергонезависимые счетчики импульсов. Пробовали 4-канальные счетчики импульсов от Тепловодохран. Работают нормально но цена
Сейчас нашли еще один интересный девайс: https://shop.nag.ru/catalog/00007.Avtomatizatsiya-i-monitoring-/05629.ERD-Kontrollery/20485.SNR-ERD-4s#downloads
Там есть 5шт дискретных входов/выходов, которые могут использоваться как 32 битные энергонезависимые (до 5 дней) счетчики.
Плюс шина 1-wire, плюс rs485, плюс POE, плюс MQTT. Надо будет попробовать.
В KernelChip энергонезависимый, но есть нюансы. Я описывал их в ветке по KernelChip: https://frm.intrahouse.ru/viewtopic.php?f=18&t=5313&start=20 предпоследний пост. Кроме того при достижении максимума - 32767 он умеет считать количество полных циклов счетчика.
PS вопрос с MegaD тем не менее актуален, помогите разобраться)
-
Вопрос по счетчикам в MegaD… вроде все сделал по инструкции, но значения счетчика не приходят, причем в логах значения показываются. Где может быть ошибка?
> > > 11.01 01:49:24.857 megad2: > > > 11.01 01:49:24.857 megad2: localhost => 10.255.255.60 HTTP GET /sec/?pt=17&cmd=get > > > 11.01 01:49:24.863 megad2: localhost <= 10.255.255.60 response: statusCode=200 contentType = text/html > > > 11.01 01:49:24.863 megad2: body: ON/300 > > > 11.01 01:49:24.863 IH: get [] > > > 11.01 01:49:24.864 IH: set {} > > >
И вопрос по сохранению значений: kernelchip хранит значение счетчиков в энергонезависимой памяти, а megad скидывает их при перезагрузке. Это решаемый вопрос? Как не потерять показания счетчика при отключении питания megad?
homa, а что вы сделали по инструкции? По вашему логу не видно, что от megad пришел get-запрос вида "/mod_megad.php?pt=7&cnt=9&mdid=", а видно, что вы опрашиваете контроллер средствами сервера, когда сам контроллер должен сообщать серверу о срабатывании контактов счетчика. Посмотрите мой лог двумя постами выше и какое "расширение" (звучит да действительно криво) надо прописать в плагине. Как раз описываю не верную работу плагина по "засчитыванию" показаний счетчика.
По поводу сброса показаний в MegaD после перезагрузки - зачем их хранить в энергонезависимой памяти когда всему голова сам сервер?
Добрый день! Опрос делаю средствами сервера, т.к. состояния почему-то сами не приходят, точнее не отображаются, хотя в логах я вижу показания датчиков и счетчиков. Согласен, что получать состояние при изменении значительно лучше, чем постоянный опрос. Расширение у Вас действительно написано не так как предлагается в инструкции. Сейчас я не у контроллера, не могу физически замкнуть контакты и попробовать, но мне кажется опрос средствами сервера тоже должен работать, а у меня там 0. Текущие (по инструкции) настройки на скринах.
По хранению показаний - на MegaD пока не пробовал как работает счетчик, но, например, если обнуляется счетчик в KernelChip, то он покажет 0 и в IH, если в MegaD реализовано сохранение текущего значения на сервере - то нужно срочно переходить с KernelChip на MegaD)))
Добрый день!
Опрашивать счетчик не надо, так как MegaD показания не хранит, нужно взять с нее только импульс при сработке. В данном случае показания хранит сервер IH.
Когда сервер отключен, импульсы, естественно, будут пропущены.
У вас все верно сделано кроме периода опроса.
Также нужно проверить - верно ли записано сообщение с контроллера - имя скрипта и настройка сработки - чтобы сообщение приходило 1 раз
Резюмируем Чтобы сделать импульсный счетчик на MegaD нужно:
1. Создать канал, например, 17 с типом Meter. Период опроса = 0
2. В блоке "Расширения" прописать сообщение контроллера, которое присылается при сработке входа
В поле "Установить значения каналов" прописать 17=CNT или 17=COUNT
В поле Вес импульса = коэффициент (по умолчанию 1)
В этом случае значение считается по формуле: предыдущее значение +1*коэффициент
-
homa, а что вы сделали по инструкции? По вашему логу не видно, что от megad пришел get-запрос вида "/mod_megad.php?pt=7&cnt=9&mdid=", а видно, что вы опрашиваете контроллер средствами сервера, когда сам контроллер должен сообщать серверу о срабатывании контактов счетчика. Посмотрите мой лог двумя постами выше и какое "расширение" (звучит да действительно криво) надо прописать в плагине. Как раз описываю не верную работу плагина по "засчитыванию" показаний счетчика.
По поводу сброса показаний в MegaD после перезагрузки - зачем их хранить в энергонезависимой памяти когда всему голова сам сервер?
Добрый день! Опрос делаю средствами сервера, т.к. состояния почему-то сами не приходят, точнее не отображаются, хотя в логах я вижу показания датчиков и счетчиков. Согласен, что получать состояние при изменении значительно лучше, чем постоянный опрос. Расширение у Вас действительно написано не так как предлагается в инструкции. Сейчас я не у контроллера, не могу физически замкнуть контакты и попробовать, но мне кажется опрос средствами сервера тоже должен работать, а у меня там 0. Текущие (по инструкции) настройки на скринах.
По хранению показаний - на MegaD пока не пробовал как работает счетчик, но, например, если обнуляется счетчик в KernelChip, то он покажет 0 и в IH, если в MegaD реализовано сохранение текущего значения на сервере - то нужно срочно переходить с KernelChip на MegaD)))
Добрый день!
Опрашивать счетчик не надо, так как MegaD показания не хранит, нужно взять с нее только импульс при сработке. В данном случае показания хранит сервер IH.
Когда сервер отключен, импульсы, естественно, будут пропущены.
У вас все верно сделано кроме периода опроса.
Также нужно проверить - верно ли записано сообщение с сервера - имя скрипта и настройка сработки - чтобы сообщение приходило 1 раз
Резюмируем Чтобы сделать импульсный счетчик на MegaD нужно:
1. Создать канал, например, 17 с типом Meter. Период опроса = 0
2. В блоке "Расширения" прописать сообщение контроллера, которое присылается при сработке входа
В поле "Установить значения каналов" прописать 17=CNT или 17=COUNT
В поле Вес импульса = коэффициент (по умолчанию 1)
В этом случае значение считается по формуле: предыдущее значение +1*коэффициент
Да вот весь вечер вчера пытался… период опроса пробовал ставить 0, результат тот же. После 17 смогу прислать логи с периодом опроса=0, но если сейчас выставить период опроса=0 на датчиках температуры и влажности, то показания обновляться не будут...
Попробовал 17=CNT, но физически нет возможность замкнуть контакты, при установки счетчика MegaD вручную командой http://10.255.255.60/sec/?pt=17&cnt=3 значение в IH не передалось. Может какая-то проблема в "слушающем" порту? Пробовал менять порт, результат тотже. Если подключиться на порт 8081 телнетом, то соединение сбрасывается после отправки одного любого символа. Это нормально?
-
Если всем устройствам поставить период опроса=0, то ничего не происходит, но если перезагрузить мегу в логах:
11.01 11:22:11.533 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?st=1 11.01 11:22:11.533 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.543 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=0&cnt=1 11.01 11:22:11.543 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.564 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=1&cnt=1 11.01 11:22:11.564 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.576 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=2&cnt=1 11.01 11:22:11.576 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.587 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=17&cnt=1 11.01 11:22:11.588 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.597 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=28&cnt=1 11.01 11:22:11.598 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:11.689 megad2: 11.01 11:22:11.690 megad2: localhost => 10.255.255.60 HTTP GET /sec/?cmd=all 11.01 11:22:11.983 megad2: localhost <= 10.255.255.60 response: statusCode=200 contentType = text/html 11.01 11:22:11.984 megad2: body: ON/1;ON/1;ON/1;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;ON;OFF/0;OFF/0;ON/1;OFF/0;OFF/0;OFF/0;OFF/0;OFF;temp:26.87/press:739.78/hum:14.685;OFF;temp:22.94/hum:16.17;OFF;OFF;ON/1;ON;OFF;temp:26.30/hum:13.81;OFF;temp:22.84/hum:20.07;OFF;temp:23.10/hum:16.93;ON;ON 11.01 11:22:11.985 IH: get [{"id":"15","value":"0"},{"id":"16","value":"0"},{"id":"28","value":"1"},{"id":"23_1","value":"26.87"},{"id":"23_2","value":"739.78"},{"id":"23_3","value":"14.685"},{"id":"25_1","value":"22.94"},{"id":"25_2","value":"16.17"},{"id":"31_1","value":"26.3"},{"id":"31_2","value":"13.81"},{"id":"33_1","value":"22.84"},{"id":"33_2","value":"20.07"},{"id":"35_1","value":"23.1"},{"id":"35_2","value":"16.93"}] 11.01 11:22:11.985 IH: set {"SLEAKAGE2":{"dval":"0","err":0},"SLEAKAGE1":{"dval":"0","err":0},"UNIT_SENSOR3":{"dval":"1","err":0},"STEMP2":{"aval":"26.87","err":0},"SENSORA1":{"aval":"739.78","err":0},"SHUMIDITY1":{"aval":"14.685","err":0},"STEMP3":{"aval":"22.94","err":0},"SHUMIDITY2":{"aval":"16.17","err":0},"STEMP6":{"aval":"26.3","err":0},"SHUMIDITY5":{"aval":"13.81","err":0},"STEMP5":{"aval":"22.84","err":0},"SHUMIDITY4":{"aval":"20.07","err":0},"STEMP4":{"aval":"23.1","err":0},"SHUMIDITY3":{"aval":"16.93","err":0}} 11.01 11:22:12.535 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=28&m=2&cnt=1 11.01 11:22:12.536 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:12.547 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=0&m=2&cnt=1 11.01 11:22:12.547 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:12.559 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=1&m=2&cnt=1 11.01 11:22:12.559 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:12.570 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=2&m=2&cnt=1 11.01 11:22:12.570 megad2: 10.255.255.60 <= localhost:8081 11.01 11:22:12.581 megad2: 10.255.255.60 => localhost:8081 HTTP GET /?pt=17&m=2&cnt=1 11.01 11:22:12.581 megad2: 10.255.255.60 <= localhost:8081
После этого снова тишина. Ни один датчик не отправляет изменения состояния, счетчик в нуле не смотря на то, что вроде как пришло состояние "1" (сейчас контакт на нем замкнут, таким образом при перезагрузке в интерфейсе меги счетчик=1")
-
Если всем устройствам поставить период опроса=0, то ничего не происходит, но если перезагрузить мегу в логах:
После этого снова тишина. Ни один датчик не отправляет изменения состояния, счетчик в нуле не смотря на то, что вроде как пришло состояние "1" (сейчас контакт на нем замкнут, таким образом при перезагрузке в интерфейсе меги счетчик=1")
То есть со слушающим портом все нормально.
А что у вас в прописано в Script на Megad? mod_megad.php?
Это имя должно совпадать с началом запроса в Расширения
Оно у вас похоже пустое
-
Если всем устройствам поставить период опроса=0, то ничего не происходит, но если перезагрузить мегу в логах:
После этого снова тишина. Ни один датчик не отправляет изменения состояния, счетчик в нуле не смотря на то, что вроде как пришло состояние "1" (сейчас контакт на нем замкнут, таким образом при перезагрузке в интерфейсе меги счетчик=1")
То есть со слушающим портом все нормально.
А что у вас в прописано в Script на Megad? mod_megad.php?
Это имя должно совпадать с началом запроса в Расширения
Ничего не было прописано))) прописал, заработало. Спасибо. В инструкции нет об этом ничего, а инструкцию от меги видимо прочитал не внимательно. Действительно считает один импульс за два. Я так понял пока не решено?
-
Да вот весь вечер вчера пытался… период опроса пробовал ставить 0, результат тот же. После 17 смогу прислать логи с периодом опроса=0, но если сейчас выставить период опроса=0 на датчиках температуры и влажности, то показания обновляться не будут...
Попробовал 17=CNT, но физически нет возможность замкнуть контакты, при установки счетчика MegaD вручную командой http://10.255.255.60/sec/?pt=17&cnt=3 значение в IH не передалось. Может какая-то проблема в "слушающем" порту? Пробовал менять порт, результат тотже. Если подключиться на порт 8081 телнетом, то соединение сбрасывается после отправки одного любого символа. Это нормально?
Что-то вы как-то совсем не разобрались как работает сам MegaD и где какие настройки нужно сделать в плагине megad iH.
Датчики активные (1-wire, i2c, dht) нужно опрашивать сервером принудительно с каким-то периодом опроса! То есть в их каналах прописывать нужные вам периоды опроса. Для пассивных датчиков (СМК, ДИП, протечик, разные герконы и т.д. - датчики с "сухими контактами") нужно правильно настроить сам контроллер (первое - это настройка режима канала IN - P/R/P&R, второе - это название скрипта в сетевых настройках контроллера, который формально будет обрабатывать сообщения от контроллера на сервере). Если все сделано правильно, то в логе плагина вы должны увидеть строчку типа:
11.01 15:44:56.373 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&cnt=5366&mdid=
Если датчик замкнулся на время меньшее 1 сек и строчку:
11.01 15:44:57.368 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=2&cnt=5366&mdid=
Если датчик замкнулся на время большее 1 сек (об этом говорит m=2). Если канал датчика настроен еще и на размыкание, то должна прийти строчка вида (обратите внимание на m=1):
11.01 15:44:58.368 megad4: 192.168.11.24 => localhost:11024 HTTP GET /mod_megad.php?pt=7&m=1&cnt=5366&mdid=
По вашим логам видно, что на контроллере не прописано имя скрипта в сетевых настройках. В моем же логе вы должны увидеть скрипт с именем "mod_megad.php". В остальном - следуйте инструкциям разработчиков, которые приведены выше.