Обнуление значений mqtt топиков при (пере-)запуске wb-mqtt-serial

А что возвращают?

apt policy wb-mqtt-serial
apt policy wb-mqtt-homeui

Пожалуйста:

apt policy wb-mqtt-serial

# apt policy wb-mqtt-serial
wb-mqtt-serial:
Установлен: 2.6.8~fix+32062-values+1+4ac9d0f
Кандидат: 2.7.0
Таблица версий:
2.7.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.7.0~feature+setup-section-ui+41+fcdb2ef 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.7.0~feature+setup-section-ui+36+a614e9d 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.7.0~feature+setup-section-ui+35+6ea0678 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.7.0~feature+setup-section-ui+27+0dff413 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.7.0~feature+setup-section-ui+21+4bcb0b0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.8 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
*** 2.6.8~fix+32062-values+1+4ac9d0f 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
100 /var/lib/dpkg/status
2.6.7 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.6 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.5 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.3 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.2~fix+channel-validation+3+c66401a 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.6.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.5.2~feature+unchanged-values+1+03ac6ea 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.5.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.5.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.4.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.3.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.3.0~feature+modbus+tcp+4+2eb94ad 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.2.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.1.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.1.0~feature+speed+up+15+2831b6d 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.0.4 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.0.3 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.0.3~feature+speed+up+14+6eb7482 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
2.0.2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.63.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.62.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.61.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.61.0~rc.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.60.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.60.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.60.0~rc.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.59.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.58.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.57.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.57.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.56.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.55.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.55.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.54.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.53.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.53.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.52.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.51.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.51.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.51.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.50.2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.50.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.50.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.49.3 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.49.2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.49.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.49.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.49.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.48 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.48 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.47.2 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.46 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.45 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.45 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.44.2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.44.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.44 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.43 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.42 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.41.3 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
1.41.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.40.4 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.40.3 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.40.2 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.40.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.38.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.37.1~beta1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
1.26 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages

apt policy wb-mqtt-homeui

# apt policy wb-mqtt-homeui
wb-mqtt-homeui:
Установлен: 2.0.4
Кандидат: 2.0.4
Таблица версий:
2.0.5 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
*** 2.0.4 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
100 /var/lib/dpkg/status
2.0.3 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
2.0.1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc6 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc5 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc4 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc3 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc2 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0.0~rc1 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0~beta13 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0~beta12 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0~beta11 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0~beta10 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
2.0~beta9 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
1.8.0 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
1.7.1 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
1.7 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages
1.6.5 990
990 http://releases.contactless.ru/stable/stretch stretch/main armhf Packages
990 http://releases.contactless.ru/stable/stretch stretch/main all Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
910 http://releases.contactless.ru/experimental/stretch stretch/main all Packages

Ещё можно лог wb-mqtt-serial?

journalctl -u wb-mqtt-serial --no-pager > log.txt

Пожалуйста:

log.txt (33.3 КБ)

Попробуйте новую версию:

apt update
apt install wb-mqtt-serial=2.6.8~fix+32062-values+1+e1548ce 

С этой версией нулевых значений нет. Полностью пропадают mqtt топики контролов устройств, потом появляются обратно с актуальными значениями, сработку по изменению состояния home assistant в это время больше не фиксирует.
Для нас такой вариант гораздо лучше, чем когда устройства (и их mqtt топики) оставались на месте, но занулялись.
Большое спасибо!

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

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

Брокер на контроллере мостом подключается к другому брокеру, назовём его основным. Ожидается, что структура топиков будет совпадать на обоих брокерах, но это не так. На основном будет не хватать приличного количества meta-топиков.

Покажите пожалуйста как настроен мост, его конфиг.

А возможно проблема в другом. Вот конфиг моста:

connection ***
address **.**.**.**:**
clientid ***
try_private false

topic /devices/# both 2 "" /**
topic /config/#  both 2 "" /**
topic /rpc/#  both 2 "" /**

Почему-то на тот брокер, на который настроен мост, попадают не все топики со свойством retained.
Подписываемся непосредственно с контроллера на локальный брокер:

