🔄 Рабочий процесс¶
Рекомендации по работе с конфигурацией Home Assistant.
📑 Содержание¶
- 🎯 Ежедневная работа
- Простой способ (рекомендуется)
- 🛡️ Безопасное редактирование
- Перед началом
- Редактирование
- Развертывание
- 🆘 Если что-то сломалось
- Уровень 1: Git откат (быстро)
- Уровень 2: Локальный бэкап
- Уровень 3: Снапшот HA (полное восстановление)
- 📋 Типичные сценарии
- Добавление новой интеграции
- Изменение автоматизации
- Обновление секретов
- Массовые изменения
- 🔍 Отладка
- Поиск ошибок
- Проверка конфигурации
- 📊 Git workflow
- Создание feature branch
- Просмотр истории
- 💡 Best Practices
- Перед каждым изменением
- При редактировании
- После изменения
- Регулярно
- ⚡ Быстрая справка
🎯 Ежедневная работа¶
Простой способ (рекомендуется)¶
# 1. Смонтировать (если ещё не смонтировано)
./scripts/mount.sh
# 2. Редактировать в Cursor
code config/configuration.yaml
# 3. Развернуть (всё автоматически!)
./scripts/deploy.sh
Скрипт deploy.sh делает:
- 💾 Создаёт бэкап
- 🔍 Проверяет YAML
- ✅ Валидирует через HA
- 📝 Коммитит в Git
- 🔄 Перезагружает HA
- ✅ Проверяет запуск
🛡️ Безопасное редактирование¶
Перед началом¶
# Убедиться что есть свежий снапшот HA
ssh -F .ssh/config hassio "ha backups list"
# Если последний старый - создать новый
ssh -F .ssh/config hassio "ha backups new --name='before-changes'"
Редактирование¶
Развертывание¶
Автоматический (рекомендуется):
Ручной (если хотите контроль):
# 1. Бэкап
./scripts/backup.sh
# 2. Проверка YAML
yamllint config/*.yaml
# 3. Проверка HA
ssh -F .ssh/config hassio "ha core check"
# 4. Git коммит
cd config/
git add .
git commit -m "Описание изменений"
# 5. Перезагрузка
ssh -F .ssh/config hassio "ha core restart"
# 6. Логи
./scripts/view_logs.sh
🆘 Если что-то сломалось¶
Уровень 1: Git откат (быстро)¶
cd config/
git log --oneline # Найти последний рабочий коммит
git revert HEAD # Откатить последнее изменение
./scripts/deploy.sh # Применить откат
Уровень 2: Локальный бэкап¶
Уровень 3: Снапшот HA (полное восстановление)¶
# Список снапшотов
ssh -F .ssh/config hassio "ha backups list"
# Восстановить
ssh -F .ssh/config hassio "ha backups restore SLUG"
📋 Типичные сценарии¶
Добавление новой интеграции¶
# 1. Создать снапшот HA (на всякий случай)
ssh -F .ssh/config hassio "ha backups new --name='before-integration'"
# 2. Создать локальный бэкап
./scripts/backup.sh
# 3. Редактировать configuration.yaml
code config/configuration.yaml
# 4. Развернуть
./scripts/deploy.sh
# 5. Проверить логи
./scripts/view_logs.sh
Изменение автоматизации¶
# 1. Редактировать
code config/automations.yaml
# 2. Развернуть (бэкап автоматически)
./scripts/deploy.sh
# 3. Проверить что работает
# (тестировать триггеры вручную в HA)
Обновление секретов¶
# 1. Редактировать
nano config/secrets.yaml
# 2. Проверить синтаксис
yamllint config/secrets.yaml
# 3. Перезагрузить (secrets не в Git!)
ssh -F .ssh/config hassio "ha core restart"
Массовые изменения¶
# 1. Создать ПОЛНЫЙ снапшот HA
ssh -F .ssh/config hassio "ha backups new --name='before-major-changes'"
# 2. Создать ветку в Git
cd config/
git checkout -b experimental
# 3. Редактировать
code .
# 4. Тестировать
./scripts/deploy.sh
# 5. Если всё ОК - смержить
git checkout main
git merge experimental
# 6. Если не ОК - откатить
git checkout main
git branch -D experimental
🔍 Отладка¶
Поиск ошибок¶
# В логах HA
ssh -F .ssh/config hassio "grep ERROR /config/home-assistant.log | tail -20"
# Конкретный компонент
ssh -F .ssh/config hassio "grep 'homeassistant.components.mqtt' /config/home-assistant.log"
# За последний час
ssh -F .ssh/config hassio "tail -1000 /config/home-assistant.log | grep ERROR"
Проверка конфигурации¶
# YAML синтаксис
yamllint config/configuration.yaml
# Конфигурация HA (детально)
ssh -F .ssh/config hassio "ha core check"
# Запуск в debug режиме
# Редактировать configuration.yaml:
logger:
default: info
logs:
homeassistant.core: debug
📊 Git workflow¶
Создание feature branch¶
cd config/
# Создать ветку
git checkout -b new-feature
# Редактировать
code .
# Коммитить
git add .
git commit -m "Add new feature"
# Тестировать
cd ~/HASSio
./scripts/deploy.sh
# Если OK - смержить
cd config/
git checkout main
git merge new-feature
git branch -d new-feature
# Если не OK - удалить ветку
git checkout main
git branch -D new-feature
Просмотр истории¶
cd config/
# Лог
git log --oneline --graph --decorate
# Изменения в файле
git log --follow configuration.yaml
# Кто менял строку
git blame configuration.yaml
# Изменения между коммитами
git diff HEAD~1 HEAD
💡 Best Practices¶
Перед каждым изменением¶
- ✅ Убедиться что есть свежий снапшот HA (раз в неделю)
- ✅ Локальный бэкап создастся автоматически через deploy.sh
При редактировании¶
- ✅ Проверять YAML синтаксис
- ✅ Тестировать на dev ветке (для больших изменений)
- ✅ Читать логи после развертывания
После изменения¶
- ✅ Проверить что HA запустился
- ✅ Проверить что устройства работают
- ✅ Закоммитить в Git
Регулярно¶
- ✅ Создавать полные снапшоты HA (раз в неделю)
- ✅ Просматривать логи на ошибки
- ✅ Обновлять Home Assistant