Home Assistant Пакеты или Packages

Здравия всем! В этой статье я расскажу про пакеты или packages в Home Assistant. Для чего они нужны и как ими пользоваться.

Введение

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

Настройка

У меня структура такая в корне папки там же где и конфигурационный файл configuration.yaml я создал папку packages, а уже в ней структура папок и файлов группируется как душе угодно! Для того чтобы Home Assistant умел работать с пакетами нужно добавить об этом в файл configuration.yaml. Делается это в секции homeassistant нужно добавить строку

# Пример configuration.yaml файла
homeassistant: 
  packages: !include_dir_merge_named packages
  

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

Покажу какая структура у меня папке packages

packages
  system
    system_automation.yaml
    system_sensors.yaml
    ...
  rooms
    kitchen
      kitchen_cookerhood.yaml
      kitchen_light.yaml
      kitchen_sensors.yaml 
      ...

Конфигурация

Теперь пора создать файл внутри папки packages. Пусть это будет файл с названием cabinet_light.yaml. Каждый файл пакета должен начинаться с уникальной секции. Я для этого использую название файла. Файлы стараюсь называть понятно. Сами же объекты находятся внутри своих секций. Давайте создадим в одном файле парочку различных структур.

# пример файла cabinet_light.yaml
cabinet_light:
  # Виртуальный переключатель
  input_boolean:
    cabinet_lamp_auto:
      name: Кабинет - автоматика
      icon: mdi:lightbulb-on
  # Бинарный сенсор
  binary_sensor:
    - platform: tod
      name: cabinet_day
      after: "07:00"
      before: "21:05"
  # Светильник mqtt
  mqtt:
    light:
    - name: cabinet_light
      state_topic: "home/cabinet/switch1"
      command_topic: "home/cabinet/switch1/set"
      payload_on: "ON"
      payload_off: "OFF"
  #автоматизации
  automation:
    #Включение света в кабинете по расписанию
    - alias: cabinet_light_on
      initial_state: true
      trigger:
        - platform: state
          entity_id: binary_sensor.cabinet_day
          from: "off"
          to: "on"
      condition:
        - condition: state
          entity_id: input_boolean.cabinet_lamp_auto
          state: "on"
      action:
        - service: light.turn_on
          entity_id: light.cabinet_light
    
    #Выключение света в кабинете по расписанию
    - alias: cabinet_light_off
      initial_state: true
      trigger:
        - platform: state
          entity_id: binary_sensor.cabinet_day
          from: "on"
          to: "off"
      condition:
        - condition: state
          entity_id: input_boolean.cabinet_lamp_auto
          state: "on"
      action:
        - service: light.turn_off
          entity_id: light.cabinet_light

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

Перезагрузим конфигурацию Home Assistant и все наши новые объекты появятся в системе

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.