Home assistant инструкция на русском

Home Assistant – одна из самых популярных систем домашней автоматизации, поддерживающая устройства различных производителей. Тут можно завязать в один сценарий устройства Sonoff, Xiaomi и Tuya. Настроить под себя интерфейс. Сделать отправку оповещений в Telegram. И полностью избавиться от облачных сервисов от производителей умного дома.

Home Assistant является open-source проектом и работает на Python. В качестве сервера может выступать как одноплатный Raspberry Pi, так и обычный ПК под управлением Windows или Linux.

Ознакомиться с возможностями программного обеспечения, а так же оценить интерфейс можно на сайте с онлайн-демонстрацией.

Настройка Home Assistant

На данном сайте можно найти уроки по установке и настройке Home Assistant. Для удобства привожу полный список:

  1. Установка Home Assistant на Windows.
  2. Установка HA на Raspberry Pi 4.
  3. Первые настройки: file editor, системные сенсоры, интерфейс.
  4. Настраиваем резервное копирование в Google Drive.
  5. Инструкция по добавлению Xiaomi Gateway 2 в Home Assistant.
  6. Добавление розетки Xiaomi и светильников Yeelight.
  7. Как создать карту дома и расположить на ней датчики и устройства.
  8. Устанавливаем расширение HACS.
  9. Добавляем робот-пылесос Xiaomi Vacuum Cleaner Mop в Home Assistant.
  10. Получаем информацию о подключенных к роутеру Mikrotik устройствах и выводим ее на карту дома.
  11. Считаем, сколько времени была включена розетка или другое умное устройство.
  12. Автоматизации в Home Assistant. Структура.
  13. Примеры сценариев автоматизации в Home Assistant.
  14. Как запустить сценарий Home Assistant при нажатии на кнопку Aqara D1.
  15. Ping в Home Assistant

Некоторые возможности веб-интерфейса Home Assistant

  • Добавление плана помещения с расположенными на нем умными устройствами и дальнейшее управление приборами простым нажатием на иконку. Захотели включить или выключить свет в определенной комнате — нажали на соответствующую лампочку. Посмотреть определенную камеру — нажали на ее иконку и получили изображение. Посмотреть историю открытия входной двери или последнее замеченное движение в коридоре? Тоже не проблема — нажимаем на нужный значок и получаем всю необходимую информацию.

  • Одна из самых полезных функций — выключение света во всей квартире одним нажатием на нужный значок. При наличии охранных датчиков можно так же легко управлять и постановкой квартиры на охрану.

  • Умный дверной звонок с камерой — просматривайте историю звонков, а также время последнего движения у входной двери.
  • Используя умные лампы свет можно не только включать и выключать, но и изменять температуру и яркость (должно поддерживаться устройством).
  • При наличии Mi flora plant sensor можно вывести на экран текущие значения яркости, температуры и влажности у Ваших домашних цветов.
  • И многое многое другое.

Плюсы Home Assistant

  1. Большой выбор устройств и плагинов. Список поддерживаемого оборудования можно найти на официальном сайте.
  2. Настраиваемый веб-интерфейс. Программное обеспечение имеет веб-интерфейс, на который выводятся все устройства и дополнительная информация. Все это можно настроить под себя — добавить нужные вкладки, расположить блоки в удобном порядке, нарисовать карту.
  3. Автоматизация. Куда больше различных возможностей для автоматизации по сравнению со стандартными приложениями, такими как MiHome.
  4. Система постоянно обновляется — добавляется поддержка новых девайсов, появляются новые возможности, улучшается интерфейс.
  5. Большое количество информации по системе. Ответы практически на все вопросы можно легко найти на официальном сайте, Youtube каналах или на сайтах про умный дом. Все таки Home Assistant — самая популярная на данный момент система домашней автоматизации.
  6. Работа с оборудованием напрямую, без использования китайских серверов, соответственно их блокировка или недоступность никак не скажется на работе умного дома.

Из минусов стоит выделить разве что большое количество времени, которое потребуется на то, чтобы разобраться в системе. Это не Mi Home, который настраивается за 10 минут. Тут потребуется потратить несколько недель, а может даже и месяцев для реализации всего требуемого функционала. Но результат однозначно того стоит.

Здравия всем! После первой установки Home Assistant скажу честно, я выпал в осадок! А что же делать дальше? В данной статье расскажу самые основы.

Введение

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

Ну вот поставили мы Home Assistant, а дальше что?

Как добавлять устройства? Где хранить данные? Как конфигурировать? Вот основные вопросы которые я задавал. После прочтения статей и просмотра роликов на YouTube в рунете, у меня так и не сложилась в общая картина! Пришлось лезть в официальную информацию на сайте Home Assistant

Логика

Для понимания Home Assistant нужно понять, что логика Home Assistant построена на принципах объектно — ориентированного программирования. Конечное устройство будь то кнопка или реле всегда принадлежат тому или иному классу. Рассмотрим пример:

Мы видим на картинке конечное устройство Гостиная лампа над комодом, которое управляет конечной лампочкой. Если посмотреть поле ID объекта, то нам становится понятно, что конечное устройство принадлежит классу Light, а объект имеет имя commode_lamp. Чтобы обратиться к конечному объекту нам нужно указывать полный ID объекта, те light.commode_lamp. У каждого объекта есть свойства, методы и состояние.

