Флаг Retain для MQTT топиков

Здравствуйте!
При создании “логики защиты” столкнулся с очень не приятной проблемой.
Имеется модуль WBIO-DI-HVD-16 - который следит за состояниями трех концевых выключателей.
На данный момент пишем свой клиент для Windows, на Python с использованием библиотеки paho-mqtt. Сценарий такой: программа (клиент) при успешном подключении к MQTT брокеру подписывается на 3 топика, узнает текущие значения “концевиков” и в зависимости от этого как - то реагирует (в нашем случае если хотя бы один концевик разомкнут - показывает предупреждение). Собственно далее выяснилось что MQTT просто так никому ничего не расскажет, если только не установлено retain значение. Попробовали развернуть локальный брокер (без контроллера) установили retain значения в топики соответствующие реальным топикам на контроллере - работает штатно, при подписки брокер прислал последнее установленное значение. Далее подключаемся к контроллеру - при подписке ожидаемо тишина. Реакция только если вручную “переключить” все контролируемые топики.

Собственно вопрос ? Можно ли как - то активировать флаг retain? Чтоб при подписке наше ПО могло получать текущее значение топиков?

Добрый день.
Для примера - получаю с компьютера текущее значение топика:

mosquitto_sub -h 10.0.0.77 -v -t /devices/wb-gpio/controls/A3_IN -C 1
/devices/wb-gpio/controls/A3_IN 0

Ничего активировать не надо, значение и так хранится.

Тогда не понятно почему такое поведение. По логам клиент (программа на ПК) - успешно подключается к брокеру контроллера и успешно выполняет подписку на нужные топики. Но на это все. Брокер контроллера не возвращает текущее значение топика (как это было бы при retain), при этом если вручную “переключить” нужные топики (состояние true/false) начинают прилетать сообщения об изменении состояния топика. Может при подписке на топик нужно добавить какой либо флаг или параметр?

Пожалуйста проверьте командой, которую я привел выше.

В общем, не знаю в чем была загвоздка.
Попробовал подписку через mosquitto_sub, в консоли получил текущее значение топика.
Пробую подписку через свой софт - тишина. Полез в исходный код, проверил имена топиков, проверил код метода подписки - все верно. Смотрю в логи - подписка проходит успешно, значения с топиков не идут. Переустановил библиотеку paho-mqtt, на контроллере (8.4) накатил крайний testing релиз, подключаюсь вновь и о чудо! В логах получены сообщения о текущих значениях топиков!
В общем что - то одно точно помогло)
Пока понаблюдаю за поведением.

Судя по этому

Это точно не связано с изменением релиза. Так как получение работало сколько помню.

UPD: Подтверждаю, дело все таки в библиотеке. Попробовали воспроизвести на другом ПК, самая актуальная версия paho-mqtt - 2.1.0 , почему - то работает с таким косяком. Откатились к версии 1.6 - все ок.
Может кому в будущем инфа будет полезна)

Странно… А полное имя пакета напишите пожалуйста? И что за дистрибутив у вас, заодно.

Изначально при установке через pip загружается файл с названием:
paho_mqtt-2.1.0-py3-none-any.whl

С ним, у меня почему - то при подписке на топики текущие значения не прилетают.

Командой pip install “paho-mqtt<2.0.0”, скачивается вот такой файл:
paho_mqtt-1.6.1-py3-none-any.whl, в таком случае корректно прилетают текущие значения топиков.

Не совсем понял, я веду разработку на ОС WIndows, в редакторе VS Code

Ага, понятно.