Подключение к облачному MQTT брокеру

Дано:

Садововое товарищество с въездными откатными воротами и двигателем,

Wirenboard 8.5,

С прошивкой wb-2602

И релейным модулем: WB-MR6C,

Выход К1 WB-MR6C подключен к мотору откатных ворот ко входу Open, то есть кратковременное замыкание выхода K1 (1-10 секунд) дает команду воротам открыться, (пока вход Open замкнут закрытие не производится), далее автоматика двигателя по фотоэлементам либо по тайм-ауту сама закрывает ворота.

Задача:

Есть облачная система управления поселком, они у себя развернули MQTT брокер, он может выдавать команду на открытие ворот (нам это необходимо для реализации открытия ворот по звонку, звонки будут приходить на их систему, они будут обрабатывать и сбрасывать вызов, соответственно если телефон в белом списке то облачный MQTT брокер может менять топик).

Нам выдали реквизиты MQTT брокера: сервер, порт, логин,пароль.

Вопрос:

Как лучше реализовать связь нашего Wirenboard и облачного MQTT сервера, Wirenboard же сам является Брокером, какими инструментами нам лучше воспользоваться?

Добрый день.
Решение в лоб - выглядит как сервис на python, например, который подключается как клиент к брокеру и подписывается на топики с событиями.

Есть какие то примеры подобного?

Не совсем понимаю откуда начинать.

Мне кажется в прошлых прошивках был еще MQTT Bridge, может быть каким то образом можно было через этот функционал реализовать общение двух MQTT брокеров?

Набросал пример:

import paho.mqtt.client as mqtt

BROKER = "10.0.0.86"
PORT = 1883
TOPIC = "/devices/wb-gpio/controls/A4_OUT"

def on_message(client, userdata, msg):
    print(f"Получено сообщение: {msg.topic} -> {msg.payload.decode()}")

client = mqtt.Client()
client.on_message = on_message

client.connect(BROKER, PORT, 60)
client.subscribe(TOPIC)

print(f"Подписка на топик: {TOPIC} на брокере {BROKER}:{PORT}")
client.loop_forever()

То есть достаточно поменять “print(f"Получено сообщение” на публикацию в локальный брокер, например.

В mosquitto он был, и есть. Да, можно настроить и бридж. Но он мне кажется что отдельный скорипт проще в обработке ошибок.