Свойства объектов в Home Assistant называются Атрибуты

Как видим из примера, у объекта 5 свойств и 1 состояние.

Методы объектов в Home Assistant называются Сервисы

Как видно из документации Класс Light имеет 3 метода: Включить, Выключить и Переключить

Основные единицы

Основными единицами в Home Assistant являются Home Assistant, Устройства, Объекты и Пространства. Доступ к ним можно получить через Настройки -> Home Assistant

Интеграции

Чтобы подключить то или иное устройство нужно использовать Интеграции. Они описываю как работать с тем или иным устройством, какие протоколы использовать, заложенные в них разработчиком конкретной Интеграции.

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

Устройства

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

Объекты

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

В новой системе совсем немного объектов

Но по мере добавления устройств в систему они будут разрастаться

Пространства

Это тоже контейнер или группу, содержащая один или несколько объектов, только группирует она не физические устройства, а содержит привязку к определенной комнате в вашем доме. Список Пространств формируется вручную.

Привязывать к Пространству можно как Устройства так и Объекты в соответствующих меню.

Заключение

После того, как я понял логику Home Assistant, мне стало намного легче. Во многих описанных статьях и роликах на YouTube в Рунете рассказывается «как сделать?», но на вопрос «почему именно так?» многие не отвечают. После прочтения информации на официальном сайте, главное, что я понял, Home Assistant он просто другой. Он сделан специалистами с другим мышлением, и не всегда оно понятно почему именно так. Данной статьей я начинаю цикл статей о Home Assistant, чтобы людям, которые хотят внедрить его у себя, было намного легче понять его.

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

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


Home Assistant – популярное приложение с открытым исходным кодом для организации умного дома. Первый опыт автора в работе с Home Assistant основывается на попытке интеграции в него ‘умной рисоварки‘. Автор постарается описать основные компоненты и возможности данного приложения, с которыми ему привелось пошагово познакомиться. Статья является в чем-то обзором, в чем-то руководством для желающих начать свое знакомство с Home Assistant.

Тем, у кого мало свободного времени, советую пропустить присказку – первую главу – и перейти сразу ко второй. Вам нужно знать только, что работать мы будем с умной китайской рисоваркой от Xiaomi.

Умная рисоварка

Рисоварка, очевидно, — это устройство для приготовления риса. Вики демонстрирует нам керамические рисовые пароварки из Британского музея, датирующиеся 1250 г. до н.э. В 1945 году корпорация Mitsubishi стала первой в Японии компанией, производящей домашнюю электрическую рисоварку. Наша модель — Rice Cooker от Xiaomi – может готовить не только рис. “Это великолепное устройство для приготовления не только риса, но других типов блюд. Оно может готовить и супы, и пирожные, и многое другое” — говорится в рекламе. Но самое главное — это наличие wi-fi модуля, ПО с возможностями автоматизации и 200+ программно установленных рецептов. “Путь к умному дому через желудок – это правильно”, подумал автор, и решился.

Xiaomi Rice Cooker, как и подобает цифровому устройству, внешне очень привлекательна, радует округлостью форм и общим минимализмом. Для её настройки и использования производитель предлагает приложение Mi Home. После регистрации Mi account, программа легко отыскивает новое устройство, и вы регистрируете его в вашей локальной сети. Интерфейс приложения не самый плохой, предоставляет базовые средства для автоматизации, может принимать уведомления от устройств. Однако, есть существенные недостатки. Не всех может порадовать отправление информации разработчику о каждом клике пользователя. И неприятное выражение находит часто упоминаемый нынче национальный калорит. Вместо 200+ рецептов на иностранные языки переведено и доступно всего лишь четыре. Остальное – исключительно для китайского народа. Когда ваша ‘умная’ рисоварка не способна выполнять все обещаные кулинарные обязанности, тут, согласитесь, становится грустно. Побродя некоторое время по интернетам, погрустневший автор наткнулся на следующий интересный проект (вечных благ автору). Который оказался посвящен разработке модуля для некоего Home Assistant.

Home Assistant

Сперва, немного общей информации. Как нам говорят на домашней странице HA, ”Это ПО с открытым кодом для автоматизации умного дома, ориентирующееся на локальное управление и конфиденциальность. Развиваемый трудом открытого сообщества энтузиастов, он отлично подходит для работы на Raspberry Pi или локальном сервере.” Проекту более пяти лет, он использует python и лицензию Apache 2.0. Версия релиза на момент написания этих строк – 0.99.3.

Для управления устройствами HA использует отдельные модули (integrations, или components). Создать такой довольно просто. На сайте можно найти каталог основных (одобренных и поддерживаемых сообществом) модулей. Среди общего их количества (1485 штук) попадаются совершенно разнообразные, в каталоге значятся имена amazon, google, xiaomi, и даже один раз yandex.
Попробуем установить HA в виртуальное окружение на линукс десктопе. Нам понадобится python3 и менеджер пакетов pip.

python3 -m venv homeassistant # Создаем виртуальное окружение
cd homeassistant
source bin/activate # Активируем виртуальное окружение
python3 -m pip install homeassistant # Устанавливаем Home Assistant
hass --open-ui # Запускаем Home Assistant

После этого на http://localhost:8123 станет доступнен графичекий интерфейс HA. При первом входе потребуется создать аккаунт пользователя. Веб-интерфейс HA довольно объемен. Пара важных элементов, о которых стоит упомянуть в самом начале, это закладка Configuration → General, где вы легко можете перезагрузить файлы конфигурации или сам сервер. А также страница Info в списке Developers tools, где можно посмотреть логи ошибок.

Все необходимые пользователю данные HA хранит, в случае линукс, в папке настроек “~/.homeassistant”. Файлы настройки записаны в формате YAML, и основной из них – это “configuration.yaml”. Он объединяет данные модулей, автоматизаций, etc. Возможность импорта позволяет разбить настройки на отдельные логически организованные файлы. Модули же хранятся в подпапках “components” (встроенные) и “custom_components”.

Этих знаний для установки нового модуля нам должно быть достаточно. Копируем с репозитория папку “xiaomi_cooker” в нашу “~/.homeassistant/custom_components”. Согласно описанию, добавляем настройки модуля в файл “configuration.yaml”:

configuration.yaml

xiaomi_cooker: # Имя модуля
    name: 'Akari' # Имя устройства
    host: 192.168.1.10 # IP адрес устройства
    token: '4921def609273302248d040a24243a25' # Замуты протокола Xiaomi
    model: chunmi.cooker.normal2 # Модель устройства

Готово. После перезагрузки HA в разделе General → Integrations веб-интерфейса появится запись о новом модуле.

Любой модуль представляет собой некоторый набор объектов (entities) и сервисов (services, по сути — функции). Объекты хранят различные принимаемые от устройств данные. Например, sensor.xiaomi_cooker_temperature – температуру рисоварки, sun.sun – положение солнца. Данные объекта выражаются одним основным значением — статусом (state), и произвольным набором дополнительных аттрибутов (attributes). Сервисы используются для передачи команд и значений устройствам. Например, xiaomi_cooker.start – команда начала работы рисоварки, или homeassistant.check_config – инициализация поиска ошибок в файлах настроек HA. В списке Developer Tools веб-интерфейса находится раздел Services, где можно просмотреть доступный вам список сервисов и поиграться с их вызовами. Рядом есть раздел States, где, соответственно, можно просмотреть и поизменять значения объектов. Нужно заметить, что изменения значений объектов в разделе States имеют односторонний характер. Т.е. если, например, поменять здесь состояние объекта lights.state с off на on, на истинном состоянии устройства это не отразится, и при следующем же обновлении данных от устройства значение объекта будет перезаписано в реальное.

Automation

Основным инструментом управления умного дома являются автоматизации (automation). Добавлять и редактировать их можно с помощью графического интерфеса в разделе General → Automation или непосредственно в файле “automations.yaml”. Основная функция автоматизаций – вызов сервисов при достижении тех или иных условий. Базовые инструменты задания условий вызова значения объектов, в т.ч. данные о времени. Есть и чуть более специфические решения, как, например, события (events). В качестве простого примера автоматизации приведем код, выполняющий обновление данных о плюсанутости автора с периодом в 15 минут:

automations.yaml

 - id: '1565889970818' # ID автоматизации
   alias: Umpiro decharging # Имя
   trigger: # Условия срабатывания
   - platform: time_pattern # Тип условия - временной
     minutes: /15 # Задание условия (в нашем случае – условие выполняется каждые 15 минут)
   condition: [] # Дополнительные условия срабатывания
   action: # Выполняемые автоматизацией действия
   - data: # Аргументы, передаваемые при вызове сервиса
       entity_id: sensor.umpiro_charge # Аргумент (ключ: значение)
     service: homeassistant.update_entity # Имя вызываемого сервиса

Нужно заметить, что пока еще не все доступные автоматизации (например, приведенную выше) можно сконфигурировать без редактирования yaml-кода, через графический интерфейс, но разработчики говорят об активной работе над устранением этого недостатка.

Templating

После автоматизаций будет самое время рассказать о шаблонах (templating). Различные элементы настроек в yaml-файлах позволяют использовать вставки на скриптовом языке jinja2. Многие из этих элементов объединены общим названием ‘Templates’, как то service_template или trigger_template. Используя шаблоны, мы получаем доступ к значениям объектов в HA и возможность использовать эти данные в комплексных математических и логических выражениях, что значительно расширяет наш потенциал. В качестве примера, приведем записанный в “configuration.yaml” чуть подусложненный код упомянутого ранее sensor.umpiro_charge. Это template_sensor, i.e. “сенсор, формирующий данные на основании значений других объектов”. Наш сенсор будет представлять собой некоторый аналог постепенно разряжающейся батарейки:

configuration.yaml

