▍ Home Assistant¶
Настройка Home Assistant на Raspberry Pi 4B и USB SONOFF Zigbee 3.0¶
Ещё один пример разворачивания домашнего умного дома на базе Home Assistant, который будет располагаться в Docker контейнерах. Для начала подготовим SD карточку, установив на неё Ubuntu Server 22.04, для этого можно воспользоваться графическим установщиком:
После установки и запуска расберри подключаемся по SSH и выполняем базовую устновку docker и docker-compose. Далее создаем файл docker-compose.yml со следующим содержимым:
# Пропишем версию
version: "3.3"
# Перечислим сервисы
services:
### HA
homeassistant:
image: homeassistant/home-assistant:latest
container_name: homeassistant
restart: always
environment:
- TZ=Europe/Moscow
volumes:
- /docker/conf/homeassistant:/config
ports:
- "8123:8123"
mosquitto:
image: eclipse-mosquitto
container_name: mosquitto
restart: always
volumes:
- /docker/conf/mosquitto:/mosquitto
zigbee2mqtt:
image: koenkk/zigbee2mqtt
container_name: zigbee2mqtt
restart: always
depends_on:
- mosquitto
environment:
- TZ=Europe/Moscow
volumes:
- /docker/conf/zigbee2mqtt:/app/data
- /run/udev:/run/udev:ro
devices:
- /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_b8e81ef55b29ec119d78757840c9ce8d-if00-port0:/dev/ttyACM0
ports:
- "8091:80"
Актуальное имя USB донгла можно увидеть так:
# ls -la /dev/serial/by-id/
total 0
drwxr-xr-x 2 root root 60 сен 19 19:57 ./
drwxr-xr-x 4 root root 80 сен 19 19:57 ../
lrwxrwxrwx 1 root root 13 сен 19 19:57 usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_b8e81ef55b29ec119d78757840c9ce8d-if00-port0 -> ../../ttyUSB0
Запускаем:
Настройка Home Assistant¶
# Loads default set of integrations. Do not remove.
default_config:
# Text to speech
tts:
- platform: google_translate
http:
use_x_forwarded_for: true
trusted_proxies:
- 10.0.0.0/8
- 172.0.0.0/8
- 192.168.0.0/16
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
Настройка Mosquitto MQTT Broker¶
per_listener_settings true
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
## Authentication ##
allow_anonymous false
listener 1883
password_file /mosquitto/config/password.txt
Для генерации файла с паролем выполним следующие команды:
# docker compose exec mosquitto mosquitto_passwd -b /mosquitto/config/password2.txt admin NEWPASSWORD
Настройка Zigbee2MQTT¶
homeassistant:
discovery_topic: homeassistant
legacy_entity_attributes: true
legacy_triggers: true
status_topic: homeassistant/status
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://mosquitto
user: admin
password: NEWPASSWORD
serial:
port: /dev/ttyACM0
adapter: auto
advanced:
homeassistant_legacy_entity_attributes: false
legacy_api: false
availability: true
legacy_availability_payload: false
log_syslog:
app_name: Zigbee2MQTT
eol: /n
host: localhost
localhost: localhost
path: /dev/log
pid: process.pid
port: 123
protocol: tcp4
type: '5424'
pan_id: 6754
channel: 11
last_seen: ISO_8601
device_options:
legacy: false
frontend:
port: 80
host: 0.0.0.0
auth_token: admin
url: https://zigbee.example.ru
availability:
active:
timeout: 10
passive:
timeout: 1500
Заходим в Web интерфейс HA, переходим слева в раздел Настройки
-> Устройства и службы
-> нажимаем на кнопку Добавить интеграцию
и добавляем MQTT
Заходим в MQTT -> Настройки
и подставляем наши значения:
, где имя пользователя и пароль мы ранее задавали через mosquitto_passwd
.
Добавление устройств¶
Переходим в веб-интерфейс Zigbee2MQTT https://zigbee.example.ru
, при запросе вводим наш токен из параметра auth_token: admin
, в нашем случае это будет admin
. Заходим в раздел Настройки
-> Главные
, убедитесь, что стоит галочка рядом с пунктом Permit join
и нажмите Submit
Далее на самом устройстве выполняете нужные действия, как правило это зажать кнопку на 5 секунд, дождаться её мигания, после чего устройство должно появиться в веб-интерфейс и автоматически прокинуться в Home Assistant