root@wirenboard-AMNRGCDG:/etc/mosquitto/conf.d# mosquitto_sub -v -q 2 -d -t '/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/#'
Client mosqsub|30289-wirenboar sending CONNECT
Client mosqsub|30289-wirenboar received CONNACK
Client mosqsub|30289-wirenboar sending SUBSCRIBE (Mid: 1, Topic: /devices/wb-map12e_29/controls/Ch 4 Ipeak L2/#, QoS: 2)
Client mosqsub|30289-wirenboar received SUBACK
Subscribed (mid: 1): 2
Client mosqsub|30289-wirenboar received PUBLISH (d0, q1, r1, m1, '/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/order', ... (3 bytes))
Client mosqsub|30289-wirenboar sending PUBACK (Mid: 1)
/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/order 119
Client mosqsub|30289-wirenboar received PUBLISH (d0, q1, r1, m2, '/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/readonly', ... (1 bytes))
Client mosqsub|30289-wirenboar sending PUBACK (Mid: 2)
/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/readonly 1
Client mosqsub|30289-wirenboar received PUBLISH (d0, q1, r1, m3, '/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/type', ... (5 bytes))
Client mosqsub|30289-wirenboar sending PUBACK (Mid: 3)
/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/type value
Client mosqsub|30289-wirenboar received PUBLISH (d0, q1, r1, m4, '/devices/wb-map12e_29/controls/Ch 4 Ipeak L2', ... (5 bytes))
Client mosqsub|30289-wirenboar sending PUBACK (Mid: 4)
/devices/wb-map12e_29/controls/Ch 4 Ipeak L2 -0.02

Подписываемся с контроллера на брокер, куда настроен мост:

root@wirenboard-AMNRGCDG:/etc/mosquitto/conf.d# mosquitto_sub -v -q 2 -d -h **.**.**.** -p ** -t '/***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/#'
Client mosqsub|30294-wirenboar sending CONNECT
Client mosqsub|30294-wirenboar received CONNACK
Client mosqsub|30294-wirenboar sending SUBSCRIBE (Mid: 1, Topic: /***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/#, QoS: 2)
Client mosqsub|30294-wirenboar received SUBACK
Subscribed (mid: 1): 2
Client mosqsub|30294-wirenboar received PUBLISH (d0, q1, r1, m1, '/***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/readonly', ... (1 bytes))
Client mosqsub|30294-wirenboar sending PUBACK (Mid: 1)
/***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2/meta/readonly 1
Client mosqsub|30294-wirenboar received PUBLISH (d0, q1, r1, m2, '/***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2', ... (5 bytes))
Client mosqsub|30294-wirenboar sending PUBACK (Mid: 2)
/***/devices/wb-map12e_29/controls/Ch 4 Ipeak L2 -0.02

Настроил мост на свежеподнятый брокер (mosuitto под Debian’ом 10) - не воспроизводится.
serial 2.6.8~fix+32062-values+1+e1548ce
mosquitto 1.3.4-2+deb8u4
У вас какой брокер?

Только что удалось повторить на другом контроллере. Wb-mqtt-serial нужно взять из experimental ветки, насчёт релиза был не прав, сейчас ещё разбираемся как она попала на только что сброшенный к заводским контроллер.

wb-mqtt-serial: Version: 2.7.1
mosquitto: 1.4.15-1+wb7-3

mosquitto на который настроен мост: 1.4.15-2ubuntu0.18.04.3

Появилось ещё немного подробностей. Похоже, что последняя версия wb-mqtt-serial, в которой всё в порядке - 1.63.0. В последующих версиях начинается чехарда, возможно с retained сообщениями. Не все meta-топики попадают на основной брокер, на который настроен bridge. Это явно проявляется, если много устройств с большим количеством контролов, например, несколько wb-map’ов. Получается у вас повторить ситуацию?

Пока не получается. А в логе брокера на который настроен bridge у вас ошибки какие-нибудь есть? Например “Socket error on client”?

Нет, ошибок на стороне брокера, на который настроен мост, нет.

Нам при решении другой проблемы на контроллере пришлось использовать экспериментальную ветку и у нас проявился тот же нюанс на модуле wb-homa-gpio, не все meta-топики появились на брокере через мост. Очевидно в обоих пакетах работает по одному алгоритму. Хотя возможно ранее просто не замечали, обычно контролов не очень много.

Попробуйте собрать стенд, подключить 2-3 wb-map12, несколько датчиков и/или wb-mir’ов, обновите wb-mqtt-serial до последней версии, настройте bridge на какой-нибудь хост с mosquitto и посмотрите meta-топики - точно будут пропуски. Удобно смотреть mqtt-explorer’ом. Для наглядности можно сервис wb-mqtt-serial рестартонуть.

Занялся, собираю.

Мы перед перезапуском wb-mqtt-serial отключаем wb-mqtt-db.

Посмотрите, пожалуйста по ссылке, похоже мы наткнулись именно на эту проблему. Как раз у нас стоял qos=2, и при рестарте сервиса передаётся большое количество retained-топиков. Сейчас на стенде попробовал поменять qos на 0, все мета-топики пришли через бридж. Похоже в вашей версии москито эта ошибка не исправлена.

2 лайка

Да, будем менять на более свежую версию.