sensor: # Название модуля
    platform: template # Тип модуля - шаблон
    sensors: # Список объектов
        # Название объекта – sensor.umpiro_charge
        umpiro_charge:
            # Задает форму отображения объекта в UI (опционально)
            unit_of_measurement: '%'
            # Шаблон, задающий значение объекта
            value_template: >-
                # Получение значения объекта – конвертация фильтром ‘int’
                # + проверка на соответствие типа
                {% if states('sensor.umpiro_charge')|int('unknown') is number %}
                    # запись в переменную нового значения объекта
                    # на основе текущего значения и времени последнего обновления
                    {% set value = (states('sensor.umpiro_charge')|int - (as_timestamp(now()) - as_timestamp(states.sensor.umpiro_charge.last_updated))/60/15)|round %}
                    # Тонкая работа фильтрами для ограничения плюсанутости
                    {{ [[0, value]|max, 100]|min }}
                {% else %}
                    # Значение, используемое HA по умолчанию
                    # для не определенных состояний объектов
                    {{ 'unknown' }}
                {% endif %}
            # ID стороннего объекта, при изменение значения которого
            # будет обновляться значение данного объекта
            entity_id: []
            friendly_name: 'Charge' # Имя объекта
            # Задает форму отображения объекта в UI (опционально)
            device_class: battery

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

Python Scripts

В свою очередь, для создания новых сервисов простым инструментом являются пайтон-скрипты (python scripts). После добавления в “configuration.yaml” строчки: “python script:”, все файлы с расширением “.py”, которые мы поместим в папку “~/.homeassistant/python_scripts”, станут доступны в качестве сервисов с именами “python_scripts.<file_name>”. Их код выполняется в заранее заданном окружении, где переменные data и hass дают нам доступ к аргументам вызова сервиса, а также объектам и сервисам HA. В качестве примера приведем код файла “charge_set.py” для сервиса “python_scripts.charge_set”. Его функцией будет установка заряда нашей батарейки:

python_scripts/charge_set.py

# Получение первого аргумента вызова 
name = data.get('name', 'sensor.umpiro_charge')
# Получение второго аргумента вызова
new_state = data.get('charge', '100')
# Получение данных объекта
attributes = hass.states.get(name).attributes
# Изменение данных объекта
hass.states.set(name, new_state, attributes)

Creating integration

Все что мы сделали с помощью шаблонов и пайтон-скриптов, возможно, было бы проще осуществить написанием отдельного модуля. Как уже говорилось, неофициальные модули хранятся в папке “custom_components”. В будущем нам понадобится объект, хранящий информацию о текущем рецепте для нашей рисоварки, и сервис, позволяющий изменять эти данные. На основе примера из документации создадим для этого новый модуль, “overmind”. Первый шаг – это файл custom_components/overmind/__init__.py:

custom_components/overmind/__init__.py

# Домен для регистрации сервиса
DOMAIN = 'overmind'
# Значение по умолчанию для нашего объекта (рецепта)
DEFAULT_RECIPE = {
"title": "Habr post",
"description": "Post an article on habr.com",
 "profile": "471822"
}

# Функция настройки модуля
def setup(hass, config):
    # Установка значений объекта
    hass.states.set('overmind.current_recipe', 'on', DEFAULT_RECIPE)

    # Функция с описанием сервиса установки рецепта
    def handle_set(call):
    # Получение значения аргумента
    recipe = call.data.get(‘recipe’, DEFAULT_RECIPE)
    # Выполнение задачи - изменение значения объекта
    hass.states.set('overmind.current_recipe', 'set', recipe)

# Регистрация сервиса    
hass.services.register(DOMAIN, 'recipe_set', handle_set)
return True

После этого сообщим о новом модуле файлу настроек “configuration.yaml”, добавив в него строчку с названием модуля: “overmind:”. Задача решена.

Lovelace UI

Так называется используемый HA фронтенд. Этот графический интерфейс, через который обычному пользователю предлагается управлять умным домом, является заглавной страницей веб-интерфейса HA. Интерфейс LUI формируется из карточек (сards) разнообразых типов, которые могут отражать значения объектов, служить для вызова функций и прочих задач. Карточки можно распределять по страницам (view), по аналогии с браузерными закладками. Настройка удобно организована через тот же графический интерфейс, но доступна и посредством yaml-кода, для чего там же присутствует встроенный текстовый редактор. Рекомендую заглянуть на страницу https://demo.home-assistant.io/, где приведено несколько различных примеров настройки LUI, и где их легко можно посмотреть, пощелкать и поизменять.


Пример настройки графического интерфейса

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

Думаю, не имеет большого смысла описывать создание интерфейса посредством графических инструментов, поэтому я приведу несколько примеров в виде использованного мной yaml-кода. Создав для нашей рисоварки отдельную страницу (view), мы постараемся заполнить её самыми необходимыми элементами так, чтобы это не вызывало отторжения при пользовании с экрана смартфона.

Тут же опробуем те самые простые инструменты упорядочения интерфеса, это – horizontal-stack и vertical-stack. Сперва, создадим vertical-stack из карточек типов entity-button и sensor. Первая будет служить для запуска нашей рисоварки, вторая – для отображения значения температуры:

vertical-stack

cards: # Список карточек стека
  - type: entity-button # Тип первой карточки в стеке
      entity: sensor.xiaomi_cooker_state # Объект, связанный с данной карточкой
      icon: 'mdi:selection' # Иконка для данной кнопки
      icon_height: 100px # Размер иконки
      name: Offline # Имя под кнопкой
      show_icon: true #
      show_name: true #
      tap_action: # Действие при нажатии
      action: call-service # Действие – вызов сервиса
      service: script.turn_on # Сервис – вызов скрипта
      service_data: # Аргументы вызова сервиса
      entity_id: script.order_cooker_start # Аргумент – название скрипта
      hold_action: # Действие при удержании
      action: none #
  - type: sensor # Тип второй карточки в стеке
      entity: sensor.xiaomi_cooker_temperature # Объект, связанный с данной карточкой
      name: Temper # Имя карточки
type: vertical-stack # Тип карточки – вертикальный стек

Home Assistant включает в себя архив иконок Material Design Icons, которые, через соответствующие имена (например, mdi:selection), можно использовать в элементах настроек. Скрипт (в данном случае, не python-, а yaml-), который мы использовали для вызова сервиса, это еще один удобный инструмент HA.

Теперь объединим приведенный выше vertical-stack с карточкой портрета нашей в теперь уже horizontal-stack. Все будет так же просто:

horizontal-stack

сards: # Список карточек стека
  - type: picture # Тип карточки
    image: /local/akari_r.jpg # Адрес файла изображения
  - # Тут мы помещаем написанный выше код вертикального стека
type: horizontal-stack # Тип карточки – горизонтальный стек

Здесь нужно отметить строчку ‘image:’. Все файлы, которые мы помещаем в папку ‘~/.homeassistant/www’ становятся доступными по ссылке http://localhost/local/filename.

Следующим шагом мы немного поработаем над созданной нами кнопкой вызова сервиса. Для нас было бы удобно, если бы она работала как тумблер, т.е. на включение/выключение, а не так, как это сделано сейчас. Этого можно добиться через использование карточки типа conditional, отображение которой на экране можно регулировать через задание определенных условий. Ниже приведен код для карточки, которая является кнопкой выключения рисоварки и видна только при условии, если рисоварка находится в процессе приготовления блюда:

conditional

card: # Описание содержания карточки
     entity: sensor.xiaomi_cooker_state #
          icon: 'mdi:star-box-outline' #
          icon_height: 100px #
          name: Running #
          tap_action: #
            action: call-service #
            service: xiaomi_cooker.stop #
          type: entity-button #
      conditions: # Условия отображения
          # Объект, значение которого проверяется
          entity: sensor.xiaomi_cooker_mode
          # Значение объекта, необходимое для выполнения условия
          state: Running
type: conditional # Тип карточки

Переписав подобным образом ранее созданный код кнопки влючения, и объединив его с этим, мы получим одну кнопку, работающую одновременно на включение и выключение.

Дополним наш интерефейс еще одной карточкой — с отображением времени до окончания приготовления (аналогично карточке температуры), и еще одной – с деталями приготовляемого рецепта (custom:recipe-card). В итоге получим что-то такое:

Custom Cards

Home Assistant помимо богатства встроенного набора типов карточек, конечно же, предоставляет возможность создавать и свои. Такие карточки называются пользовательскими карточками (custom cards), и для их создания используется javascript. Здесь можно ознакомиться с двумя простыми примерами кода. В сети несложно найти готовые карточки, созданные различными энтузиастами, а если хочется поэкспериментировать самому, то полезно будет узнать, что существуют и специальные js-модули, созданные для упрощения работы над написанием новых. Мой опыт обращения с javascript продолжает желать меньшего, поэтому, в качестве примера, я приведу только небольшую часть кода карточки, используемой для выбора и отображения текущего рецепта.

www/recipe-card.js

import {
// Импорт из стороннего модуля lit-element
    LitElement,
    html,
    css
} from "https://unpkg.com/lit-element@latest/lit-element.js?module";

// Класс с описанием новой карточки
class RecipeCard extends LitElement { 
    // Получение доступа к элементам HA
    static get properties() {
        return {
            hass: {},
            config: {}
        };
    }
    // Пример вызова сервиса
    callServiceEx() {
        this.hass.callService('persistent_notification', 'create', {message: 'example'});
    }
    // Получение html-кода карточки
    render() {
        // Получение информации об объекте, связанном с данной карточкой
        const entityId = this.config.entity;
        // Получение состояния объекта
        const state = this.hass.states[entityId];
        // Получение аттрибута объекта
        const titleStr = state ? state.attributes.title : 'unavailable';
        const descrStr = state ? state.attributes.description : 'unavailable';
        // Формирование кода карточки
        return html`
            <ha-card>
                <div class="flex" style="margin-top:16px;">
                    <div class="icon">
                        <ha-icon icon="mdi:bowl"></ha-icon>
                    </div>
                    <div class="header">
                        <span class="name">Recipe</span>
                    </div>
                </div>
                <div class="flex info" style="margin-bottom:16px;">
                    <span class="recipe-title">${titleStr}</span>
                    <span class="recipe-descr">${descrStr}</span>
                </div>
            </ha-card>
        `;
 }
// Задание имени новой карточки
customElements.define('recipe-card', RecipeCard);

Для использования новой карточки нужно будет добавить в начале файла настроек LUI следующий код:

recipe-card

resources: # Задание внешних ресурсов
 - type: module # Тип ресурса – модуль
   url: /local/recipe-card.js # Расположение ресурса

и среди списка карточек:

