ha(H5): исправления по ревью — GitHub/HACS, рабочий ESPHome-канал, restore, manylinux

- critical: README честно описывает HACS (только публичный GitHub-зеркало)
  + ручная установка копированием; RELEASE_HA — шаг зеркала и codeowners
- critical: ESPHome-канал приёмки реализован реально (aioesphomeapi:
  connect/list_entities/climate_command для режима и уставки; fan/swing —
  только HA); unit-тест на фейковом модуле
- major: quick/long восстанавливают исходное состояние в finally даже при
  сбое; quick ждёт восстановления; ошибки шага пишутся в результат (rc 1),
  а не фаталят (rc 2)
- major: RELEASE_HA — manylinux через auditwheel repair (PyPI отклоняет
  linux_x86_64), build/twine, aarch64, корректные проверки .so, тег/версия
- major: полный ключ для ESPHome теперь реально виден в options flow
  («Настройка» на карточке интеграции, поле LAN IP key, можно заменить) —
  README/diagnostics синхронизированы
- minor: non-JSON ответ → rc 2; CSV quick+long и инкрементальная запись;
  допуск _matches в long; --settle-timeout; hacs.json homeassistant=2025.1;
  brand/{icon,logo}.png заглушки; план §6/§7 уточнён
- тесты: acceptance self-test 11 (restore-after-failure, long fail, non-JSON,
  esphome channel), options flow (2), всего 28+11+49
This commit is contained in:
2026-09-29 14:54:50 +03:00
parent 8013781e09
commit a03458f9bc
15 changed files with 609 additions and 178 deletions
+8 -4
View File
@@ -118,8 +118,9 @@ asyncio → push-coordinator. Состояния: `online` → available;
Структура (`screenshots/step-N.png` — заглушки-плейсхолдеры, владелец заменит
реальными скриншотами; рядом с каждой — описание что должно быть видно):
1. **Установка через HACS**:
* HACS → ⋮ → Custom repositories → URL репозитория, категория
1. **Установка через HACS** (нужно публичное GitHub-зеркало — HACS не
поддерживает GitLab/Gitea; либо ручное копирование `custom_components/`):
* HACS → ⋮ → Custom repositories → URL GitHub-зеркала, категория
Integration → Add. Скриншот: диалог добавления custom repository с
заполненным URL и выбранной категорией Integration.
* FGLair → Download → перезапуск HA. Скриншот: страница загрузки
@@ -152,8 +153,11 @@ Security → Long-lived access tokens) и REST API: вызов сервисов
(OAuth-флоу) не нужна — пользователь просто создаёт токен и передаёт
скрипту (`--ha-url`, `--ha-token`).
Режимы: quick (матрица burst/не-burst, обе стороны, с возвратом) и `--long`
(24 ч, ежечасное изменение с проверкой и возвратом, CSV-отчёт). Скрипт НЕ
открывает собственную сессию к кондиционеру (оба слота заняты HA+ESP).
(24 ч, ежечасное изменение с проверкой и возвратом, CSV-отчёт дописывается
по ходу). Скрипт НЕ открывает собственную сессию к кондиционеру (оба слота
заняты HA+ESP). ESPHome-канал (опционально, `--esphome-host`): через native
API отправляются шаги «режим» и «уставка», проверка — по состоянию в HA
(сквозная цепочка ESPHome → модуль → HA); fan/swing — только со стороны HA.
## 8. Этапы