auto-sync: 2026-04-15 13:50:01

This commit is contained in:
Stream
2026-04-15 13:50:01 +03:00
parent acfcb1c0c4
commit 8502f72cca

View File

@@ -6,7 +6,7 @@
## Метрика
**Доступность** = время в статусе «доступен» / общее время периода × 100%
- «Доступен» — любой статус, кроме `unavailable` и `unknown`
- «Доступен» — любой статус, кроме `unavailable` и `unknown`. **Важно:** статус `off` (выключенное устройство) считается доступным — выключено ≠ недоступно
- «Недоступен» — статус `unavailable` или `unknown`
- Результат: процент (0%100%), один знак после точки
@@ -92,9 +92,32 @@ sensor.avail_light_bra_v_spalne:
### Рекомендация: Вариант A (AppDaemon)
Оптимальный баланс. Изолированный Python-скрипт, batch-обработка, легко масштабировать.
### Cold-start (первичная загрузка и перезапуск)
При запуске AppDaemon (или после перезапуска HA) — **полный пересчёт текущего активного периода** для всех устройств. Не ждать следующего расписания — данные должны быть актуальны сразу.
**Rate-limit при batch-запросах:** 180 устройств × 30 дней истории — ощутимая нагрузка на HA API. Разбивать на батчи по ~20 entity_id с паузой 1 сек между запросами. Показывать прогресс: `sensor.avail_calc_progress` с состоянием `"47/180"` или `"idle"`.
## Дашборд
### Карточка: список устройств с визуалом
### Группировка по комнатам/зонам
Устройства группируются по **HA areas** (комнатам). Если у устройства нет area — группа «Без комнаты».
- Каждая группа — **сворачиваемая секция** с заголовком: `🛏️ Спальня (12 устройств, 97.2%)`
- В заголовке: иконка комнаты, средняя доступность по группе, количество устройств
- По умолчанию: проблемные комнаты (средний % < 95%) раскрыты, остальные свёрнуты
- Сортировка комнат: сначала проблемные, потом по средней доступности (по убыванию)
### Мобильная адаптация
На экранах < 768px (мобильный вид):
- **Убрать sparkline** — не помещается
- **Компактная строка:** иконка + friendly name + цветной процент (крупный)
- **Прогресс-бар** — тонкий, одна линия (не блок)
- **Сводка падений** — скрыта, раскрывается по тапу (expandable)
- **Группы комнат** — свёрнуты по умолчанию, тап раскрывает список
Десктопный вид — как описано ниже (полный).
### Карточка: список устройств с визуалом (десктоп)
**Прогресс-бар + сводка для каждого устройства:**
```
@@ -185,7 +208,7 @@ def calc_availability(history_entries, period_start, period_end):
- Если устройство удалено — перестать показывать на дашборде
## Что нужно от Славы
1. Подтвердить вариант реализации (рекомендую B — AppDaemon/Python)
1. Подтвердить вариант реализации (рекомендую A — AppDaemon/Python)
2. Увеличить `purge_keep_days` до 35 (иначе не будет данных за месяц)
3. Установить AppDaemon (если выбран вариант B) — или подтвердить другой вариант
3. Установить AppDaemon (если выбран вариант A) — или подтвердить другой вариант
4. Подтвердить список исключений (какие entity не отслеживать)