auto-sync: 2026-04-15 13:50:01
This commit is contained in:
@@ -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 не отслеживать)
|
||||
|
||||
Reference in New Issue
Block a user