Использование MegaD в openHAB

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 20 окт 2019, 10:58

dvit писал(а):
14 окт 2019, 22:33
Здравствуйте.

У меня есть Openhab 2.4 установленный на Raspberry pi 3. К MegaD-2561 подключен NFC считыватель по протоколу Wiegand. Версия биндинга - 2.5.0_3.
От контроллера приходит входящий запрос один раз. А в Openhab дважды генерируется событие, как-будто метка считалась дважды.
Из-за этого правило отрабатывает некорректно.

Вот лог Openhab:

Код: Выделить всё

2019-10-14 20:51:55.019 [DEBUG] [b.binding.megad.handler.MegaDHandler] - getActiveChannelListAsString -> ib,wiegand

Подскажите из-за чего в Openhab правило может срабатывать дважды?
Судя по всему вы подключили два канала -
wiegand и ibutton. выберите только wiegand

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 20 окт 2019, 11:01

По поводу файлов от себя хотел бы добавить. Я бы советовал тем, кто только входит в тему создавать все things и items через paperUI. Это гораздо наглядее, это работает нормально с rest, это можно структурировать по своему желанию. но это ИМХО

P_Dmitrij
Сообщения: 450
Зарегистрирован: 12 ноя 2019, 07:51

Re: Использование MegaD в openHAB

Сообщение P_Dmitrij » 12 ноя 2019, 16:15

Приветствую всех!

Это мой первый пост на форуме, и, надеюсь, далеко не последний :) Хотел бы в первую очередь поблагодарить коллектив ab-log за отличный контроллер и поддержку! Мне удалось запустить тестовый стенд в составе MegaD-2561 <-> OH2 <-> NodeRed за выходные, что очень круто! Умные дома становятся все ближе к массовому потребителю :)
В процессе тестирования возникло пара вопросов:
1) Удалось ли заставить OH2 принимать &v=1 при исполнении action на Меге с галочкой act? Эта тема обсуждалась со стр. 54, но потом как-то прервалась. Я перепрошил последнюю прошивку на Меге, с ключом -ee, два раза, но эта опция так и не заработала. Причем, по совету Petros попробовал сделать 3 команды в 1 action: 7:1;7:1;7:1. И 2 раза параметр &v появился в отладочной консоли! Но потом больше я не смог его повторить. Сейчас мне пришла идея идея послушать трафик tcpdump'ом, что бы понять, это Мега не посылает, или OH не ловит. Вернусь домой, попробую.
2) Вопрос на понимание архитектуры (возможно, глупый). В настройках Thing для Меги есть параметр Refresh, где можно задать частоту опроса состояния порта. Но можно ли по собственной инициативе опросить тот или иной порт? Например, во время выполнения какого-либо правила. Или так делать не надо?
3) @Petros, у вас на страничке биндинга ( https://ab-log.ru/forum/viewtopic.php?f=1&t=1004 ) ссылка ведет на ГитХаб-проект openHABMegaDevice, что, как я понимаю, не совсем то. А в проекте openhab2MegadBinding, который как раз то :), ссылка на скачивание готового jar релиза 2.5.0_3 указывает на файл с именем "org.openhab.binding.megad-2.5.0-SNAPSHOT.jar". Это точно последняя версия 2.5.0_3? Предыдущие версии имели постфикс _1, _2, ... в имени jar-файла.

С уважением,
Дмитрий

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 12 ноя 2019, 21:47

Вот, а мне не верили, что v не прилетает 8-)

P_Dmitrij
Сообщения: 450
Зарегистрирован: 12 ноя 2019, 07:51

Re: Использование MegaD в openHAB

Сообщение P_Dmitrij » 13 ноя 2019, 05:52

Попробовал сканировать пакеты. Сразу скажу, что не эксперт в этом деле, но выглядит так, как будто перед отправкой "GET /?pt=7&v=1" предыдущее TCP-соединение до конца не закрывается. А именно, Мега не шлет последний ACK на сервер между пакетами #9 и #10. После же отправки &v=1 соединение закрывается правильно, 4 пакетами (#16-19). Может быть с этим связана проблема? Лог из Wireshark как картинка, так нагляднее. Но если надо, могу прислать и текстом. Хост 169.254.163.10 - это Мега. Хост 169.254.163.13 - имитация веб-сервера с запущенным Wireshark.
log.png
log.png (591.69 КБ) 1750 просмотров

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 13 ноя 2019, 15:35

P_Dmitrij, спасибо вам большое за анализ. Проблема в том, что мега так себя ведёт не всегда и не везде. Биндинг принимает и обрабатывает параметр v=1 уже давно. И на трех мегах из 4-х этой проблемы у меня нет. А вот на свежекупленной меге такая проблема есть...

пункт 2) -
так делать не надо
;) :lol: При умеренной доле паранойи можно поставить рефреш каждую секунду или включить srv-loop на меге. Я сделал второе.

3) org.openhab.binding.megad-2.5.0-SNAPSHOT.jar - так его компилирует Эклипс и в случае если его называть иначе - ругается. Поэтому номер версии я теперь ставлю в тэгах...

Ссылка и инструкция ведет на Openhab 1 поэтому и биндинг для 1 версии. Ниже есть инструкция для второй, поправлю пост, спасибо.

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 13 ноя 2019, 15:40

martiniman писал(а):
12 ноя 2019, 21:47
Вот, а мне не верили, что v не прилетает 8-)
Я верил :)

P_Dmitrij
Сообщения: 450
Зарегистрирован: 12 ноя 2019, 07:51

Re: Использование MegaD в openHAB

Сообщение P_Dmitrij » 13 ноя 2019, 15:48

Petros писал(а):
13 ноя 2019, 15:35
И на трех мегах из 4-х этой проблемы у меня нет.
Мб попробуете тоже помониторить пакеты на предмет правильного закрытия TCP-соединения? Тогда можно было бы локализовать проблему.

Насчет опроса понял, спасибо :)
Petros писал(а):
13 ноя 2019, 15:35
Ниже есть инструкция для второй, поправлю пост, спасибо.
Могли бы пожалуйста так же указать, как именно надо обновлять ваш addon? Я просто стер старый jar-файл, записал новый и перезагрузил сервер. Мб. можно без перезагрузки обойтись? И еще вопрос, Things и Items же не надо обновлять после обновления версии, правильно? Достаточно просто заменить файл?

Petros
Сообщения: 900
Зарегистрирован: 21 авг 2012, 22:09
Откуда: Москва

Re: Использование MegaD в openHAB

Сообщение Petros » 13 ноя 2019, 16:34

Мб попробуете тоже помониторить пакеты на предмет правильного закрытия TCP-соединения? Тогда можно было бы локализовать проблему.
Попробую, как только будет время, к сожалению...
Могли бы пожалуйста так же указать, как именно надо обновлять ваш addon? Я просто стер старый jar-файл, записал новый и перезагрузил сервер. Мб. можно без перезагрузки обойтись? И еще вопрос, Things и Items же не надо обновлять после обновления версии, правильно? Достаточно просто заменить файл?
Вообще, на сайте опенхаба есть вроде как инструкция, и многие не перезагружают, оно само подцепляется. Но вот кому-то нужно в консоли сделать binding uninstall, например... ситуация весьма непонятная на самом деле. У кого-то так, у кого-то иначе. Я - перезагружаю. Никаких изменений никуда вносить не нужно. Только в случае смены архитектуры биндинга, я сейчас над этим работаю. Но я конечно расскажу подробно.

Повторю на всякий случай - старайтесь пользоваться Paper-ui

P_Dmitrij
Сообщения: 450
Зарегистрирован: 12 ноя 2019, 07:51

Re: Использование MegaD в openHAB

Сообщение P_Dmitrij » 13 ноя 2019, 18:14

Ок, понял, спасибо!

spokinoki
Сообщения: 3
Зарегистрирован: 21 ноя 2019, 14:21

Re: Использование MegaD в openHAB

Сообщение spokinoki » 22 ноя 2019, 19:01

Здравствуйте!

