Удобная настройка (конфигурация) Home Assistant

16 июля 2020, 15:13

По умолчанию свеже установленный Home Assistant встречает нас с таким вот содержимым configuration.yaml:


# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

В примерах готовых конфигов большинства пользователей можно встретить такие вот вещи:

sensor: !include_dir_merge_list includes/sensors
binary_sensor: !include_dir_merge_list includes/bin_sensor
switch: !include_dir_merge_list includes/switches
climate: !include includes/climate.yaml
mqtt_statestream: !include includes/mqtt_statestream.yaml
input_number: !include includes/input_number.yaml
input_select: !include includes/input_select.yaml
media_player: !include includes/mplayer.yaml
light: !include includes/light.yaml
...

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

Но есть более простой способ формировать свой конфиг:

default_config:

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

homeassistant:
  packages: !include_dir_named conf

Добавив в configuration.yaml строки homeassistant/packages - вы можете больше никогда не открывать этот файл и не вносить в него изменения. Файлы automations.yamlscripts.yaml и scenes.yaml - тоже не трогайте. Они нужны для настройки автоматизаций, скриптов и сцен из GUI.

Теперь создайте папку conf в директории с конфигами и пишите ваши конфиги там.

Например, хотите добавить управление колонкой от Яндекса - создайте в папке conf файл yandex_station.yaml с примерно таким содержимым:

yandex_station:
  username: myuser@yandex.ru
  password: mypass

script:
  yandex_tts:
    alias: TTS на Станции
    sequence:
    - service: media_player.play_media
      entity_id: media_player.yandex_station  # замените на вашу станцию
      data:
        media_content_id: Проверка TTS от Яндекс.Станции
        media_content_type: text
  yandex_play_url:
    alias: Проигрывание медиа по ссылке
    sequence:
    - service: media_player.play_media
      entity_id: media_player.yandex_station  # замените на вашу станцию
      data:
        media_content_id: https://music.yandex.ru/album/2150009/track/19174962
        media_content_type: xxx  # тип не важен, но должен быть!

Хотите добавить Яндекс Алису в Телеграм - создайте файл telegram.yaml

telegram_bot:
  - platform: polling
    api_key: TELEGRAM_BOT_API_KEY  # создайте своего Телеграм бота
    allowed_chat_ids:
      - TELEGRAM_USER_ID  # укажите ID своего аккаунта

notify:
- name: telegram  # можете указать своё имя notify
  platform: telegram
  chat_id: TELEGRAM_USER_ID  # укажите ID своего аккаунта

automation:
- trigger:
    platform: event
    event_type: telegram_text
  action:
    service: media_player.play_media
    entity_id: media_player.yandex_station_mini  # замените на вашу станцию
    data_template:
      media_content_id: "{{ trigger.event.data.text }}"
      media_content_type: question
- trigger:
    platform: event
    event_type: yandex_station_response
  action:
    service: notify.telegram  # поменяйте, если у вас своё имя notify
    data_template:
      message: "{{ trigger.event.data.text }}"

Для каких-то общесистемных вещей можно создать файл system.yaml

sensor:
- platform: dnsip

start_time:

script:
  restart:
    alias: Restart Home Assistant
    sequence:
    - service: homeassistant.restart

speedtestdotnet:

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

У меня, к примеру, есть конфиги: camera, clear_grass, dev, google_assistant, hubs, light_and_switch, media, purifier, system, telegram, weather, yandex_smart_home.

Новые файлы в директории conf никуда прописывать не надо. Они автоматически подхватятся при перезагрузке.

Каждый файл в директории conf может иметь свои автоматизации, скрипты, сенсоры и прочее. Они все автоматически "склеятся" с автоматизациями и скриптами из GUI.

Как только вам интеграция не нужна - можно переименовать telegram.yaml в telegram.yaml.bak и перезапустить Home Assistant. Интеграция со всеми зависимостями и автоматизациями выключиться разом.

Как-то так можно сильно упросить себе жизнь...


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (rupunx)
    (rupunx) год назад

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

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

  2. Юрий Жабенко (remark)
    Юрий Жабенко (remark) отредактировано год назад

    Include использую по комнатам, к примеру в директориях "automation", "light", "sensor" и.т.д есть файлы bedroom.yaml, hallway.yaml main.yaml и.т.д. Но для чего нибудь замороченного, к примеру того же учета электроэнергии использую packages. Всё вместе и наглядно.

  3. (Silverow)
    (Silverow) год назад

    Уже некоторое время думаю, а зачем использовать этот HA со старообрядной настройкой? Есть же нормальные бесплатные варианты, тот же iobroker.

    • (AirKing)
      (AirKing) 10 месяцев назад
      Тормоз этот брокер. Ушел с него на НА
  4. (Pavel_V)
    (Pavel_V) 3 месяца назад

    Здравствуйте. Хочу навести порядок и интересует пара моментов, т.к. недавно начал заниматься HA.

    Например, как перекинуть такие параметры как:

    homeassistant:
      name: My Smart Home
      latitude: 
      longitude: 
      elevation: 
      unit_system: metric
      time_zone: Europe/Moscow
      customize: !include includes/customize.yaml
      packages: !include_dir_merge_named includes/packages
    
    frontend:
      themes: !include_dir_merge_named themes
    
    lovelace:
      mode: yaml
      resources:
        - url: /local/vacuum-card.js
          type: module
        - url: /local/custom_lovelace/xiaomi_vacuum_map_card/xiaomi-vacuum-map-card.js
          type: module
        - url: /hacsfiles/lovelace-xiaomi-vacuum-card/xiaomi-vacuum-card.js
          type: module
        - url: /local/community/mini-graph-card/mini-graph-card-bundle.js?v=0.10.0
          type: module

    Можно просто создать в папке conf файлы с такими же именами, как тут ( frontend,  lovelace) и прописать в них соответсвующие конфиги, или все эти конфиги достаточно будет прописать в /conf/system.yaml ?

К списку блогов

Похожие записи

12 сентября 2020, 20:51
Создание при помощи бесплатной программы Sweet Home 3D интерактивного плана помещения для Home Assistant.
13 февраля 2019, 22:00
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
19 апреля 2019, 20:53
Требуется ваше мнение!
06 февраля 2019, 12:02
Автоматизированное открытие/закрытие окна
04 апреля 2019, 12:45
Самое важное из апдейта Home Assistant 0.91-0.91.4 от 03.04.19.
21 марта 2019, 11:59
Самое важное из апдейта Home Assistant 0.9 от 20.03.19.
21 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.88 от 20.02.19.
19 января 2019, 20:49
Делюсь новостями по проекту.
28 мая 2020, 05:53
Компонент для управления устройствами Sonoff на прошивке eWeLink по локальной сети и через облако из Home Assistant без необходимости перепрошивать устройства