 - type: 'custom:recipe-card' # Тип карточки
   entity: overmind.current_recipe # Объект, связанный с данной карточкой

Notifications

Необходимой частью умного дома является отправка сообщений пользователю. В HA такие сообщения называются notifications (уведомления) и существует два базовых типа уведомлений. Первый – это внутренние уведомления (persistent notifications). Для их отправки используется встроенный сервис «persistent_notification.create». Список таких сообщений доступен через иконку колокольчика в графическом интерфейсе, они используют markdown разметку и по сути довольно просты.

Другим, более интересным, инструментом является встроенный модуль notify, который через установку дополнительных модулей позволяет передавать сообщения, используя сторонние платформы. В качестве примера рассмотрим модуль для telegram.

Для использования модуля нам, прежде всего, будет необходимо создать бота в самом telegram. При настройке нам понадобится chat_id нашего пользователя и API token бота. Как получить эти данные – детально рассказано по ссылке выше, будем считать, что они у нас готовы. Переходя непосредственно к установке модуля, сперва, как мы уже делали, скопируем его исходники в папку components, а затем добавим его настройки в файл “configuration.yaml”:

configuration.yaml

telegram_bot: # Настройки модуля telegram
   platform: polling # Тип модуля
   api_key: XXXXXXXXXXXXX # API Token вашего бота
   allowed_chat_ids:
       XXXXXXX # chat_id вашего пользователя 
   proxy_url: socks5://XXXXXXXXXXXXX # Адрес нашего любимого прокси
   proxy_params:
       username: umpiro
       password: umpiro_password

плюс настройки модуля notify:

notify: # Настройка модуля notify
    name: notify_send # Название сервиса (в нашем случае – будет notify.notify_send)
    platform: telegram # Тип модуля
    chat_id: XXXXXXX # chat_id вашего пользователя

Модуль telegram позволяет нам отправлять сообщения, картинки, или видео. В качестве примера, создадим автоматизацию для отправки сообщения с картинкой, уведомляющее нас об окончании приготовления блюда.

automations.yaml

 - id: '1571074941908' # ID автоматизации
   alias: EOC # Имя автоматизации
   trigger: # Условия срабатывания автоматизации
      # Объект, определяющий срабатывание
    - entity_id: sensor.xiaomi_cooker_mode
      from: Running # Исходное состояние объекта
     # Тип автоматизации – изменение состояния объекта
      platform: state
      to: Waiting # Конечное состояние объекта
   condition: [] # Дополнительные условия
   action: # Выполнияемые автоматизацией действия
    - service: notify.notify_send # Действие – вызов сервиса
      data: # Аргументы, передаваемые при вызове сервиса
         title: End of Cooking # Заголовок
         message: "EOC" # Сообщение
         data: # Дополнительные данные сообщения
           photo: # Тип данных - изображение
              # Файл изображения
            - file: /home/umpiro/.homeassistant/www/cat.jpg
              # Заголовок изображения
              caption: “EOC”

Послесловие

Home Assistant может заинтересовать тех, кто хочет попробовать организовать локальное управление умным домом. Это широкий, интересный, открыто и активно развивающийся за счет усилий коммьюнити проект. Разнообразие инструментов Home Assistant не может не радовать (некоторые важные я не успел упомянуть). В качестве минуса можно назвать относительную запутанность и неполноту документации.
P.S.
Недавно, 10 октября произошел, не знаю можно ли это назвать релизом, переход проекта от версии 0.99 к версии 0.100.
Цитата из Release Notes:

Welcome to the release notes of yet another wonderful release! No, we’re not going for 1.0, we’re doing 0.100! We feel like we’re not ready yet with our goals for 1.0, but we’re making progress every day. For a sneak peak of what we’re thinking about, check our blog Simple mode in Home Assistant 1.0.

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

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

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

Содержание

