Режим моста в Mosquitto на примере CloudMQTT

Порой возникает задача объединить несколько MQTT брокеров в один. Я столкнулся с этим при настройке голосового помощника для умного дома без наличия выделенного IP-адреса у последнего. Предполагаемая схема была такая: «Алиса» — «Навык Домовенок Кузя» — «CloudMQTT» — «Локальный Mosquitto» — «Home Assistant». Да, сложно. Да, много посредников. Но на тот момент другого варианта не было.

В целом, настройка локального брокера оказалась делом совсем не сложным:

1.Открываем файл /etc/mosquitto/mosquitto.conf и убеждаемся в наличии там следующей строчки:

include_dir /etc/mosquitto/conf.d

Если ее нет — добавляем.

2. Создаем файл /etc/mosquitto/conf.d/cloudmqtt.conf со следующим содержимым:

connection cloudmqtt
address m16.cloudmqtt.com:28093
remote_username USER_LOGIN
remote_password USER_PASSWORD
remote_clientid cloudmqtt
bridge_protocol_version mqttv311
try_private true
notifications false
start_type automatic
topic # both 2 /cloudmqtt/
bridge_cafile /etc/mosquitto/ca_certificates/addtrustexternalcaroot.cer
bridge_insecure false
cleansession false
local_clientid mosquitto

Где необходимо указать свои данные от созданного инстанса в CloudMQTT:

  • m16.cloudmqtt.com:28093 — адрес и порт;
  • USER_LOGIN — имя пользователя;
  • USER_PASSWORD — пароль пользователя.

3. Скачиваем корневой сертификат addtrustexternalcaroot.cer и помещаем его в каталог /etc/mosquitto/ca_certificates/

4. Перезагружаем Mosquitto. Теперь все данные с CloudMQTT будут автоматически синхронизироваться с локальным брокером в топике /cloudmqtt/

Обсуждение

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *