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

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

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

Сообщение Petros » 22 май 2018, 22:56

Возможно пакет действительно долго летит до Меги. Проверьте на 2.4, там увеличены тайминги

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 22 май 2018, 23:14

Выдержки из лога:
Попытка один (неудача):
2018-05-22 22:01:46.026 [vent.ItemStateChangedEvent] - Input_door_toulet changed from OFF to ON //сработал датчик на двери в туалет

2018-05-22 22:01:46.949 [vent.ItemStateChangedEvent] - Input_door_toulet changed from ON to OFF //датчик выключился

2018-05-22 22:01:46.970 [ome.event.ItemCommandEvent] - Item 'Light_toulet' received command ON ==> /var/log/openhab2/openhab.log <== // опенхаб отправляет команду включить "свет туалет"

2018-05-22 22:01:46.983 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.1.69/sec/?cmd=9:1 ==> /var/log/openhab2/events.log <== //сама команда, айпи меги, порт и пароль верные

2018-05-22 22:01:47.000 [vent.ItemStateChangedEvent] - Light_toulet changed from OFF to ON ==> /var/log/openhab2/openhab.log <== //обновление в интерфейсе состояние итема на включено

2018-05-22 22:01:47.519 [ERROR] [b.binding.megad.handler.MegaDHandler] - Connect to megadevice 192.168.1.69 error: connect timed out ==> /var/log/openhab2/events.log <== //ошибка, что не получен ответ от меги, свет так и не включился

Следом попытка два (неудача):
2018-05-22 22:01:50.894 [vent.ItemStateChangedEvent] - Input_door_toulet changed from OFF to ON
2018-05-22 22:01:51.747 [vent.ItemStateChangedEvent] - Input_door_toulet changed from ON to OFF ==> /var/log/openhab2/openhab.log <==
2018-05-22 22:01:51.773 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.1.69/sec/?cmd=9:1 ==> /var/log/openhab2/events.log <==
2018-05-22 22:01:51.842 [ome.event.ItemCommandEvent] - Item 'Light_toulet' received command ON ==> /var/log/openhab2/openhab.log <==
2018-05-22 22:01:52.366 [ERROR] [b.binding.megad.handler.MegaDHandler] - Connect to megadevice 192.168.1.69 error: connect timed out==> /var/log/openhab2/events.log <==

Третья попытка (все заработало как надо):
2018-05-22 22:01:55.535 [vent.ItemStateChangedEvent] - Input_door_toulet changed from OFF to ON
2018-05-22 22:01:56.798 [vent.ItemStateChangedEvent] - Input_door_toulet changed from ON to OFF ==> /var/log/openhab2/openhab.log <==
2018-05-22 22:01:56.810 [INFO ] [b.binding.megad.handler.MegaDHandler] - Switch: http://192.168.1.69/sec/?cmd=9:1==> /var/log/openhab2/events.log <==
2018-05-22 22:01:56.825 [ome.event.ItemCommandEvent] - Item 'Light_toulet' received command ON

Конкретно на данном датчике у меня костыль не прекручен, который повторяет отправку команды, если не получен ответ от Меги. В этом костыле экспериментировал со временем ожидания ответа от Меги (ставил вплоть до 1сек), но все равно такие проблемы оставались. При этом пинг до меги чаще всего 1-3мс, очень редко показывает 12-15мс. Версию 2.4 качну и попробую.

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 22 май 2018, 23:20

С вероятностью 90 процентов проблема в сети, возможно даже в свитче, т.к. пакет или теряется или летит долго. В идеале попробовать бы напрямую

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 22 май 2018, 23:25

Petros писал(а):
22 май 2018, 22:56
Возможно пакет действительно долго летит до Меги. Проверьте на 2.4, там увеличены тайминги
Не нашел релиза биндинга 2.4: идет 2.0.2.2, а потом 2.0.3 и так далее, где качнуть? Или речь про последний пре-релиз 2.0.3.4?

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 22 май 2018, 23:31

Petros писал(а):
22 май 2018, 23:20
С вероятностью 90 процентов проблема в сети, возможно даже в свитче, т.к. пакет или теряется или летит долго. В идеале попробовать бы напрямую
Свитч вполне вероятная проблема: сеть построена на 3-4 свичах бюджетного сегмента. Попробую на выходных принести свитч Zyxel, он не должен терять пакеты. Напрямую проблемно подключать, оборудование смонтировано и спрятано (доступ есть, но со сложностями).

