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 настроен и готов к использованию.