Установка home assistant на windows 7 x64


Install Home Assistant Operating System

Download the appropriate image

  • VirtualBox (.vdi)

  • KVM (.qcow2)

  • Vmware Workstation (.vmdk)

  • Hyper-V (.vhdx)

After downloading, decompress the image. If the image comes in a ZIP file, for example, unzip it.

Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines, we recommend installing Home Assistant OS directly on a Home Assistant Yellow, a Raspberry Pi, or an ODROID.

Create the virtual machine

Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs).

Minimum recommended assignments:

  • 2 GB RAM
  • 32 GB Storage
  • 2vCPU

All these can be extended if your usage calls for more resources.

Hypervisor specific configuration

VirtualBox

KVM (virt-manager)

KVM (virt-install)

Vmware Workstation

Hyper-V

  1. Create a new virtual machine.
  2. Select type Linux and version Linux 2.6 / 3.x / 4.x (64-bit).
  3. Select Use an existing virtual hard disk file, select the unzipped VDI file from above.
  4. Edit the Settings of the VM and go to System > Motherboard. Select Enable EFI.
  5. Then go to Network > Adapter 1. Choose Bridged Adapter and choose your network adapter.

Please keep in mind that the bridged adapter only functions over a hardwired Ethernet connection.
Using Wi-Fi on your VirtualBox host is unsupported.

6. Then go to **Audio** and choose **Intel HD Audio** as audio controller.

By default, VirtualBox does not free up unused disk space. To automatically shrink the vdi disk image
the discard option must be enabled using your host machine’s terminal:

VBoxManage storageattach <VM name> --storagectl "SATA" --port 0 --device 0 --nonrotational on --discard on

More details can be found about the command can be found here.

  1. Create a new virtual machine in virt-manager.
  2. Select Import existing disk image, provide the path to the QCOW2 image above.
  3. Choose Generic Default for the operating system.
  4. Check the box for Customize configuration before install.
  5. Under Network Selection, select your bridge.
  6. Under customization select Overview > Firmware > UEFI x86_64: …. Make sure to select a non-secureboot version of OVMF (does not contain the word secure, secboot, etc.), e.g., /usr/share/edk2/ovmf/OVMF_CODE.fd.
  7. Click Add Hardware (bottom left), and select Channel.
  8. Select device type: unix.
  9. Select name: org.qemu.guest_agent.0.
  10. Finally, select Begin Installation (upper left corner).
virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --import --graphics none --boot uefi

If you have a USB dongle to attach, you need to add the option `—hostdev busID.deviceId`. You can discover these IDs via the `lsusb` command.
As example, if `lsusb` output is:

   Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 003 Device 004: ID 30c9:0052 Luxvisions Innotech Limited Integrated RGB Camera
   Bus 003 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
   Bus 003 Device 002: ID 06cb:00fc Synaptics, Inc. 
   Bus 003 Device 005: ID 8087:0033 Intel Corp. 
   Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
   Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

You can recognize the Sonoff dongle at Bus 003 Device 003. So the command to install the VM will become:

virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --import --graphics none --boot uefi --hostdev 003.003

Note that this configuration (bus 003, device 003) is just an example, your dongle could be on another bus and/or with another device ID.
Please check the correct IDs of your USB dongle with lsusb.

  1. Create a new virtual machine.
  2. Select Custom, make it compatible with the default of Workstation and ESX.
  3. Choose I will install the operating system later, select Linux > Other Linux 5.x or later kernel 64-bit.
  4. Select Use Bridged Networking.
  5. Select Use an existing virtual disk and select the VMDK file above.

After the VM has been created, go to Settings > Options > Advanced. Under Firmware type select UEFI.

Hyper-V does not have USB support

  1. Create a new virtual machine.
  2. Select Generation 2.
  3. Select Connection > Your Virtual Switch that is bridged.
  4. Select Use an existing virtual hard disk and select the VHDX file from above.

After creation, go to Settings > Security and deselect Enable Secure Boot.