  1. Как настроить Home Assistant
  2. Обзор Home Assistant
  3. Установка Home Assistant
  4. Настройка устройств
  5. Создание автоматизаций
  6. Настройка сценариев

Как настроить Home Assistant

Шаг 1: Установка Home Assistant

Первым шагом в настройке Home Assistant является его установка на ваш компьютер или Raspberry Pi. Вы можете найти подробную информацию о способах установки на официальном сайте проекта. Установите Home Assistant, следуя инструкциям.

Шаг 2: Конфигурация

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

Вам также потребуется настроить различные компоненты Home Assistant в зависимости от ваших потребностей. Это может включать в себя настройку Wi-Fi, Bluetooth, MQTT и других компонентов.

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

Шаг 3: Добавление устройств и сервисов

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

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

Шаг 4: Создание автоматизаций

Одной из главных возможностей Home Assistant является автоматизация умного дома. Вы можете настроить автоматические действия на основе различных условий.

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

Примечание: для более сложных автоматизаций вам может потребоваться изучить синтаксис языка шаблонов Jinja и использовать его в файлах конфигурации.

Шаг 5: Использование интерфейса Home Assistant

Home Assistant также обладает удобным веб-интерфейсом, с помощью которого вы можете управлять устройствами и проверять статус системы. Вам нужно будет открыть веб-браузер и ввести IP-адрес или доменное имя вашего устройства, за которым следует порт 8123.

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

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

Обзор Home Assistant

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

Одной из главных особенностей Home Assistant является его открытость и гибкость. Платформа основана на открытом исходном коде, что позволяет пользователям создавать собственные компоненты и интеграции. Большое сообщество разработчиков активно работает над улучшением и расширением функционала платформы, что делает Home Assistant одним из наиболее мощных и развитых решений в области умного дома.

Home Assistant поддерживает большое количество различных устройств и протоколов, включая Zigbee, Z-Wave, Wi-Fi, Bluetooth, MQTT и многие другие. Вы можете легко добавлять новые устройства и интегрировать их в систему, создавая свое собственное уникальное умное решение.

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

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

Установка Home Assistant

Перед началом установки Home Assistant необходимо загрузить и установить операционную систему, на которой будет работать Home Assistant. Home Assistant поддерживает различные операционные системы, такие как Raspbian, Ubuntu, Debian, Windows и другие.

  1. Загрузите операционную систему с сайта разработчика.
  2. Следуйте инструкциям по установке операционной системы на выбранное устройство.
  3. После установки операционной системы, откройте терминал или командную строку.
  4. Введите следующую команду, чтобы установить Home Assistant:
  5. sudo pip3 install homeassistant

  6. После успешной установки Home Assistant, введите команду hass, чтобы запустить Home Assistant.
  7. Откройте любой веб-браузер и введите адрес http://localhost:8123, чтобы открыть интерфейс Home Assistant.

Поздравляю! Вы успешно установили Home Assistant. Теперь вы готовы приступить к настройке и настройке своей системы умного дома с помощью Home Assistant.

Настройка устройств

Для полноценной работы с Home Assistant вам необходимо настроить подключение к вашим устройствам. Это позволит вам контролировать и управлять ими через панель управления Home Assistant.

Рассмотрим основные шаги для настройки устройств:

  1. Установите необходимое программное обеспечение на свои устройства. Это может быть специальное ПО устройства или интеграция, предоставляемая разработчиком Home Assistant.
  2. В панели управления Home Assistant перейдите в раздел «Настройки» и выберите пункт «Интеграции».
  3. Нажмите на кнопку «Добавить интеграцию» и выберите нужное устройство из списка.
  4. Введите необходимую информацию и параметры подключения, которые требуются для связи с вашим устройством.
  5. Нажмите кнопку «Сохранить» и дождитесь завершения процесса настройки.

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

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

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

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

Компонент Описание
Trigger (Триггер) Описывает событие, которое запускает автоматизацию. Например, изменение состояния датчика движения.
Condition (Условие) Позволяет задать условие, которое должно быть выполнено перед выполнением автоматизации. Например, время суток или текущее состояние устройства.
Action (Действие) Определяет действия, которые должны быть выполнены при выполнении автоматизации. Например, включение света или отправка уведомления.

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

Например, следующий код создаст автоматизацию, которая будет включать свет, когда датчик движения срабатывает:

automation:
- alias: "Включить свет при движении"
trigger:
platform: state
entity_id: binary_sensor.motion_sensor
to: "on"
action:
service: light.turn_on
entity_id: light.living_room

В этом примере использован триггер типа state, который срабатывает, когда состояние датчика движения изменяется на «on». Действие свет включается для устройства с идентификатором light.living_room.

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

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

Настройка сценариев

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

Для настройки сценариев, вам потребуется использовать язык разметки YAML. YAML – это простой формат для структурированного представления данных. В файле конфигурации Home Assistant вы можете создать раздел «scene», в котором определить все ваши сценарии.

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

alias trigger action
Вечерний режим time: ’20:00:00′ light.turn_on
Утренний режим time: ’06:00:00′ light.turn_off

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

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

Состояние перевода: На этой странице представлен перевод статьи Home Assistant. Дата последней синхронизации: 12 октября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Установка

Установите пакет home-assistant.

Home Assistant Supervised

Смотрите статью Home Assistant Supervised.

Настройка

Файлы конфигурации хранятся в /var/lib/hass/. Если конфигурация отсутствует, при запуске будет записана конфигурация по умолчанию.

Использование

Для запуска Home Assistant запустите/включите службу home-assistant.service.

Первый запуск может занять до 20 минут, так как будут загружены и установлены необходимые пакеты.[1] Вы можете видеть прогресс в журналах.

Совет: Следить за процессом первого обновления можно с помощью journalctl:

# journalctl -fu home-assistant

По умолчанию веб-интерфейс доступен по адресу http://localhost:8123.

Использование MariaDB

По умолчанию в качестве базы данных для интеграций recorder/history используется SQLite. Заметный прирост производительности достигается при использовании MariaDB (особенно для больших систем). Home Assistant использует SQLAlchemy, что означает, что поддерживается любой бэкенд, например MySQL, MariaDB, PostgreSQL или MS SQL Server. В данной статье рассматривается только MariaDB; про другие СУБД можно почитать в документации recorder.

Установка MariaDB описана в соответствующей статье.

Установите пакет python-mysqlclient — он используется для соединения с MariaDB.

Создайте новую базу данных, в примере ниже показано одно имя пользователя для каждой службы с wildcard-доступом ко всем базам данных, имеющим имя пользователя в качестве префикса:

$ mysql -u root -p
CREATE USER 'пользователь'@'localhost' IDENTIFIED BY 'пароль' ;
CREATE DATABASE пользователь;
GRANT ALL PRIVILEGES ON пользователь.* TO 'пользователь'@'localhost';
FLUSH PRIVILEGES;
quit;

Добавьте в ваш конфигурационный файл:

/var/lib/hass/configuration.yaml
recorder:
  db_url: !secret recorder_mariadb_url

Добавьте в файл secrets (если не используется сокет Unix, другие варианты написания URL можно посмотреть в документации recorder):

/var/lib/hass/secrets.yaml
recorder_mariadb_url: "mysql://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@localhost/БАЗА?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4"

Наконец, перезапустите службу home-assistant.service. Теперь база данных должна начать заполняться. Дополнительная информация доступна в документации recorder.

Решение проблем

Нет доступа к устройствам USB

При установке по умолчанию Home Assistant может не иметь необходимого доступа для работы с некоторыми устройствами, такими как USB-ключ Zigbee. Это происходит потому, что такие устройства контролируются системной группой uucp.

Отредактируйте файл юнита home-assistant.service, добавив в него в него SupplementaryGroups=uucp.

Затем выполните daemon-reload и перезапустите службу home-assistant.service, после чего всё должно заработать.[2].

Не работает интеграция Bluetooth

Если есть проблемы с интеграцией Bluetooth и в вашем журнале появляется следующее сообщение об ошибке, это связано с тем, что интеграция Bluetooth подключается через dbus и есть старый баг в systemd.

Config entry 'Bluetooth' for bluetooth integration not ready yet: DBus connection broken: [Errno 32] Broken pipe; try restarting `bluetooth` and `dbus`; Retrying in background

Решением является переход на dbus-broker.

Или создайте системного пользователя и группу hass:

# useradd -U -r -s /usr/bin/nologin hass

И создайте drop-in файл, чтобы служба home-assistant.service использовала этого пользователя:

/etc/systemd/system/home-assistant.service.d/override.conf
[Service]
DynamicUser=false

Смотрите также

