Начало работы с Home Assistant на Raspberry Pi

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

Начало работы с Home Assistant на Raspberry Pi

Вот что мы рассмотрим в этом руководстве:

  • Что такое Home Assistant?

  • Установка и настройка Home Assistant

  • Установка дополнений

  • Файл configuration.yaml

  • Сохранение изменений и обновление

  • Пример — Управление GPIO Raspberry Pi с помощью Home Assistant

  • Создание автоматизаций в Home Assistant


Что такое Home Assistant?

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

Логотип Home Assistant

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


Установка и настройка Home Assistant

Существуют различные способы установки Home Assistant. Вы можете запустить его на своём компьютере или использовать Raspberry Pi в качестве специализированного хаба домашней автоматизации. В этом руководстве мы будем устанавливать Home Assistant на Raspberry Pi 3.

Чтобы начать работу с Home Assistant на RPi, вам необходимо установить Hass.io.

1) Перейдите на https://home-assistant.io/hassio/installation/ и выберите подходящий образ для вашего Raspberry Pi. Мы рекомендуем использовать Raspberry Pi 3. Нажмите на ссылку Raspberry Pi 3, чтобы скачать образ Hass.io на ваш компьютер.

Установка Hass.io — выбор образа для Raspberry Pi

2) Перейдите на https://etcher.io/ и установите Etcher на свой компьютер. Выберите подходящую версию установки для вашей операционной системы.

Etcher — версии для разных операционных систем

3) После завершения установки откройте Etcher и нажмите Select image. Откройте образ, который вы только что скачали на шаге 1).

4) Убедитесь, что Etcher выбрал правильную SD-карту. Затем нажмите Flash! Примечание: перед этим шагом ваша SD-карта должна быть отформатирована. Подождите несколько минут, пока Etcher записывает образ на SD-карту.

Запись образа Hass.io через Etcher

5) Вставьте SD-карту в ваш Pi. Подключите Ethernet-кабель и включите питание.

6) Через несколько минут вы сможете получить доступ к интерфейсу Home Assistant с любого устройства в той же локальной сети. Вам просто нужно набрать в браузере http://hassio.local:8123 или перейти по адресу http://your-pi-ip-address:8123, заменив your-pi-ip-address на IP-адрес вашего Raspberry Pi. Если вы не знаете, как узнать IP-адрес вашего Raspberry Pi, ознакомьтесь с этой статьёй.

7) Будьте терпеливы — установка занимает около 20 минут (или более) для загрузки всех необходимых зависимостей Home Assistant. Пока идёт установка, вы увидите следующее в окне браузера.

Примечание: иногда экран ниже не загружается, но установка всё равно продолжается в фоновом режиме. Дождитесь завершения установки.

Home Assistant — ожидание завершения установки

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

Интерфейс Home Assistant по умолчанию

Перейдите по каждой вкладке и изучите, что внутри.


Установка дополнений

Существует несколько дополнений, которые можно установить, чтобы сделать Home Assistant ещё лучше. Мы рекомендуем установить Samba share и Open SSH. Вы также можете установить другие дополнения, которые могут оказаться полезными.

Установка дополнения Samba share

Дополнение Samba share предоставляет вам доступ к папкам Raspberry Pi на вашем компьютере. Это полезно, чтобы вы могли получить доступ и изменять настройки конфигурации Home Assistant через ваш компьютер.

1) Чтобы установить дополнение Samba share, в пользовательском интерфейсе Home Assistant перейдите в Hass.io.

Установка дополнений Home Assistant — вкладка Hass.io

2) Нажмите на иконку в правом верхнем углу и затем выберите дополнение Samba share.

Выбор дополнения Samba share

3) Затем нажмите установить. Установка может занять минуту или две.

Установка Samba share

Доступ к общим файлам в Windows

1) После установки Samba share, на вашем компьютере перейдите в Сетевые устройства. Вы должны увидеть новое устройство с именем HASSIO. Откройте его, и там должно быть несколько папок, включая папку config.

Папки HASSIO в сетевом окружении

2) Внутри папки config вы должны увидеть файл configuration.yaml.

Файл configuration.yaml

Доступ к общим файлам в Mac OS X

1) Чтобы получить доступ к общим файлам в Mac OS X, перейдите в Finder > Go > Connect to Server (Finder > Переход > Подключиться к серверу).

Mac OS X — Finder — Подключиться к серверу

2) Появится новое окно. Введите адрес сервера следующим образом:

Mac OS X — ввод адреса сервера

Адрес сервера должен быть smb://, за которым следует IP-адрес вашего Raspberry Pi.

3) Выберите Подключиться как Гость (Connect As Guest)

Mac OS X — подключение как гость

4) Выберите нужную папку. В данном случае выберите папку config.

Mac OS X — выбор папки config

5) Наконец, вы можете получить доступ к файлу configuration.yaml.

Mac OS X — файл configuration.yaml

Установка дополнения SSH server

Мы также рекомендуем установить дополнение SSH server. Это позволяет вам подключаться к Raspberry Pi, на котором работает Home Assistant, через SSH.

