Настройка для работы с внешним брокером

Извините конечно, но я не понимаю.

Давайте по порядку как для школьника:

1.Захожу в консоль контроллера, авторизуюсь.

2.Ввожу команду: nano /etc/mosquitto/conf.d/20bridges.conf

3.Открывается пустой файл. В этот файл пишу:

connection bridge1

address 192.168.1.74
notifications true
notification_topic /clientnotification/bridge1_status
remote_username mqtt
remote_password mqtt

Где адрес, это адрес моего сервера с НА, пользователь и пароль это от mosquitto broker

Все верно, в конце после строки ввода пароля пропишите еще:

topic +/# both

Это сделает все топики брокера WB видимым в брокере На, и наоборот. Грубо говоря два брокера станут зеркально работать.

Понял, пробую.

Это, скорее, вредный совет. То есть “все” топики - включая и служебные и /rpc, напимер. То есть да, можно, но приведет к тому что между брокерами будет гулять вообще все, включая исторические данные при работе с “Историей”.

Автор просил объяснить ему как для школьника. Сделает так, и будет добавлять устройства по типикам как они публикуются. Я не думаю что у него брокер HA очень сильно нагружен публикациями. У меня так три брокера синхронизируются, WB,HA, Weintek. Причем HA к Weintek подключен по IP sec через LTE.Работает так много лет, вообще проблем не наблюдаю.

Вопрос на засыпку. На WB можно второй одновременно мост поднять?

А если будут гулять исторические данные, в чем вред?

Да, можно.
Главное понимать как это будет работать в случае недоступности, например.

Добрый вечер.

С настройкой работы НА и WB получилось, спасибо за содействие.

Пользуясь случаем, есть ещё вопрос. У меня к контроллеру полключены реле WB-MR. Я включаю реле, в НА вижу статус. После этого я предположим выключаю сервер с НА и затем включаю, через какое то время реле отключаются. Можно ли поправить это где то?

То есть, я так понимаю, после запуска, НА не видит включенного состояния реле, у НА статус реле выключенный и он соответственно отправляет команду на WB на их отключение.

В НА топики статуса и команды разные? Покожите конфиг одного реле в НА.

Логично, да.
Для примера, вот так у меня настроен какой-то произвольный канал реле:

    - unique_id: wb_socket_chidrenroom_switch
      name: "WB K1 Switch"
      state_topic: "/devices/SocketRelay1/controls/K1"
      command_topic: "/devices/SocketRelay1/controls/K1/on"
      payload_on: "1"
      payload_off: "0"
      retain: true

Вот такое не воспроизводится.
А в каком состоянии этот “command_topic” при включении HA? До того как мост поднимается, например?
То есть у вас два брокера, соединенные мостом. Вот при текущей настройке, “все ко всем”, предположим связь между брокерами в какой-то момент разорвалась. Потом на одном из них в retain топик была опубликована строка “1” а на другом в тот же топик “0”.
И при восстановлении связи, если не настроен “источник истины” нельзя точно сказать какое значение в топике будет, это зависит исключительно от того каким в стеке событий (очереди синхронизации) для каждого из брокеров (в их локальных очередях) оно будет.
То есть какое позже придет - то и установится.

Нет.
При запуске Home Assistant не отправляет никаких сообщений в command_topic , если это не предусмотрено автоматизацией или сценарием. Про это явно написано в его документации.

Вот этого вопроса не понял… Какой документацией по интеграции пользуетесь?

Имелось ввиду state_topic: и command_topic:

а вот это зачем? опубликуется же топик on с флагом retain.

- name: "уличное освещение вкл "
     unique_id: street_led_on
     icon: mdi:led
     state_topic: "/devices/wb-mr6cv3_36/controls/K1"
     command_topic: "/devices/wb-mr6cv3_36/controls/K1/on"    
     payload_on: "1"
     payload_off:  "0"
     state_on: "1"
     state_off: "0"
     availability_topic: "$SYS/broker/connection/raspberrypi.external-bridge/state"
     payload_available: "1"
     payload_not_available: "0"     
     qos: 1
     retain: false

Вот так без проблем работает у меня, перезагрузки НА не влияют.

Благодарю, это ценное замечание. И тут тоже убрал.
А это сам заметил уже потом, как отправил сообщение. Оно уже много лет, больше пяти, так было. Поправил, конечно.

Спасибо, буду пробовать

Добрый день,
Удалось ли решить вопрос?