Дополню:
посмотрел трафик на сервере в момент подачи команды:
пример, когда команда проходит нормально (сервер 13, мега 65, устанавливаю на порту №12 значение диммера 43):

13 0.170380758 192.168.1.13 192.168.1.65 TCP 74 51142 → 80 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=784111071 TSecr=0 WS=128

15 0.171702010 192.168.1.65 192.168.1.13 TCP 60 80 → 51142 [SYN, ACK] Seq=0 Ack=1 Win=2560 Len=0 MSS=1280


16 0.171807011 192.168.1.13 192.168.1.65 TCP 54 51142 → 80 [ACK] Seq=1 Ack=1 Win=29200 Len=0

17 0.172735398 192.168.1.13 192.168.1.65 HTTP 217 GET /sec/?cmd=12:43 HTTP/1.1


18 0.175144308 192.168.1.65 192.168.1.13 TCP 60 80 → 51142 [ACK] Seq=1 Ack=164 Win=1024 Len=0

19 0.175618840 192.168.1.65 192.168.1.13 HTTP 102 HTTP/1.0 200 OK (text/html)


22 0.176342800 192.168.1.13 192.168.1.65 TCP 54 51142 → 80 [FIN, ACK] Seq=164 Ack=50 Win=29200 Len=0


23 0.177570666 192.168.1.65 192.168.1.13 TCP 60 80 → 51142 [ACK] Seq=50 Ack=165 Win=1024 Len=0

а это трафик, когда в логе выводил ошибку об истекшем времени ожидания (сервер 13, мега 69, отправлял на порт№9 значение 1):

16 0.115506734 192.168.1.13 192.168.1.69 TCP 74 39254 → 80 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=3921575471 TSecr=0 WS=128

и все, от меги никакого ответа.

gater
Сообщения: 9
Зарегистрирован: 09 янв 2018, 20:34

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

Сообщение gater » 23 май 2018, 02:53

У меня ровно такая же история. опенхаб говорит команду отправил. мега не отреагировала. Изначально общались через дешёвый свич. Сейчас для эксперимента подключены в роутер zte 2е меги 2561 и сервер с опенхаб. Ситуация не изменилась. Так же в логах временами проскакивает
[ERROR] [b.binding.megad.handler.MegaDHandler] - Connect to megadevice 192.168.0.15 error: connect timed out

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 08:40

А у Вас тоже на малине?

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 08:43

Dafr писал(а):
22 май 2018, 23:25
Petros писал(а):
22 май 2018, 22:56
Возможно пакет действительно долго летит до Меги. Проверьте на 2.4, там увеличены тайминги
Не нашел релиза биндинга 2.4: идет 2.0.2.2, а потом 2.0.3 и так далее, где качнуть? Или речь про последний пре-релиз 2.0.3.4?
https://github.com/Pshatsillo/openhab2M ... .0.3.4.jar

gater
Сообщения: 9
Зарегистрирован: 09 янв 2018, 20:34

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

Сообщение gater » 23 май 2018, 09:27

Petros писал(а):
23 май 2018, 08:40
А у Вас тоже на малине?
Нет. Современный десктоп на i5 с windows 10.

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

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

Сообщение Andrey_B » 23 май 2018, 11:52

Dafr писал(а):
22 май 2018, 23:31
а это трафик, когда в логе выводил ошибку об истекшем времени ожидания (сервер 13, мега 69, отправлял на порт№9 значение 1):
16 0.115506734 192.168.1.13 192.168.1.69 TCP 74 39254 → 80 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=3921575471 TSecr=0 WS=128
и все, от меги никакого ответа.
На отправку сервером пакета с флагом SYN контроллер должен ответить пакетом с флагами SYN ACK.
На первый взгляд либо пакет SYN не доходит до устройства (кстати, а сервер делает ретрансмиты?), либо пакет SYN ACK не доходит до сервера, либо по каким-то причинам контроллер не воспринимает пакет SYN и ничего не отвечает.
Для начала я бы подключил контроллер напрямую к серверу, чтобы исключить влияние сетевой инфраструктуры. Между делом, какая ОС на сервере? Случайно не Windows?

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 23 май 2018, 13:30