1) Перейдите на вкладку Hass.io, нажмите на иконку в правом верхнем углу и найдите SSH server.

2) Затем откроется вкладка с SSH server. В разделе Options добавьте пароль следующим образом (используйте свой собственный пароль) и нажмите SAVE:

SSH server — настройка пароля

3) Наконец, нажмите INSTALL, чтобы установить Open SSH.

Установка SSH server

4) Опция Boot установлена на auto, что означает, что соединение устанавливается автоматически при загрузке вашего Pi. На данный момент нажмите START, чтобы установить связь.

Перезагрузка вашего Pi

Мы рекомендуем перезагрузить ваш Pi после установки дополнений. Для этого вам нужно связаться с Pi через SSH.

Подключение через SSH в Windows

1) Если вы используете Windows на своём компьютере, используйте Putty для установки связи. Если у вас не установлен Putty, вы можете нажать здесь.

2) Введите IP-адрес вашего Pi с выбранным Port 22 и нажмите Open. При первом подключении вам будет показано предупреждение. Нажмите Yes.

3) Войдите как root и введите пароль, который вы задали в предыдущем разделе на шаге 2).

4) Если вы введёте hassio help, вы увидите команды, которые можно использовать для общения с Pi.

5) Чтобы перезагрузить Pi, введите следующее:

core-ssh:~# hassio host reboot
Терминал Hass.io — команды SSH

Подключение через SSH в MAC OS X

1) Чтобы подключиться через SSH в MAC OS X, откройте Терминал и введите:

ssh root@your-rpi-ip-address

Вам нужно заменить your-rpi-ip-address на IP-адрес вашего Raspberry Pi.

2) Введите пароль.

3) Наконец, перезагрузите ваш Pi:

core-ssh:~# hassio host reboot
Перезагрузка Pi через SSH в Mac OS X

Поздравляем! Вы успешно настроили Home Assistant.


Файл configuration.yaml

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

Перейдите в общую папку HASSIO, выберите папку configuration и откройте файл configuration.yaml.

В вашем файле вы можете видеть homeassistant в начале. Это сам по себе компонент, и это единственный обязательный компонент. introduction — это ещё один компонент, frontend, config и так далее.

Файл configuration.yaml — компоненты

Автоматизации находятся в отдельном файле под названием automations (вы также можете добавлять автоматизации напрямую в файл конфигурации). Вы можете организовать все ваши различные компоненты в группы — это тоже делается в отдельном файле под названием groups.

Эти отдельные файлы подключаются в файле конфигурации в конце.

Подключение дополнительных файлов в configuration.yaml

Добавление пароля

Вы можете легко добавить пароль к вашему интерфейсу Home Assistant. В файле configuration.yaml вам просто нужно раскомментировать строку, убрав символ #:

# api_password: PASSWORD
Добавление пароля в configuration.yaml

Вместо PASSWORD введите ваш желаемый пароль.


Сохранение изменений и обновление

Чтобы ваши изменения вступили в силу:

1) Сохраните ваш файл configuration.yaml.

2) В пользовательском интерфейсе Home Assistant перейдите в Configuration, выберите General и нажмите кнопку CHECK CONFIG. Это покажет вам, всё ли в порядке с синтаксисом файла configuration.yaml. Это может занять несколько секунд. Когда проверка завершится, вы получите сообщение Valid!, если с синтаксисом всё в порядке.

Проверка конфигурации Home Assistant

3) Затем на той же вкладке в разделе Server Management нажмите RESTART.

Перезапуск Home Assistant

4) Подождите, пока система перезагрузится.

В следующий раз, когда вы перейдёте в интерфейс Home Assistant, он запросит у вас пароль. Изменения, которые вы сделали ранее, вступили в силу.

Добавление дополнительных компонентов

Чтобы добавить компоненты в файл configuration.yaml, перейдите на https://home-assistant.io/components/ и найдите нужные компоненты.

Затем вам просто нужно скопировать приведённую запись в файл configuration.yaml и добавить или отредактировать переменные конфигурации в соответствии с вашими потребностями. Например, вот что вы увидите, когда будете искать Raspberry Pi GPIO Switch:

Компонент Raspberry Pi GPIO Switch

Пример — Управление GPIO Raspberry Pi с помощью Home Assistant

Это простой пример, чтобы познакомить вас с Home Assistant: добавление компонентов и создание автоматизаций.

В этом примере мы будем управлять двумя GPIO RPi через Home Assistant. Мы добавим два переключателя для включения и выключения двух светодиодов. Мы также создадим простую автоматизацию, которая включает и выключает один из светодиодов в определённое время. Давайте начнём!

Необходимые компоненты

Вот полный список необходимых компонентов для этого проекта:

Вы можете использовать приведённые выше ссылки или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!

Сборка схемы

Схема для этого примера проста. Вам просто нужно подключить два светодиода через резистор на 330 Ом к GPIO 11 и GPIO 12. Следуйте схеме.

Схема подключения светодиодов к GPIO Raspberry Pi для Home Assistant

Компонент Raspberry Pi GPIO Switch

Первый шаг — добавить компонент Raspberry Pi switch в файл configuration.yaml.

1) Перейдите на https://home-assistant.io/components и введите Raspberry Pi.

Поиск компонентов Raspberry Pi в Home Assistant

2) Выберите Raspberry Pi GPIO Switch. На странице компонента показан пример записи файла и переменные, которые вы можете добавить для настройки ваших компонентов.

3) Скопируйте приведённую запись в ваш файл configuration.yaml.

# Example configuration.yaml entry
switch:
  - platform: rpi_gpio
    ports:
      11: Fan Office
      12: Light Desk

В этой записи мы добавляем две кнопки, которые будут управлять GPIO 11 и 12 Raspberry Pi. Мы называем их Fan Office и Light Desk. Для тестирования мы будем использовать имена по умолчанию, но вы можете назвать их как угодно и выбрать другие GPIO.

4) После копирования записи в файл configuration.yaml сохраните файл. Затем проверьте синтаксис и перезагрузите Pi, как мы делали в разделе «Сохранение изменений и обновление». Дождитесь перезагрузки Home Assistant.

5) Перейдите в пользовательский интерфейс Home Assistant, и вы должны увидеть две новые кнопки на интерфейсе под названиями Fan Office и Light Desk. Нажмите на эти кнопки, чтобы включить и выключить светодиоды.

Интерфейс Home Assistant — кнопки управления GPIO

Вы также можете проверить History (Историю) и Logbook (Журнал), чтобы увидеть, как менялись состояния компонентов, и проанализировать их состояние с течением времени.

Видеодемонстрация


Создание автоматизаций в Home Assistant

В этом примере оставьте предыдущую схему. Мы будем автоматически включать и выключать светодиод Light Desk.

Вы можете создавать автоматизации непосредственно в файле configuration.yaml, в файле automations.yaml или в пользовательском интерфейсе.

Чтобы создать автоматизации в пользовательском интерфейсе, перейдите в Configuration > Automation и нажмите знак (+) в правом нижнем углу.

Во вкладке Automation есть несколько разделов: New Automation, Triggers, Conditions и Action.

В Home Assistant автоматизации состоят из 3 частей:

  • trigger (триггер): это то, что запускает автоматизацию

  • condition (условие): это условия, которые должны быть выполнены для продолжения автоматизации

  • action (действие): это то, что происходит при срабатывании автоматизации

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

Инструменты разработчика Home Assistant

States (Состояния)

Выберите States в разделе Developer Tools. Здесь вы можете тестировать установку состояния устройства. Вы также можете видеть идентификаторы всех ваших сущностей. Например, ваши кнопки Fan Office и Light Desk имеют следующие идентификаторы, состояние и атрибуты:

Идентификаторы сущностей в Home Assistant

Services (Службы)

В разделе Developer Tools выберите Services. Здесь вы можете вызвать службу из компонента и протестировать её, чтобы увидеть, что произойдёт.

Сейчас мы протестируем службу, которая включает светодиод Light Desk.

В поле Domain выберите switch. В поле service выберите turn_on.

Когда вы выберете turn_on, появятся допустимые параметры для этого события.

В данном случае, поскольку мы хотим включить только светодиод Light Desk, нам нужно ввести некоторые данные в формате JSON, выбрав только ту сущность, которую мы хотим активировать.

{
 "entity_id": "switch.light_desk"
}

Нажмите кнопку CALL SERVICE, чтобы вызвать событие. Это просто способ проверить службу, которую вы хотите вызвать. Светодиод Light Desk должен загореться, когда вы нажмёте кнопку CALL SERVICE.

Теперь вернитесь на вкладку Automation.

В разделе New Automation дайте имя вашей автоматизации. Вы можете назвать её как угодно.

В этом примере то, что будет запускать автоматизацию — это время. Когда наступит определённое время, светодиод должен загореться. Поэтому в Trigger Type выберите time. В разделе At выберите час, когда вы хотите запустить автоматизацию.

Настройка триггера автоматизации по времени

Сохраните ваши изменения, нажав иконку Save в правом нижнем углу.

Здесь мы не будем добавлять никакого условия, но примером условия может быть: светодиод загорается в 20:00 только если вы дома.

Action (Действие)

Тип действия для этого примера — Call Service (Вызов службы), и мы будем вызывать службу, которую мы протестировали ранее в разделе services в Developer Tools.

Мы видели, что служба:

switch.turn_on

а данные JSON:

{
 "entity_id": "switch.light_desk"
}

Сохраните вашу автоматизацию, нажав кнопку Save в правом нижнем углу.

Чтобы выключить светодиод в 8:00, например, вам нужно добавить ещё одну автоматизацию, изменить время и вызвать службу switch.turn_off.


Подведение итогов

В этой статье мы показали вам, как начать работу с Home Assistant на Raspberry Pi — как установить и настроить всё необходимое.

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

Мы надеемся, что эта статья оказалась для вас полезной.

Спасибо за чтение!