Подключил и настроил Mega-D 2561, недавно обновил прошивку до версии 4.39b1 (с очисткой EEPROM). Запустил на Raspberry Pi 3 OpenHab 2, установил add-on "HTTP Binding" и "MegaD Binding" (https://github.com/Pshatsillo/openhab2MegadBinding). Настроил "Bridge Megad incoming server adapter" и "MegaD Binding Thing".

Связь между MegaD и OpenHab установлена. Из OpenHab можно включить свет. OpenHab получает уведомления о изменении статуса порта от Megad. Однако в логах OpenHab ошибки соединения "[ERROR] [b.binding.megad.handler.MegaDHandler] - Connect to megadevice 192.168.1.26 error: connect timed out", а вебинтерфейс самой MegaD заметно подтормаживает.

При этом MegaD на проводные сигнальные выключатели установленные в квартире реагирует моментально. Складывается впечатление, что что-то не так с веб сервером на стороне MegaD. Подскажите, пожалуйста, вроде бы нагрузок нет особых на Megad, в чем может быть проблема?

Прикладываю изображения.
Вложения
2019-11-22_17-53-15.png
2019-11-22_17-53-15.png (56.19 КБ) 1589 просмотров
2019-11-22_17-45-37.png
2019-11-22_17-45-37.png (700.63 КБ) 1589 просмотров
2019-11-22_17-43-12.png
2019-11-22_17-43-12.png (34.87 КБ) 1589 просмотров
2019-11-22_17-40-40.png
2019-11-22_17-40-40.png (47.48 КБ) 1589 просмотров
2019-11-22_17-40-07.png
2019-11-22_17-40-07.png (38.8 КБ) 1589 просмотров

spokinoki
Сообщения: 3
Зарегистрирован: 21 ноя 2019, 14:21

Re: Использование MegaD в openHAB

Сообщение spokinoki » 22 ноя 2019, 23:48

В продолжение предыдущего сообщение.
Попробовал исключить OpenHab из задачи. Стопнул OpenHab. В настройках Меги убрал сервер OpenHab. Тормоза Меги сохранились. В приложении скриншоты. Страница веб интерфейса Меги грузится долго подозрительно (11 секунд).
Вложения
2019-11-22_22-42-50.png
2019-11-22_22-42-50.png (34.3 КБ) 1575 просмотров
2019-11-22_22-42-23.png
2019-11-22_22-42-23.png (50.38 КБ) 1575 просмотров

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Использование MegaD в openHAB

Сообщение Andrey_B » 23 ноя 2019, 11:29

Если внутренняя логика контроллера выполняется мгновенно, а браузер на компьютере открывает Web-интерфейс долго, возможно имеют место какие-то сетевые проблемы.
Если ПК и контроллер находятся в одной IP-сети, убедитесь, что в настройках устройства не указан "GW".
Далее попробуйте подключить контроллер напрямую к ПК, чтобы исключить влияние сетевого оборудования (роутера). Попробуйте заменить патч-корд.

spokinoki
Сообщения: 3
Зарегистрирован: 21 ноя 2019, 14:21

Re: Использование MegaD в openHAB

Сообщение spokinoki » 23 ноя 2019, 14:40

Запустил самый простой пинг "ping 192.168.1.26 -t". До роутера пинги отлично идут, а до Меги потерь пакетов 80%. Наверное что-то случилось со связью между Мегой и роутером. Кабель попробую заменить.
Вложения
2019-11-23_13-35-07.png
2019-11-23_13-35-07.png (26.54 КБ) 1552 просмотра

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 23 ноя 2019, 21:39

Чего-то я застрял. Mega fw: 4.37b5 Ubuntu x86
Не прилетают события от IN портов в OH при установленном рефреше 0, т.е. моментально. При рефреше >0 состояние прилетает.
Item kunhBut15_1 (кнопка) не обновляет состояние при нажатии на физическую кнопку.
Настройки меги: порт IN, галка у ACT установлена, тут режим P:
openHAB 2.5 m1:

Код: Выделить всё

Bridge megad:bridge:in    "MegaD Bridge Port:8989" @ "MegaD" [port=8989]
{
Thing device m6-2-r_p18   "MegaD M6-2-R Port 18" @ "MegaD"      [hostname="192.168.53.186", port="18", password="sec", refresh="0"]
...
}
Switch  kunhBut15_1         "Кухня тест выкл " { channel="megad:device:in:m6-2-r_p18:contact" }
Лог, тут нет ни слова о kunhBut15_1 :

Код: Выделить всё

incoming from Megad: 192.168.53.186 GET /?pt=18&cnt=28&mdid=m6 HTTP/1.1
20:25:42.466 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 0 value 
20:25:42.468 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 1 value pt
20:25:42.470 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 2 value 18
20:25:42.472 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 3 value cnt
20:25:42.474 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 4 value 28
20:25:42.475 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 5 value mdid
20:25:42.476 [DEBUG] [ding.megad.handler.MegaDBridgeHandler] - 6 value m6
20:25:42.478 [DEBUG] [ab.binding.megad.handler.MegaDHandler] - getActiveChannelListAsString -> contact
Биндинг последний 2.5.0 Snapshot

Куда рыть.

От меги всё приходит...
Обновил одну мегу - не помогло

P_Dmitrij
Сообщения: 450
Зарегистрирован: 12 ноя 2019, 07:51

Re: Использование MegaD в openHAB

Сообщение P_Dmitrij » 24 ноя 2019, 07:21

martiniman писал(а):
23 ноя 2019, 21:39

Мб. адрес и/или порт сервера на Меге не совпадают с настройками Thing "Bridge Megad incoming server adapter"?
mega.png
mega.png (54.99 КБ) 1501 просмотр
oh2.png
oh2.png (158.17 КБ) 1501 просмотр

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Использование MegaD в openHAB

Сообщение martiniman » 24 ноя 2019, 11:20

P_Dmitrij спасибо, все настроено правильно и OH принмает http запросы, в логах видно. А вот факт нажатия на кнопку - нет.

d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: Использование MegaD в openHAB

Сообщение d.v.ermakov » 24 ноя 2019, 13:28

martiniman писал(а):
24 ноя 2019, 11:20
P_Dmitrij спасибо, все настроено правильно и OH принмает http запросы, в логах видно. А вот факт нажатия на кнопку - нет.
Я в этом топике редко пишу потому, что редко обновляю и сервер и прошивку. Но в вашем случае я попробовал бы режим P&R.

gater
Сообщения: 34
Зарегистрирован: 09 янв 2018, 20:34
Откуда: Калининград

Re: Использование MegaD в openHAB

Сообщение gater » 24 ноя 2019, 13:40

Подскажите по ошибке. Иногда при попытке включении света из мобильного приложения openhab или из basic UI в браузере, включение не происходит и ползунок сам возвращается на место. В логах при этом появляется ошибка. Через время то-же действие выполняется нормально.

Код: Выделить всё

2019-11-23 22:11:19.532 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.megad.handler.MegaDHandler@f7ff33': For input string: "31.0"
java.lang.NumberFormatException: For input string: "31.0"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:?]
	at java.lang.Integer.parseInt(Integer.java:580) ~[?:?]
	at java.lang.Integer.parseInt(Integer.java:615) ~[?:?]
	at org.openhab.binding.megad.handler.MegaDHandler.handleCommand(MegaDHandler.java:87) ~[?:?]
	at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [103:org.eclipse.smarthome.core:0.10.0.oh240]
	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [103:org.eclipse.smarthome.core:0.10.0.oh240]
	at com.sun.proxy.$Proxy130.handleCommand(Unknown Source) [214:org.openhab.binding.megad:2.5.0.201906291819]
	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [110:org.eclipse.smarthome.core.thing:0.10.0.oh240]
	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [110:org.eclipse.smarthome.core.thing:0.10.0.oh240]
	at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [103:org.eclipse.smarthome.core:0.10.0.oh240]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [103:org.eclipse.smarthome.core:0.10.0.oh240]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

d.v.ermakov
Администратор
Сообщения: 2188
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: Использование MegaD в openHAB

Сообщение d.v.ermakov » 24 ноя 2019, 13:47

gater писал(а):
24 ноя 2019, 13:40
... Иногда ... включение не происходит и ползунок сам возвращается на место. В логах при этом появляется ошибка. Через время то-же действие выполняется нормально.
ИМХО, два варианта. Либо ошибка локальной сети (что менее вероятно), либо сервер не может своевременно прочитать или записать что-то в файл или базу. Нужно более подробные логи сервера искать.

Ответить