HBus

akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Пн май 20, 2019 1:57 pm

Выложил первую версию скетча для WiFi шлюза.

Теперь пора вернуться к освоению МД и проверить, как это будет работать все вместе.

PS: Выложил новую ревизию 1.1 скетча для шлюза, в которой добавил поддержку сенсора BME280/BMP280 и маленького OLED дисплея 128х32. На дисплей в темпе раз в 4 сек выводятся:
- h/w и s/w ревизии
- измеренное напряжение питания на шине HBus
- наличие подключения к WiFi и к MQTT брокеру
- результаты измерений BME280/BMP280: температура, давление, относительная влажность

PPS: В rev 1.2 собственные топики шлюза не только бродкастятся в HBus, но также отправляются MQTT брокеру.

PPPS: В rev 1.3 добавил измерение СО2 при помощи сенсора MH-Z19B, а также вывод текущего времени (час:мин) на OLED дисплей; для правильной работы функций времени требуется установка последней ревизии a_coos rev 1.5
akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Вс июн 02, 2019 9:22 am

С МД мой шлюз по MQTT почему-то не работает. Пробовал и с локальным Москито брокером (и через localhost, и через его IP в локальной сети), пробовал с интернет брокером (через URL). Тестовые примочки видят MQTT сообщения, сам шлюз видит "эхо" своих сообщений (т.е. свои собственные сообщения, пришедшие ему как подписчику от брокера). А Мажордомо ничего не видит, ни одного сообщения.

Мажордомо поставил на РС, под Вин 10. Правда, не на С: драйв, а на соседний, может, в этом причина? Попробую снести и установить заново.

PS: Переустановка помогла, в МД стали приходить сообщения от шлюза. Однако работает нестабильно. Тестовая программа на мобильнике (IoT MQTT Panel) сразу же ловит все MQTT сообщения от шлюза, а МД какие-то ловит, какие-то пропускает.

PPS: Заказал RPi 3+, попробую поставить МД на него. Посмотрим, будет ли разница.

FYI: Если MQTT брокер находится в локальной сети (на моем десктопе, там же, где МД), то время от публикации сообщения шлюзом до получения "эха" по подписке составлет в среднем около 5 мс. Если брокер находится в интернете, то где-то на два порядка больше, около 400 мс.
akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Чт июн 06, 2019 2:26 pm

Вроде как заработало наконец. В чем там было дело - так до конца и не понял. Похоже что 0 не в конце текстовой строка сводил MD с ума, но это не точно. По крайней мере после переделки, когда все добавочные символы в конце отсылаемого в МД сообщения стали обычными символами пробела, TAB, CR и LF, все стало работать, то ли из-за этого, то ли еще по какой-то причине.

Вполне может быть, что меня просто сбивал с толку баг МД, из-за которого дата/время обновления MQTT значений показываются неправильно, просто "от фонаря". Само-то значение обновляется, а дата когда обновляется, когда залипает непонятно где, не поймешь.

Вот снапшот NodeTest
NodeTest1.png
NodeTest1.png (26.31 КБ) 214 просмотров
Видно, что в сети HBus прошли сообщения к TopicId 99, 65, 66, 67, 69. А по отладочной команде (Custom Command {cmd:2}) потом видно, каким топикам эти номера соответствуют.

А в окошке МД видно, что эти топики благополучно приняты:
MD1.png
MD1.png (55.97 КБ) 214 просмотров
Последнюю ревизию 1.4 скетча для шлюза выкладываю.
akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Сб июн 08, 2019 12:00 pm

1. Получил Raspberry PI 3+. По инструкции скачал образ 3.35, залил на карточку, запустил. Кое-как удалось залогиниться, логин pi, пароль оказался raspberry (а вовсе не raspberrymj, как вводит в заблуждение инструкция по установке). Определил IP командой hostname -I

2. В браузере ввел этот IP, появился экран МД. Перешел в панель управления, выбрал MQTT, поудалял оттуда весь мусор, оставил только $SYS/broker/uptime. Ввел свои топики. После этого, как я понял, надо перезапустить МД, ибо никакой реакции на вновь введенные топики нет.

3. Сбросил питание rPI, перезагрузил. Ни одного своего топика в списке MD не обнаружил, зато невесть откуда взялся удаленный ранее топик homebridge/from/connected

Сходил по кругу пп.2-3 несколько раз. Понял, что это такая сказка про белого бычка.

Нет, я верю, что у кого-то что-то как-то работает, наверное. Но пока что мои представления о том, как такая система должна бы работать, никак не соответствуют наблюдениям. Может, я какие-то волшебные заклинания не знаю, или вообще слишком многого хочу.
fandaymon
Сообщения: 687
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 26 раз
Поблагодарили: 298 раз

Re: HBus

Сообщение fandaymon » Вс июн 09, 2019 3:28 pm

akouz писал(а):
Сб июн 08, 2019 12:00 pm
1. Получил Raspberry PI 3+. По инструкции скачал образ 3.35, залил на карточку, запустил. Кое-как удалось залогиниться, логин pi, пароль оказался raspberry (а вовсе не raspberrymj, как вводит в заблуждение инструкция по установке). Определил IP командой hostname -I
В инструкции ссылка на коннект, а там в описании образа написано - пароль от ssh либо raspberrymj, либо raspberry
akouz писал(а):
Сб июн 08, 2019 12:00 pm
2. В браузере ввел этот IP, появился экран МД. Перешел в панель управления, выбрал MQTT, поудалял оттуда весь мусор, оставил только $SYS/broker/uptime. Ввел свои топики. После этого, как я понял, надо перезапустить МД, ибо никакой реакции на вновь введенные топики нет.
Нажал кнопку настроить, там есть поле Subscription path, в котором по умолчанию $SYS/broker/uptime, homebridge/from/#. Изменил это поле на $SYS/broker/uptime, YunmaiScale/raw. Нажал Обновить и всё - топики YunmaiScale/raw стали приходить в МД. Ничего перегружать не надо
akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Пн июн 10, 2019 10:28 am

Спасибо, но я уже наигрался c МД. Если и буду пробовать еще, то, может, когда-то потом. Жизнь коротка...
akouz
Сообщения: 217
Зарегистрирован: Ср июл 09, 2014 3:48 pm
Благодарил (а): 5 раз
Поблагодарили: 32 раза

Re: HBus

Сообщение akouz » Чт июн 13, 2019 1:12 pm

При отладке шлюза выяснилось, что при подключении к брокеру скетч надолго (примерно на 6-7 секунд) "зависает", если MQTT брокер отсутствует (выключен). Причем зависает наглухо, вызов библиотечной функции все это время не отдает управление. После копания в библиотеках стало понятно, что малой кровью от этого избавиться не удастся. Оставил как есть, только меняю время паузы между попытками подключения. Если соединение с MQTT было, то при разрыве шлюз три раза будет пытаться восстановить соединение с паузами в 2 сек между попытками. Если соединения не было, то паузы увеличиватся до 30 сек.

Добавлены опциональные имя пользователя и пароль для подключения к брокеру. Если строки пустые, то соединение производится без них, это годится для МД. Для брокера в составе HomeAssistant имя и пароль нужны.

Пользовательская команда (Custom Command) с параметром {cmd:3} выводит последнее измеренное время от момента отсылки сообщения брокеру до момента получения "эха" по подписке. Например, когда брокер на rPI 3+ находится в локальной сети:

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

FF HBus 0A 00 11 00 02 15 9B 01  {cmd:3}
 - dbg:  MQTT roundtrip 43 ms[0D][0A]
Ревизию скетча 1.5 выложил на Гитхаб.
Ответить