Перейти к содержанию

▍ Home Assistant

Настройка Home Assistant на Raspberry Pi 4B и USB SONOFF Zigbee 3.0

Ещё один пример разворачивания домашнего умного дома на базе Home Assistant, который будет располагаться в Docker контейнерах. Для начала подготовим SD карточку, установив на неё Ubuntu Server 22.04, для этого можно воспользоваться графическим установщиком:

sudo apt-get install rpi-imager

После установки и запуска расберри подключаемся по SSH и выполняем базовую устновку docker и docker-compose. Далее создаем файл docker-compose.yml со следующим содержимым:

nano 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

Запускаем:

docker-compose up -d

Настройка Home Assistant

nano /docker/conf/homeassistant/configuration.yaml
# 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

nano /docker/conf/mosquitto/config/mosquitto.conf
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

nano /docker/conf/zigbee2mqtt/configuration.yaml
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

Home Assistant

Заходим в MQTT -> Настройки и подставляем наши значения:

MQTT настройки

, где имя пользователя и пароль мы ранее задавали через mosquitto_passwd.

Добавление устройств

Переходим в веб-интерфейс Zigbee2MQTT https://zigbee.example.ru, при запросе вводим наш токен из параметра auth_token: admin, в нашем случае это будет admin. Заходим в раздел Настройки -> Главные, убедитесь, что стоит галочка рядом с пунктом Permit join и нажмите Submit

Zigbee join

Далее на самом устройстве выполняете нужные действия, как правило это зажать кнопку на 5 секунд, дождаться её мигания, после чего устройство должно появиться в веб-интерфейс и автоматически прокинуться в Home Assistant

Zigbee list

Home Assistant

К началу