Start up your virtual machine

  1. Start the virtual machine.
  2. Observe the boot process of the Home Assistant Operating System.
  3. Once completed, you will be able to reach Home Assistant on homeassistant.local:8123. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at homeassistant:8123 or http://X.X.X.X:8123 (replace X.X.X.X with your ’s IP address).

Help us improve Home Assistant

Have you just installed Home Assistant? The Home Assistant team is looking to talk to you to understand how the installation went.

With the Home Assistant Operating System installed and accessible, you can continue with onboarding.

Install Home Assistant Core

Install WSL

To install Home Assistant Core on Windows, you will need to use the Windows Subsystem for Linux (WSL). Follow the WSL installation instructions and install Ubuntu from the Windows Store.

As an alternative, Home Assistant OS can be installed in a Linux guest VM. Running Home Assistant Core directly on Windows is not supported.

This is an advanced installation process, and some steps might differ on your system. Considering the nature of this installation type, we assume you can handle subtle differences between this document and the system configuration you are using. When in doubt, please consider one of the other installation methods, as they might be a better fit instead.

Prerequisites

This guide assumes that you already have an operating system setup and have installed Python 3.11 (including the package python3-dev) or newer.

Install dependencies

Before you start, make sure your system is fully updated, all packages in this guide are installed with apt, if your OS does not have that, look for alternatives.

sudo apt-get update
sudo apt-get upgrade -y

Install the dependencies:

sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev

The above-listed dependencies might differ or missing, depending on your system or personal use of Home Assistant.

Create an account

Add an account for Home Assistant Core called homeassistant.
Since this account is only for running Home Assistant Core the extra arguments of -rm is added to create a system account and create a home directory.

sudo useradd -rm homeassistant

Create the virtual environment

First we will create a directory for the installation of Home Assistant Core and change the owner to the homeassistant account.

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

Next up is to create and change to a virtual environment for Home Assistant Core. This will be done as the homeassistant account.

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate

Once you have activated the virtual environment (notice the prompt change to (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $) you will need to run the following command to install a required Python package.

python3 -m pip install wheel

Once you have installed the required Python package, it is now time to install Home Assistant Core!

pip3 install homeassistant==2023.10.1

Start Home Assistant Core for the first time. This will complete the installation for you, automatically creating the .homeassistant configuration directory in the /home/homeassistant directory, and installing any basic dependencies.

You can now reach your installation via the web interface on http://homeassistant.local:8123.

If this address doesn’t work you may also try http://localhost:8123 or http://X.X.X.X:8123 (replace X.X.X.X with your machines’ IP address).

When you run the hass command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get a site cannot be reached error when accessing the web interface. This will only happen the first time. Subsequent restarts will be much faster.

Help us to improve our documentation

Suggest an edit to this page, or provide/view feedback for this page.

Update: новая статья

У новых пользователей часто возникает вопрос — можно ли установить Home Assistant на Windows?

Конечно можно! Проблема заключается в том, что не все зависимости Home Assistant легко установятся на любую сборку Windows. Об этом можно почитать тут.

На портале уже была статья о подобной установке. В своей версии я чуть подробнее опишу детали.

Идём на сайт python и скачиваем последнюю на момент написания статьи версию. Можно скачать как обычную, так и 64-битную версию.

В процессе установки Python я встречал следующие проблемы:

  • установка не стартовала на «голой» Windows 7 без важных обновлений — нужно обновить систему стандартным способом
  • установка не завершалась с недоступным сайтом python (из-за РКН) — нужно отключить опции download debug…

Вот у вас и установлен Python.

Далее нажимаем на клавиатуре win R и запускаем cmd

В запустившейся консоли вводим :

pip install homeassistant

Вот у вас и установлен последний Home Assistant.

На этом этапе у вас не должно возникнуть особых проблем. Python и HA должны установиться в практически любую систему.

Первый запуск Home Assistant

В той же консоли, что и ранее, просто вводим — hass.

Начнётся первый запуск HA. Он может быть достаточно долгим. HA будет скачивать и устанавливать разные библиотеки python, которые требуются конфигурации по умолчанию. А их не мало.

Плюс, если в процессе установки в вашей локальной сети обнаружатся поддерживаемые устройства — начнётся установка и их библиотек. В логе это отображается примерно так:

INFO (SyncWorker_1) [homeassistant.util.package] Attempting install of pychromecast==4.0.1

Вот на этом этапе вполне возможны проблемы и разные ошибки в консоли.

Терпеливо ждите пока HA делает свои дела. В идеале в конце лога вы должны увидеть строчку:

INFO (MainThread) [homeassistant.core] Starting Home Assistant

Далее попытайтесь открыть в любом браузере страницу:

http://localhost:8123/Вполне возможно у вас ничего не откроется. Это нормально.

План 2

Нажимайте в консоли Ctrl C, это принудительно остановит HA. Если не получится — закрывайте консоль и запускайте её заново.

И снова вводите в консоли — hass. И снова ждём строчку Starting Home Assistant и пробуем открыть в браузере:

http://localhost:8123/

План 3

Если со второй попытки страница так и не открылась — останавливаем HA и открываем папку с конфигами. Путь до неё показывается сразу после ввода команды hass. Это должно быть что-то вроде:

C:\Users\Alexey\AppData\Roaming\.homeassistant

Только с именем вашего пользователя. Проще вбить этот адрес сразу в проводнике Windows.

Теперь правим файл configuration.yaml.

Заменяем всё его содержимое на 3 простые строки:

config: frontend: system_health:

Это минимальный набор модулей, необходимый для старта HA и отображения главной страницы. Сильно сократит перечень зависимостей и повысит шансы старта.

Снова запускаем hass и пробуем открыть страницу.

PS

Это не все проблемы с которыми можно столкнуться. Но, надеюсь, вам хватит советов, описанных в статье.

Home Assistant Windows Portable (HassWP)


Portable version of Home Assistant for Windows.

ATTENTION: Direct works on Windows is not maintained by the core developers of Home Assistant. So some components/integrations may not work at all. No need to ask me or the core authors to fix it. If something you need doesn’t work — use virtualization.

Preinstalled:

  • WinPython v3.11.5 64-bit
  • Home Assistant v2023.9.3
  • NotePad++ v7.8.5 32bit
  • HACS v1.33.0
  • Ergomotion Smart Beds v1.0.0
  • FasterWhisper v1.0.0
  • JURA Coffee Machines v1.0.1
  • SonoffLAN v3.5.2
  • StartTime v1.1.6
  • StreamAssist v1.0.0
  • WebRTC v3.3.0
  • XiaomiGateway3 v3.3.2
  • YandexStation v3.12.4

HOWTO

  1. Download HassWP_XXXX.XX.X.zip
  2. Unpack
  3. Run

Useful files:

  • hass.cmd — run Home Assistant and default Browser
  • notepad.cmd — run NotePad with configuration.yaml
  • web.url — open default Browser with http://localhost:8123/
  • config/reset.cmd — reset Home Assistant but don’t touch config files

Windows 7 or 32-bit

Latest HassWP versions are build for Windows 8+ 64-bit.

If you want the Windows 7 version or 32-bit support — download Hass v2021.12.10. This is because Hass 2021.12.10 is the last Hass with Python 3.8 support. And Python 3.8 it the last Python with Windows 7 support.

Supervisor and Addons

HassWP don’t have and can’t have supervisor and any Hass.io addons. Supervisor can be installed only over Docker. Nativelly Docker works only on Linux core. In any other OS it will use virtualization.

If you really needs Hass.io addons on Windows — use virtualization.

Cameras

Latest HassWP supports cameras stream. For snapshot and recording use relative path from your config folder — media\snapshot.jpeg or www\video.mp4.

Generic camera and WebRTC integrations do not need ffmpeg in your system. But it you want use FFmpeg integration — download ffmpeg manually and put ffmpeg.exe (80-120 MB) to your config folder.

Move config

You can transfer your configuration to another Hass installation at any time. In another HassWP, venv, docker, hass.io, etc. Windows or Linux, it doesn’t matter. Just move the contents of the config folder to a new location. Remember about config/.storage folder, it is also important.

Before any movement — stop the old and new Home Assistant!

Voice Assistant

Latest HassWP supports local Speech-to-Text (STT) engine — Faster Whisper. And Stream Assist — custom component that allows you to turn almost any camera and almost any speaker into a local voice assistant.

Video Demo

Home Assistant Windows Portable (HassWP)

Do it yourself

  1. Download and unpack WinpythonXX-3.XX.XX.0dot.exe
  2. Run from command line:
scripts\env.bat
python -m pip install homeassistant==XXXX.XX
pip install https://github.com/AlexxIT/HassWP/archive/master.zip
mkdir config
python -m hass_win -c config -v

To run Home Assistant on Microsoft Windows installation you need to install Python first. Download Python (the latest version of Python 3.6 is recommended) for https://www.python.org/downloads/windows/ and follow the instructions of the installer.

There may be alpha or beta releases of Python listed on that download page (marked by the letters a or b in the version number. Do not use these versions.

Start

C:\...\> pip3 install homeassistant
C:\...\> py -m homeassistant --open-ui

For autostarting Home Assistant please refer to this guide.

Check this video for the installation on Windows 10.

The Microsoft Windows platform is not a primary target to install Home Assistant. Also, not all tools and third-party modules will work.

Уровень сложности
Простой

Время на прочтение
11 мин

Количество просмотров 24K

В данной статье мы затронем установку Home Assistant с некоторыми аддонами как на поддерживаемые, так и на не поддерживаемые официально системы (32 бит).

В настоящее время умные дома становятся все более популярными среди потребителей. Это связано с быстро развивающейся технологией, которая позволяет создавать устройства и системы, способные управлять различными аспектами жизни в доме, такими как освещение, отопление, кондиционирование воздуха, безопасность и развлечения. Кроме того, умные дома позволяют сократить расходы на энергию и повысить уровень комфорта и удобства жизни.

В данной статье мы поговорим о том, как создать умный дом на платформе Home Assistant. Home Assistant — это бесплатная и открытая система управления домашними устройствами, которая позволяет интегрировать различные устройства и сервисы для автоматизации и управления жизнью в доме.

Преимущества Home Assistant перед системами умных домов других производителей (Xiaomi,Tuya, и др.) заключается в возможности использовать устройства разных производителей с разными типами подключения (WiFi, MQTT, Zigbee, Bluetooth) без привязки к экосистеме определенного производителя.

Пример интерфейса Homeassistant

Пример интерфейса Homeassistant

Нам потребуется компьютер или ноутбук с 512+ Мб ОЗУ

Если ваш компьютер или ноутбук имеет 64-битный процессор, установка Home Assistant значительно упрощается, так как подробная инструкция доступна на официальном сайте.

Однако, если у вас есть устройство с 32-битным процессором и архитектурой i386, то установка аддонов для работы с внешними датчиками может быть сложной из-за отсутствия официальной поддержки. Однако, не отчаивайтесь, поскольку в этой статье мы рассмотрим способы установки на такие устройства. (Важно отметить, что эти методы также могут быть применены на 64-битных системах, но они сложнее официальных в реализации).

1. Установка системы

Для сервера умного дома подойдет практически любой дистрибутив Linux, но рекомендуется Debian. В данной статье буду использовать сам Debian.

Начнем с установки. Этот процесс одинаков практически для любой системы.

  1. Скачайте последнюю версию ISO.
    Я выбрал образ «Small», так как он включает большинство файлов в образ, что требует меньше загрузки в процессе установки.

  2. Скачайте Balena Etcher, инструмент для записи ISO-образов на USB-накопитель. Если вы работаете в системе linux, вместо этого можно использовать dd.

  3. Подключите загруженный USB-накопитель к системе и загрузитесь с USB.

  4. Следуйте процессу установки.
    Большая часть процесса — это следование настройкам по умолчанию и просто нажатие кнопки Continue.

    Не забудьте ввести учетные данные для пользователя root и пользователя, не являющегося администратором.

    Если вы планируете использовать компьютер только для умного дома, убедитесь, что вы не устанавливаете графический интерфейс пользователя (GUI), и обязательно установите SSH-сервер.

  5. После завершения установки войдите в систему по SSH, либо напрямую с пк, используя учетные данные обычного пользователя (не рут).

2. Установка Docker и Docker Compose

Несмотря на то, что Docker и Docker engine официально не поддерживают 32-битные системы, его можно установить, воспользовавшись данным репозиторием на GitLab:

wget https://gitlab.com/docker-32bit/debian/raw/i386/build-image.sh
sudo bash build-image.sh

Docker Compose можно установить командой:

sudo apt install docker-compose

3. (опционально) Установка Portainer

Portainer может пригодиться для более удобного управления будущими Docker-контейнерами.

Для установки Portainer создадим конфигурационный файл docker-compose.yaml:

cd /opt
sudo nano docker-compose.yaml

Не забудьте обновить часовой пояс в конфигурации ниже.

Кроме того, я храню весь свой конфиг Docker и тома в этой папке. Это облегчает резервное копирование. Эти тома будут хранить данные из образа Docker локально, чтобы данные не терялись при пересборке контейнера (например, при обновлении) /opt

Здесь мы передаем файл, содержащий наши локальные настройки времени, чтобы Portainer знал, который сейчас час (для временных меток журнала), а также сокет, управляющий Docker, чтобы Portainer мог выполнять действия в Docker.

version: '3.0'

services:
  portainer:
    container_name: portainer
    image: bigbugcc/portainer-ce
    restart: unless-stopped
    ports:
      - "9000:9000/tcp"
      - "9443:9443/tcp"
    environment:
      - TZ=Asia/Novosibirsk
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/portainer/data:/data

Разрешения

Мы также разрешим нашему пользователю, не являющемуся администратором, изменять этот файл. Опять же, чтобы немного облегчить нам жизнь.

sudo chown root:docker docker-compose.yaml
sudo chmod g+w docker-compose.yaml

Проверьте конфигурацию

Хотите убедиться, что вы не допустили ошибок в конфигурации? Выполните следующую команду, и Docker выведет вам то, что будет запущено, а также все ошибки в вашем конфиге и предупреждения.

docker-compose -f docker-compose.yaml config

Запуск

docker-compose up -d

Запускаем, и Docker загрузит последний образ Portainer и все настроит. После этого мы сможем открыть веб-интерфейс Portainer, перейдя по адресу (вы получите предупреждение о самоподписанном сертификате) или (нешифрованное соединение).

https://<ip компьютера>:9443

http://<ip компьютера>:9000

Веб-интерфейс Portainer

Веб-интерфейс Portainer

При первом посещении этого портала он попросит нас создать учетную запись пользователя.

4. Установка Home Assistant

Если вы пропустили предыдущий пункт, то потребуется первоначальная настройка Docker Compose для работы:

cd /opt 
sudo nano docker-compose.yaml

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

version: '3.0'

services:
  [...]
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    restart: unless-stopped
    environment:
      - TZ=Asia/Novosibirsk
    volumes:
      - /opt/homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
    privileged: true
    network_mode: host

Создадим папку для конфигурационных файлов Homeassistant и запустим его:

cd /opt
sudo mkdir -p homeassistant/config
docker-compose up -d

Теперь Docker извлечет образ Home Assistant и все настроит.

Скачивание и установка Homeassistant

Скачивание и установка Homeassistant

Настройка Home Assistant

Теперь, когда контейнер запущен и работает, нам нужно настроить сам экземпляр Home Assistant.

Откройте браузер и перейдите по адресу http://<ip компьютера>:8123

Начальная настройка Home Assistant

Окно приветствия Home Assistant

Окно приветствия Home Assistant

Выберите имя пользователя и пароль для вашей учетной записи Home Assistant. Эта учетная запись также будет «администратором».

Далее пройдите через настройку вашей домашней зоны. В процессе настройки Home Assistant даже покажет вам устройства, которые он уже обнаружил и которые вы можете интегрировать с самого начала.

После завершения настройки вы окажетесь на информационной панели Home Assistant. Если вы настроили какие-либо устройства на предыдущем этапе, они будут отображаться на главном экране.

Пустой главный экран Home Assistant

Пустой главный экран Home Assistant

Управление Portainer из Home Assistant

Как только мы начнем добавлять дополнения, нам захочется довольно часто иметь возможность быстро просматривать их без необходимости открывать дополнительные окна браузера.

Для этого мы воспользуемся панелью iframe. Эта интеграция добавит Portainer в боковую панель Home Assistant.

cd /opt/homeassistant/config
sudo nano configuration.yaml

Чтобы добавить iframe для Portainer, добавьте следующий код в файл configuration.yaml:

panel_iframe:
  portainer:
    title: Portainer
    url: "https://192.168.10.106:9443"
    icon: mdi:docker
    require_admin: true

5. Установка брокера Mosquitto для работы MQTT и Zigbee устройств

В этой части мы добавим наше первое дополнение. Брокер Mosquitto MQTT позволит нам соединяться с широким спектром устройств, и я настоятельно рекомендую его к установке.

Обновим конфигурацию docker-compose.yaml:

services:
  [...]
  homeassistant:
    [...]
    depends_on:
      - mosquitto

  mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto
    restart: unless-stopped
    ports:
      - "1883:1883/tcp"
    environment:
      - TZ=Asia/Novosibirsk
    volumes:
      - /opt/mosquitto/config:/mosquitto/config
      - /opt/mosquitto/data:/mosquitto/data
      - /opt/mosquitto/log:/mosquitto/log
    stdin_open: true
    tty: true

Мы добавили строки stdin_open и tty, чтобы впоследствии мы могли подключиться к терминалу контейнера для выполнения некоторых команд.

Обратите внимание, что мы также добавили зависимость от контейнера mosquitto для нашего контейнера Home Assistant. Таким образом, наш брокер будет в сети до запуска Home Assistant, и мы можем быть уверены, что наше соединение не прервется.

Файл конфигурации mosquitto.conf

Когда мы запустим контейнер Mosquitto с помощью docker-compose up -d, в журналах появятся ошибки о невозможности открыть файл конфигурации /mosquitto/config/mosquitto.conf. Чтобы исправить это, мы можем загрузить файл конфигурации по умолчанию и сохранить его во вновь созданном каталоге config:

cd /opt/mosquitto/config/
sudo wget https://raw.githubusercontent.com/eclipse/mosquitto/master/mosquitto.conf

Однако мы сделаем несколько изменений. Вы можете добавить следующие строки в конец конфигурационного файла, так как по умолчанию все настройки закомментированы (настройки по умолчанию).

sudo nano mosquitto.conf
# Добавьте следующие строки в конец

# Listen on port 1883 on all IPv4 interfaces
listener 1883
socket_domain ipv4
# save the in-memory database to disk
persistence true
persistence_location /mosquitto/data/
# Log to stderr and logfile
log_dest stderr
log_dest file /mosquitto/log/mosquitto.log
# Require authentication
allow_anonymous false
password_file /mosquitto/config/mqttuser

Пользователи Mosquitto

Далее мы создадим пользователя в Home Assistant для соединения с брокером.

В идеале мы позже создадим нового пользователя для каждого устройства (семейства). Например, одна учетная запись для устройств Shelly, одна для Zigbee2MQTT и т.д.

Выполните следующую команду для создания пользователя с именем homeassistant. Обратите внимание, что параметр -c создаст новый файл паролей и перезапишет все существующие файлы. Поэтому отбросьте этот параметр, если вы хотите создать вторую учетную запись.

docker exec -it mosquitto mosquitto_passwd -c /mosquitto/config/mqttuser homeassistant

Если теперь вы проверите содержимое только что созданного файла mqttuser, вы найдете свое имя пользователя и хэшированный пароль:

cat /opt/mosquitto/config/mqttuser
homeassistant:$7$101$q7VtJJ/E*******7$1I******************************************b/G**************************************A==

Теперь мы можем перезапустить контейнер Mosquitto, чтобы он загрузил наши изменения:

sudo docker-compose restart mosquitto

Логи должны показать, что контейнер Mosquitto запущен:

sudo cat /opt/mosquitto/log/mosquitto.log
1662413136: mosquitto version 2.0.15 starting
1662413136: Config loaded from /mosquitto/config/mosquitto.conf.
1662413136: Opening ipv4 listen socket on port 1883.
1662413136: mosquitto version 2.0.15 running

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

Теперь мы можем подключить Home Assistant к нашему брокеру MQTT, чтобы он мог начать подписываться на темы и отправлять сообщения. Поскольку пока нет других подключенных MQTT клиентов, Home Assistant пока не будет добавлять новые устройства.

Добавление интеграции MQTT

Добавление интеграции MQTT

Мы добавляем новую интеграцию MQTT в Home Assistant и вводим учетные данные, которые мы установили минуту назад для аутентификации.

Добавление данных пользователя MQTT

Добавление данных пользователя MQTT

Логи контейнера MQTT подтверждают успешное подключение Home Assistant:

sudo cat /opt/mosquitto/log/mosquitto.log
1662413136: mosquitto version 2.0.15 running
1662414198: New connection from 192.168.10.106:43153 on port 1883.
1662414198: New client connected from 192.168.10.106:43153 as 4atvQWWEyf2XpG3yy0kgOW (p1, c1, k60, u'homeassistant').
1662414198: Client 4atvQWWEyf2XpG3yy0kgOW disconnected.
1662414198: New connection from 192.168.10.106:39605 on port 1883.
1662414198: New client connected from 192.168.10.106:39605 as 5gNbahjfE5DulEufquYcaa (p2, c1, k60, u'homeassistant').

Интеграция MQTT запущена

Интеграция MQTT запущена

6. Установка Zigbee2MQTT для подключения датчиков и других устройств умного дома по протоколу Zigbee

Для этого потребуется приобрести отдельный Zigbee-координатор, который подключается к компьютеру по USB. Я использовал этот в своей системе.

Найти координатор Zigbee

В конфигурации Docker compose нам нужно будет назначить координатор Zigbee, который будет подключен через USB, к контейнеру Docker.

Подключите ваш координатор Zigbee (например, Conbee II, Sonof Zigbee 3.0 Plus, …) к вашей машине. Затем выполните следующую команду, чтобы получить уникальный путь к устройству.

ls -l /dev/serial/by-id/
usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_eexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx52-if00-port0 -> ../../ttyUSB0

Позже мы будем использовать этот уникальный путь by-id в нашей конфигурации вместо типичного /dev/ttyUSB0, потому что всегда есть риск, что устройство получит новый TTY после перезагрузки, особенно при подключении других устройств.

Docker-compose

Мы расширяем наш docker-compose.yaml конфигурацией для контейнера Zigbee2MQTT.

services:
  [...]

  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    ports:
      - "8099:8099/tcp"
    environment:
      - TZ=Asia/Novosibirsk
    volumes:
      - /opt/zigbee2mqtt/data:/app/data
      - /run/udev:/run/udev:ro
    devices:
      - /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_eexxxxxxxxxxxxxxxxxxxxxxxxxxxx52-if00-port0:/dev/ttyACM0

Обратите внимание, что я изменил отображение портов для этого контейнера. Порт 8080 уже используется администратором, поэтому я изменил порт внешнего интерфейса Zigbee2MQTT на 8099 (см. ниже) и указал его в конфигурации Docker.

Мы не будем пока запускать наш контейнер, так как сначала нам нужно настроить нашу конфигурацию.

Создаем пользователя MQTT

Когда мы настраивали MQTT-брокер Mosquitto, я говорил, что предпочитаю создавать MQTT-пользователя для каждого сервиса. Поэтому давайте создадим пользователя для нашего контейнера Z2M.

docker exec -it mosquitto mosquitto_passwd /mosquitto/config/mqttuser z2m_mqtt
Password:          # Enter a password
Reenter password:  # Repeat the password

cat mosquitto/config/mqttuser
[...]
z2m_mqtt:$7$101$1xcB1yrF********$O$XR******************2/N************************************************************g==

Конфиг Zigbee2MQTT

Чтобы получить копию стандартного конфига, запустите sudo wget https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/data/configuration.yaml в папке, где будет храниться конфиг (/opt/zigbee2mqtt/data). Затем откройте и отредактируйте его с помощью sudo nano /opt/zigbee2mqtt/data/configuration.yaml.

Мы укажем Z2M подключиться к нашему MQTT-брокеру, использовать синтаксис, который понимает Home Assistant для обнаружения устройств, настроить веб-сервер и позволить Z2M сгенерировать некоторые ключи, используемые для настройки сети Zigbee.

# Adapter settings
serial:
  port: /dev/ttyACM0

# MQTT
mqtt:
  base_topic: zigbee2mqtt
  server: '!secret server'
  user: '!secret user'
  password: '!secret password'
  client_id: zigbee

# Zigbee network
permit_join: false # Do not allow random devices to connect automatically

# Webserver
frontend:
  port: 8099 # Custom port
  url: 'http://<ip.of.our.box>:8099' # Update IP here

# Devices and groups
# Extract config to separate files
devices: devices.yaml
groups: groups.yaml

# Home Assistant integration
homeassistant: true

Если вы проверите журналы через Portainer или docker-compose logs zigbee2mqtt, вы увидите, что наш контейнер прекрасно запустился:

Using '/app/data' as data directory
Zigbee2MQTT:info  2022-10-04 12:09:47: Logging to console and directory: '/app/data/log/2022-10-04.12-09-47' filename: log.txt
Zigbee2MQTT:info  2022-10-04 12:09:47: Starting Zigbee2MQTT version 1.28.0 (commit #03ba647)
Zigbee2MQTT:info  2022-10-04 12:09:47: Starting zigbee-herdsman (0.14.62)
Zigbee2MQTT:info  2022-10-04 12:09:48: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2022-10-04 12:09:48: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20220219,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:info  2022-10-04 12:09:48: Currently 0 devices are joined:
Zigbee2MQTT:info  2022-10-04 12:09:48: Zigbee: disabling joining new devices.
Zigbee2MQTT:info  2022-10-04 12:09:48: Connecting to MQTT server at mqtt://<ip.of.our.box>:1883
Zigbee2MQTT:info  2022-10-04 12:09:48: Connected to MQTT server
Zigbee2MQTT:info  2022-10-04 12:09:48: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
Zigbee2MQTT:info  2022-10-04 12:09:48: Started frontend on port 0.0.0.0:8099
Zigbee2MQTT:info  2022-10-04 12:09:48: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'

Добавим Z2M на боковую панель Home Assistant:

Процесс аналогичен с добавлением Portainer:

panel_iframe:
  portainer:
  [...]
  zigbee2mqtt:
    title: Zigbee2MQTT
    icon: mdi:zigbee
    url: http://192.168.10.106:8099
    require_admin: true

После перезапуска Home Assistant (docker-compose restart homeassistant) получим примерно следующее:

Главная панель Zigbee2MQTT без устройств

Главная панель Zigbee2MQTT без устройств

Нажатием на кнопку Permit join можно разрешить сопряжение Zigbee устройств

Нажатием на кнопку Permit join можно разрешить сопряжение Zigbee устройств

В данном видеоролике подробно и наглядно показано как пользоваться Zigbee2MQTT. Если вы в первый раз работаете с ним, рекомендую к просмотру.

Конец

Спасибо за внимание, есть еще немало дополнений, которые можно добавить, поэтому статья будет дополняться.

Если возникнут вопросы или предложения — пишите в комментарии, рад любой активности.

  • Установка exchange server 2010 на windows server 2008
  • Установка clover на флешку из под windows
  • Установка clover на флешку из под windows
  • Установка elsa на windows 10 64 bit
  • Установка el capitan с флешки из windows