Использование secrets.yaml в Home Assistant

Настройка Home Assistant выполяется как с помощью графического интерфейса, так и с помощью редактирования yaml файлов с конфигами.

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

telegram_bot:
  - platform: polling
    api_key: 1251738428:AAGCg-TlvbP7ug8pKTJ8N5As3Zz1nhzvyOo
    parse_mode: html

Хорошая идея — выносить все секретные данные в специальный файл secrets.yaml.

Вот как можно переписать этот же пример конфига с использованием секретов. Новое содержимое файла configuration.yaml:

telegram_bot:
  - platform: polling
    api_key: !secret telegram_token
    parse_mode: html

Теперь значение api_key, это не сам токен, а команда для использования секрета с именем telegram_token.

Все секреты хранятся в файле secrets.yaml. Вот как описать секрет в этом файле:

telegram_token: 1251738428:AAGCg-TlvbP7ug8pKTJ8N5As3Zz1nhzvyOo

Зачем нужно выносить секретные данные в отдельный файл

Если все секреты вынесены в отдельный файл, то тогда можно спокойно показывать свои конфиги — не будет опасности что случайно утечет какой-то важный токен или пароль.

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

Расположение файла secrets.yaml

Файл secrets.yaml должен находиться в той же папке что и главный конфигурационный файл configuration.yaml:

config/
├── www/
├── automations.yaml
├── configuration.yaml
├── secrets.yaml
└── ...

В свежих версиях Home Assistant файл secrets.yaml есть сразу после установки. На более ранних версиях Home Assistant этот файл нужно было создать самостоятельно.

Содержимое файла secrets.yaml после установки Home Assistant

После установки Home Assistant сразу появлесятся файл config/secrets.yaml в котором содержится пример использования:

# Use this file to store secrets like usernames and passwords.
# Learn more at https://www.home-assistant.io/docs/configuration/secrets/
some_password: welcome
Редактировать страницу на GitHub