Все стоит на raspberry 3, дистрибутив ставил openhabian. Для подключения контроллера напрямую к серверу нужно брать обычный патч-корд, который я в свитч втыкаю или сделать кросс патч-корд? Сервер ретрансмиты вроде не делает: к примеру я шесть раз нажал отправить команду на мегу и в трафике увидел шесть таких вот пакетов без ответа.
Andrey_B писал(а):
23 май 2018, 11:52
На отправку сервером пакета с флагом SYN контроллер должен ответить пакетом с флагами SYN ACK.
На первый взгляд либо пакет SYN не доходит до устройства (кстати, а сервер делает ретрансмиты?), либо пакет SYN ACK не доходит до сервера, либо по каким-то причинам контроллер не воспринимает пакет SYN и ничего не отвечает.
Для начала я бы подключил контроллер напрямую к серверу, чтобы исключить влияние сетевой инфраструктуры. Между делом, какая ОС на сервере? Случайно не Windows?

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

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

Сообщение Andrey_B » 23 май 2018, 14:02

NIC в RPi имеет поддержку Auto-MDIX, поэтому патч-корд должен подойти любой.
Также обратите внимание, моргает ли светодиод активности на сетевом разъеме контроллера одновременно с отправкой SYN-пакетов.
Да, вот эта ситуация решается сама собой или после какого-то действия? Не моргает ли в это время с равной периодичностью индикатор Act на лицевой панели, что говорит о перезагрузке устройства и работе загрузчика?

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 23 май 2018, 14:31

Andrey_B писал(а):
23 май 2018, 14:02
NIC в RPi имеет поддержку Auto-MDIX, поэтому патч-корд должен подойти любой.
Также обратите внимание, моргает ли светодиод активности на сетевом разъеме контроллера одновременно с отправкой SYN-пакетов.
Да, вот эта ситуация решается сама собой или после какого-то действия? Не моргает ли в это время с равной периодичностью индикатор Act на лицевой панели, что говорит о перезагрузке устройства и работе загрузчика?
Делать ничего не надо, кроме повторной отправки команды: то есть нужно еще раз нажать на выключатель или ,как я уже писал, на некоторые команды в качестве теста повесил костыль, который при не получении ответа сам еще раз отправляет команду (до 10 попыток)

Насчет моргания лампочки не смотрел, вечером погляжу.

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 15:02

Dafr, а на версии 2.0.3.4 те же проблемы?

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

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 23 май 2018, 15:30

Petros писал(а):
23 май 2018, 15:02
Dafr, а на версии 2.0.3.4 те же проблемы?

Просто я могу сделать повторную отправку в случае если пришла ошибка, не проблема, но тогда если мега ляжет физически - все запросы будут долбиться в нее до получения ответа, и при перезагрузке меги поведение будет непредсказуемым. Собственно я поэтому и убрал из кода реконнект
2.0.3.4 - попробую вечером, так же сегодня попробую через нормальный свитч соединить, попробую напрямую, понаблюдаю за индикацией на меге. Еще я смотрел трафик на самом сервере, сегодня попробую посмотреть траффик на компе, подключенном в локалку к тому же свитчу, интересно будут ли видны запросы, отправляемые с сервера в адрес меги. А потом, убедившись что проблема не в железе, сети и т.п., можно попробовать программную закладку.

Реконнект если добавлять, то нужно ограничивать количество попыток, после которых отменять действие и писать в лог, что не судьба.

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 15:33

Да, но будет эффект такой же как от скрипта, т.е. если мега не ответила, то долбимся в нее три раза, ждет ответа сервер в версии 2.0.3.4 - 1500 миллисекунд, т.е. 1.5 секнды. Итого 3 попытка будет только почти через 3 секунды

Проверил только что свои логи - ни одного таймаута.... свитчи у меня микротиковские, сервак на гигабайтовском баребоне, дебиан

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 15:36

а вот ещё вопрос - а какие функции выполняет ваша мега?

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 23 май 2018, 18:48

Petros писал(а):
23 май 2018, 15:36
а вот ещё вопрос - а какие функции выполняет ваша мега?
Все освещение в квартире,несколько теплых полов и потолков ), шторы, датчики движения, температуры. Только розетки мимо мег идут, о чем сейчас жалею, пару-тройку розеток нужно было завести на Меги тоже.

Petros
Сообщения: 363
Зарегистрирован: 21 авг 2012, 22:09

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

Сообщение Petros » 23 май 2018, 18:54

А ошибки связи по всем мега или только по одной?

Dafr
Сообщения: 23
Зарегистрирован: 23 июл 2015, 12:02

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

Сообщение Dafr » 23 май 2018, 19:15

Petros писал(а):
23 май 2018, 18:54
А ошибки связи по всем мега или только по одной?
Как минимум на половине мег есть, по остальным надо смотреть, реже используются.

Ответить