Строительная компания Авеню


Мы в Facebook
Мы в Instagram
Мы в Twitter

О строительстве домов
и ремонте помещений

Услуги,возможности,
предложения о строительстве
и ремонте .....
Актуальные статьи о строительстве
размещаются бесплатно.

Вход на сайт

Несколько серверов Home Assistant в различных подсетях

Отказоустойчивость Home Assistant

Постановка задачи.

Увеличить отказоустойчивость Home Assistant при помощи двух серверов, которые находятся в разных подсетях соединенных при помощи OpenVPN. Также может служить для объединения двух или более домов в одну подсистему.

Исходные данные.

Первый сервер 192.168.4.23:8123, брокер mosquitto 192.168.4.23:1883 среда Ubuntu 20.04. Второй сервер 192.168.3.20:8123, брокер mosquitto 192.168.3.20:1883 среда Raspberry PI Debian.
Эти сервера соединены на основе OpenVPN.

Настройка Home Assistant.

Для решеня этой задачи configuration.yaml 1 и 2 сервера несколько отличаются.

Первый сервер configuration.yaml

http:
   server_host: 192.168.4.23
   server_port: 8123

sonoff:
   username: user1
   password: password1
   sensors: [temperature, humidity, power, current, voltage, rssi]

telegram_bot:
    - platform: polling
    api_key: api1
    allowed_chat_ids:
     - chat1

notify:
    - name: telegram
     platform: telegram
     chat_id: chat1

mqtt:
   discovery: true
   broker: 192.168.4.23
   keepalive: 60
   protocol: 3.1
   port: 1883
   username: name1
   password: pass1
   birth_message:
     topic: "4.23"
     payload: "Online"
     qos: 0
     retain: true

   will_message:
     topic: "4.23"
     payload: "Offline"
     qos: 0
     retain: true

Второй сервер configuration.yaml

http:
   server_host: 192.168.3.20
   server_port: 8123

mqtt_eventstream:
   publish_topic: hass/eventstream/master
   subscribe_topic: hass/eventstream/media

sonoff:
   username: user2
   password: password2
   sensors: [temperature, humidity, power, current, voltage, rssi]

telegram_bot:
   - platform: polling
     api_key: api2
     allowed_chat_ids:
      - chat2

notify:
   - name: telegram
     platform: telegram
     chat_id: chat2

mqtt:
   discovery: true
   broker: 192.168.3.20
   keepalive: 60
   protocol: 3.1
   port: 1883
   username: name2
   password: pass2
   birth_message:
     topic: "3.20"
     payload: "Online"
     qos: 0
     retain: true
   will_message:
     topic: "3.20"
     payload: "Offline"
     qos: 0
     retain: true
где user1,password1,user2,password2 - авторизация Sonoff в eWeLink, api1,chat1,api2,chat2 - авторизация двух пользователей в двух чат ботах Telegram, name1,pass1,name2,pass2 - авторизация в 1 и 2 брокере mosquitto соответственно.

Конфигурация mosquitto файл /etc/mosquitto/conf.d/br.conf

socket_domain ipv4
# External MQTT Broker
connection external-bridge
address 192.168.4.23:1883
topic # both 2
remote_username name1
remote_password pass1

Настройка устройств.

Настройка оконечных устройств в частности ESP8266 заключается в следующем
Два MQTT сервера

где разрешен только один mqqt сервер, а переключение mqtt серверов при отказе осуществляется при помощи правил (rules)

On System#Boot do
timerSet,1,40
timerSet,2,80
ControllerDisable,2
ControllerDisable,1
Let,1,0
gpio,5,1

endon

On MQTT#Connected do
timerSet,1,0
timerSet,2,0
timerSet,3,0
endon

On MQTT#Disconnected do
timerSet,1,10
timerSet,2,50
endon

On Rules#Timer=1 do
timerSet,3,60
ControllerDisable,2
ControllerEnable,1
endon

On Rules#Timer=2 do
timerSet,3,60
ControllerDisable,1
ControllerEnable,2

endon
On Rules#Timer=3 do
Reboot
endon

Выводы.

Таким образом при отказе одного из серверов все устройства ESP8266 либо аналогичные переключаются на другой mqtt сервер. Более того все устройства из 1 подсети доступны из 2 подсети и наоборот.
Две или несколько подсетей могут управлятся, с 1 и 2 сервера абсолютно равноправно.

Новости

Поиск объявлений

Для поиска объявлений сделайте свой выбор и нажмите кнопку Применить