Начало работы с Home Assistant на Raspberry Pi
В этой статье мы покажем вам, как начать работу с Home Assistant на Raspberry Pi. Мы покажем, как настроить Home Assistant, и создадим простой пример, чтобы помочь вам начать работу с домашней автоматизацией.
Вот что мы рассмотрим в этом руководстве:
Что такое Home Assistant?
Установка и настройка Home Assistant
Установка дополнений
Файл configuration.yaml
Сохранение изменений и обновление
Пример — Управление GPIO Raspberry Pi с помощью 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 на ваш компьютер.
2) Перейдите на https://etcher.io/ и установите Etcher на свой компьютер. Выберите подходящую версию установки для вашей операционной системы.
3) После завершения установки откройте Etcher и нажмите Select image. Откройте образ, который вы только что скачали на шаге 1).
4) Убедитесь, что Etcher выбрал правильную SD-карту. Затем нажмите Flash! Примечание: перед этим шагом ваша SD-карта должна быть отформатирована. Подождите несколько минут, пока Etcher записывает образ на SD-карту.
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. Пока идёт установка, вы увидите следующее в окне браузера.
Примечание: иногда экран ниже не загружается, но установка всё равно продолжается в фоновом режиме. Дождитесь завершения установки.
После завершения установки ваш Raspberry Pi автоматически перезагрузится, поэтому вам нужно подождать ещё 3 минуты. Затем обновите веб-страницу, и вы должны увидеть стандартное представление интерфейса Home Assistant.
Перейдите по каждой вкладке и изучите, что внутри.
Установка дополнений
Существует несколько дополнений, которые можно установить, чтобы сделать Home Assistant ещё лучше. Мы рекомендуем установить Samba share и Open SSH. Вы также можете установить другие дополнения, которые могут оказаться полезными.
Доступ к общим файлам в Windows
1) После установки Samba share, на вашем компьютере перейдите в Сетевые устройства. Вы должны увидеть новое устройство с именем HASSIO. Откройте его, и там должно быть несколько папок, включая папку config.
2) Внутри папки config вы должны увидеть файл configuration.yaml.
Доступ к общим файлам в Mac OS X
1) Чтобы получить доступ к общим файлам в Mac OS X, перейдите в Finder > Go > Connect to Server (Finder > Переход > Подключиться к серверу).
2) Появится новое окно. Введите адрес сервера следующим образом:
Адрес сервера должен быть smb://, за которым следует IP-адрес вашего Raspberry Pi.
3) Выберите Подключиться как Гость (Connect As Guest)
4) Выберите нужную папку. В данном случае выберите папку config.
5) Наконец, вы можете получить доступ к файлу configuration.yaml.
Установка дополнения SSH server
Мы также рекомендуем установить дополнение SSH server. Это позволяет вам подключаться к Raspberry Pi, на котором работает Home Assistant, через SSH.
1) Перейдите на вкладку Hass.io, нажмите на иконку в правом верхнем углу и найдите SSH server.
2) Затем откроется вкладка с SSH server. В разделе Options добавьте пароль следующим образом (используйте свой собственный пароль) и нажмите SAVE:
3) Наконец, нажмите INSTALL, чтобы установить Open SSH.
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
Подключение через 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
Поздравляем! Вы успешно настроили Home Assistant.
Файл configuration.yaml
В Home Assistant файл configuration.yaml сохраняет данные в иерархическом формате, чтобы Home Assistant знал, что вы хотите делать. В этом файле хранятся сведения о том, какие компоненты вы используете, как они организованы и как с ними работать автоматизации.
Перейдите в общую папку HASSIO, выберите папку configuration и откройте файл configuration.yaml.
В вашем файле вы можете видеть homeassistant в начале. Это сам по себе компонент, и это единственный обязательный компонент. introduction — это ещё один компонент, frontend, config и так далее.
Автоматизации находятся в отдельном файле под названием automations (вы также можете добавлять автоматизации напрямую в файл конфигурации). Вы можете организовать все ваши различные компоненты в группы — это тоже делается в отдельном файле под названием groups.
Эти отдельные файлы подключаются в файле конфигурации в конце.
Добавление пароля
Вы можете легко добавить пароль к вашему интерфейсу Home Assistant. В файле configuration.yaml вам просто нужно раскомментировать строку, убрав символ #:
# api_password: PASSWORD
Вместо PASSWORD введите ваш желаемый пароль.
Сохранение изменений и обновление
Чтобы ваши изменения вступили в силу:
1) Сохраните ваш файл configuration.yaml.
2) В пользовательском интерфейсе Home Assistant перейдите в Configuration, выберите General и нажмите кнопку CHECK CONFIG. Это покажет вам, всё ли в порядке с синтаксисом файла configuration.yaml. Это может занять несколько секунд. Когда проверка завершится, вы получите сообщение Valid!, если с синтаксисом всё в порядке.
3) Затем на той же вкладке в разделе Server Management нажмите RESTART.
4) Подождите, пока система перезагрузится.
В следующий раз, когда вы перейдёте в интерфейс Home Assistant, он запросит у вас пароль. Изменения, которые вы сделали ранее, вступили в силу.
Добавление дополнительных компонентов
Чтобы добавить компоненты в файл configuration.yaml, перейдите на https://home-assistant.io/components/ и найдите нужные компоненты.
Затем вам просто нужно скопировать приведённую запись в файл configuration.yaml и добавить или отредактировать переменные конфигурации в соответствии с вашими потребностями. Например, вот что вы увидите, когда будете искать Raspberry Pi GPIO Switch:
Пример — Управление GPIO Raspberry Pi с помощью Home Assistant
Это простой пример, чтобы познакомить вас с Home Assistant: добавление компонентов и создание автоматизаций.
В этом примере мы будем управлять двумя GPIO RPi через Home Assistant. Мы добавим два переключателя для включения и выключения двух светодиодов. Мы также создадим простую автоматизацию, которая включает и выключает один из светодиодов в определённое время. Давайте начнём!
Необходимые компоненты
Вот полный список необходимых компонентов для этого проекта:
Плата Raspberry Pi с установленным Home Assistant — ознакомьтесь с Лучшими стартовыми наборами Raspberry Pi
Вы можете использовать приведённые выше ссылки или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!
Сборка схемы
Схема для этого примера проста. Вам просто нужно подключить два светодиода через резистор на 330 Ом к GPIO 11 и GPIO 12. Следуйте схеме.
Компонент Raspberry Pi GPIO Switch
Первый шаг — добавить компонент Raspberry Pi switch в файл configuration.yaml.
1) Перейдите на https://home-assistant.io/components и введите Raspberry Pi.
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. Нажмите на эти кнопки, чтобы включить и выключить светодиоды.
Вы также можете проверить History (Историю) и Logbook (Журнал), чтобы увидеть, как менялись состояния компонентов, и проанализировать их состояние с течением времени.
Видеодемонстрация
Создание автоматизаций в Home Assistant
В этом примере оставьте предыдущую схему. Мы будем автоматически включать и выключать светодиод Light Desk.
Вы можете создавать автоматизации непосредственно в файле configuration.yaml, в файле automations.yaml или в пользовательском интерфейсе.
Чтобы создать автоматизации в пользовательском интерфейсе, перейдите в Configuration > Automation и нажмите знак (+) в правом нижнем углу.
Во вкладке Automation есть несколько разделов: New Automation, Triggers, Conditions и Action.
В Home Assistant автоматизации состоят из 3 частей:
trigger (триггер): это то, что запускает автоматизацию
condition (условие): это условия, которые должны быть выполнены для продолжения автоматизации
action (действие): это то, что происходит при срабатывании автоматизации
Прежде чем переходить к автоматизации, вам нужно познакомиться с некоторыми инструментами разработчика.
States (Состояния)
Выберите States в разделе Developer Tools. Здесь вы можете тестировать установку состояния устройства. Вы также можете видеть идентификаторы всех ваших сущностей. Например, ваши кнопки Fan Office и Light Desk имеют следующие идентификаторы, состояние и атрибуты:
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. Идея в том, чтобы вы использовали эти концепции для умной автоматизации вашего дома.
Мы надеемся, что эта статья оказалась для вас полезной.
Спасибо за чтение!