Home Assistant

Home Assistant – установка Mosquitto

Установка брокера Mosquitto

Если нет прямого доступа к консоли, то подключаемся по SSH и обновляем систему до актуального состояния.

sudo apt-get update
sudo apt-get upgrade

Устанавливаем брокер Mosquitto:

sudo apt-get install mosquitto mosquitto-clients

Далее в целях безопасного доступа к брокеру установим логин и пароль. Для логина homeassistant будет присвоен пароль который вы зададите и который будет сохранен в файле  /etc/mosquitto/passwd

sudo mosquitto_passwd -c /etc/mosquitto/passwd homeassistant

Два раза введите пароль.

Теперь нужно в конфигурационном файле брокера указать на файл с паролем и запретить анонимные подключения. Для этого открываем конфиг брокера:

sudo nano /etc/mosquitto/conf.d/default.conf

Записываем туда следующие строки

listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd

Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и Enter.

Перезагружаем брокер командой:

sudo systemctl restart mosquitto

Проверка работы брокера Mosquitto

Проверяем работу брокера. Открываем параллельно два окна терминала. Далее в первом окне пишем: 

 mosquitto_sub -h localhost -t test -u homeassistant -P  ваш_пароль

Во втором окне напишем:

mosquitto_pub -h localhost -t test -m Hello -u homeassistant -P ваш_пароль

Если все настроено правильно, то в первом терминале мы увидим появившееся сообщение Hello.


Настройка Mosquitto в Home Assistant

Открываем файл configuration.yaml :

sudo nano /home/homeassistant/.homeassistant/configuration.yaml

и дописываем в конец файла:

mqtt:
  broker: 192.168.0.1
  port: 1883
  client_id: home-assistant-1
  keepalive: 60
  username: !secret mqtt_login
  password: !secret mqtt_password
  protocol: 3.1
  birth_message:
    topic: “tele/hass1/LWT”
    payload: “Online”
    qos: 1
    retain: true
  will_message:
    topic: “tele/hass1/LWT”
    payload: “Offline”
    qos: 1
    retain: true

Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и Enter.

В этой конфигурации:

  • broker ip адрес брокера – IP адрес малины
  • client_id уникальное имя подключающегося клиента
  • keepalive время в секундах между отправкой сообщений keep alive
  • username логин для подключения к брокеру
  • password пароль для подключения к брокеру
  • protocol версия протокола
  • birth_message сообщения о доступности клиента
  • will_message сообщения о недоступности клиента
  • topic топик в котором размещается сообщение
  • payload текст сообщения
  • qos грубо говоря приоритет сообщения
  • retain будет ли сообщение передано другим клиентам 

Открываем файл с паролями secrets.yaml :

sudo nano /home/homeassistant/.homeassistant/secrets.yaml

и дописываем в конец файла логин и пароль:

#mqtt
mqtt_login: homeassistant
mqtt_password: ваш_пароль

Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и Enter.

Проверяем файл настроек средствами Home Assistant и перезапускаем.

Проверить сообщения в топике можем набрав в терминале команду:

mosquitto_sub -h localhost -t tele/hass1/LWT -u homeassistant -P  ваш_пароль

Если все настроено правильно вы увидите сообщение:

Online

Добавляем сенсор в Home Assistant

Открываем файл configuration.yaml :

sudo nano /home/homeassistant/.homeassistant/configuration.yaml

и дописываем в конец файла:

mqtt:
  sensor:
    -  state_topic: “tele/hass1/LWT”

В Home Assistant в меню Настройки->Объекты находим MQTT Sensor

На Этом все. Брокер Mosquitto настроен и готов к использованию.