  • Домашняя страница Home Assistant
  • Документация по Home Assistant

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

Home Assistant

Содержание

  1. Что такое Home Assistant?
  2. Системные требования
  3. Установка платформы для умного дома
  4. Настройка платформы для умного дома
  5. Интеграция умных устройств
  6. Расширение функциональности Home Assistant
  7. Поддержка и сообщество Home Assistant
  8. Заключение

Что такое Home Assistant?

Home Assistant

Home Assistant — это популярная платформа с открытым исходным кодом для создания систем Умного дома. Это мощный инструмент, который позволяет объединить различные умные устройства и технологии под одним управлением. Главное его преимущество — это его универсальность. Он совместим с большинством умных устройств и протоколов, что делает его идеальным выбором для создания собственной системы Умного дома.

Системные требования

Прежде чем начать работу с платформой, необходимо удостовериться, что ваше оборудование соответствует системным требованиям. Он поддерживает установку на различных платформах, включая Raspberry Pi, обычные компьютеры и виртуальные машины. Требования могут немного варьироваться в зависимости от выбранной платформы, но в основном вам потребуется:

  • Компьютер или устройство с операционной системой, поддерживаемой Home Assistant.
  • Минимальный объем свободного дискового пространства.
  • Доступ к Интернету для загрузки и установки приложения.

Установка платформы для умного дома

Home Assistant

Установка Home Assistant довольно проста и может быть выполнена несколькими способами. Один из самых популярных вариантов — это установка операционной системы на Raspberry Pi. Этот мини-компьютер отлично подходит для начала автоматизации дома.

  1. Скачайте образ Home Assistant OS: Посетите официальный сайт и скачайте образ операционной системы, который соответствует вашей платформе.
  2. Запишите образ на карту памяти: Используйте программу для записи образов, такую как Balena Etcher, чтобы записать образ на карту памяти.
  3. Вставьте карту памяти в Raspberry Pi и включите его: Подключите Raspberry Pi к сети и включите его. Home Assistant начнет загружаться.
  4. Доступ к интерфейсу: После загрузки вы сможете получить доступ к интерфейсу через веб-браузер, введя IP-адрес вашего Raspberry Pi.

Настройка платформы для умного дома

Home Assistant

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

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

Интеграция умных устройств

Home Assistant

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

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

Расширение функциональности Home Assistant

Home Assistant

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

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

Поддержка и сообщество Home Assistant

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

Заключение

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

Понравилась статья? Поделить с друзьями:

Это тоже интересно:

  • Hoco y12 ultra часы инструкция
  • Home gate ltm 800 инструкция
  • Homakoll клей для линолеума инструкция по применению
  • Hoco watch инструкция на русском языке
  • Home garden phg 51 инструкция

  • Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии