Где хранить конфигурацию Home Assistant: YAML или .storage?
Home Assistant позволяет хранить конфигурацию в YAML-файлах или в папке .storage. Статья описывает преимущества и ограничения каждого подхода: удобство работы, перенос между экземплярами системы и совместную работу через Git.
Вступление
Хранение конфигурации в Home Assistant — это основа удобной и безопасной работы. От этого зависит, насколько просто будет управлять системой, делать резервные копии и откатывать изменения.
Существует два основных способа: использование YAML-файлов и хранение настроек в скрытой папке .storage.
Конфигурация в YAML
YAML — это классический способ описания конфигурации Home Assistant. Основной файл — configuration.yaml, но конфигурация может быть вынесена в отдельные файлы: automations.yaml, ui-lovelace.yaml и другие.
Главные преимущества: удобно хранить в Git, а значит обеспечить командную работу с прозрачной историей изменений; человеко-читаемый формат.
Важно учитывать: сенсоры можно описывать двумя способами — старым, без unique_id, и новым, с unique_id. В первом случае существует ряд ограничений при просмотре и редактировании сущности. Во втором случае сущность можно редактировать через веб‑интерфейс, и эти изменения попадут в .storage. В итоге часть свойств будет управляться YAML, а часть — храниться в .storage, что лишает конфигурацию единой точки правды.
Конфигурация в .storage
Папка .storage появляется внутри директории config. В неё Home Assistant автоматически записывает настройки, если они сделаны через веб-интерфейс. Файлы хранятся в формате JSON и не предназначены для ручного редактирования.
Главные преимущества: подходит новичкам, которые привыкли работать из веб-интерфейса.
Сравнительная таблица
| Фактор принятия решения | YAML | .storage |
|---|---|---|
| Простота для новичков | Требует знаний YAML | Всё через UI |
| Читаемость | Читаемо, понятный синтаксис | JSON, сложнее читать |
| Версионирование в Git | Удобно, контроль истории | Сложнее работать с JSON |
| Командная работа | Поддерживается через Git | Практически отсутствует |
| Перенос между экземплярами HA | Легко переносить файлы | Возможен только через полный backup & restore |
| Применение изменений | Иногда нужен перезапуск | Сразу в работе |
Что выбрать?
Оба подхода имеют право на жизнь. Выбор зависит от того, как вы используете Home Assistant.
Если вы работаете в команде, лучше хранить конфигурацию в YAML и вести её историю в Git. Это позволит отслеживать изменения, делать ревью и быстро откатываться. Если нужен частичный (не полный) перенос данных между разными экземплярами Home Assistant, используйте YAML — это самый надёжный вариант.
Если вы работаете в одиночку, то выбор зависит от ваших предпочтений: любите полный контроль и прозрачность — используйте YAML. Цените простоту и работу через интерфейс — полагайтесь на .storage.