Інтеграція для Home Assistant, що показує наявність електропостачання у вашій області та черзі за даними сервісу svitlo.live.
Це нова версія (v2), що повністю перейшла на API наданий розробниками svitlo.live сайту замість парсингу HTML сайту svitlo.live.
Інтеграція оновлена з нуля: швидша, безпечніша та з мінімальним навантаженням на сервер.
- ✅ Показує поточний статус світла (
Є / Немає), - ✅ Визначає наступне вмикання та відключення електроенергії,
- ✅ Показує час останнього оновлення розкладу,
- ✅ Має вбудовану локалізацію (UA / EN),
- ✅ Підтримує усі області України і типи черг / груп (1.1–6.2, 1–6, 1–12),
- ✅ Може мати довільну кількість entry (областей/черг) в одному Home Assistant,
- ✅ Усі entry оновлюються через один спільний запит до API, щоб зменшити навантаження,
- ✅ Сенсори та бінарні сенсори зручні для автоматизацій та дашбордів.
Інтеграція складається з двох шарів:
-
SvitloApiHub(api_hub.py)
Один спільний хаб для всіх entry.- Робить один HTTP-запит до проксісервера (Cloudflare Worker) з ключем API.
- Зберігає отримані дані в кеш на 15 хв.
- Гарантовано не викликає дублюючих запитів навіть при перезапуску Home Assistant.
-
SvitloCoordinator(coordinator.py)
Окремий координатор для кожного доданого регіону/черги.- Отримує розклад з хаба (
api_hub), без повторного запиту в мережу. - Розумний вибір проксі: Автоматично перемикається між стандартним API (для більшості областей) та спеціалізованим ДТЕК-проксі (для Києва, Одеси та Дніпра) для забезпечення максимальної надійності.
- Аналізує півгодинні слоти, формує стани (
on/off). - Планує точне перемикання ентиті в момент відключення/включення без додаткових звернень до API.
- Отримує розклад з хаба (
- API повертає розклад у локальному українському часі (Europe/Kyiv).
- Інтеграція повністю коректно конвертує цей час у UTC для Home Assistant,
тому незалежно від вашої часової зони все відображається точно.
Інтеграція не містить ключ API відкрито.
Для доступу до https://svitlo.live/api/asistant.php створено проміжний Cloudflare Worker, який:
- зберігає ключ
x-api-keyу приватному середовищі Worker’а, - приймає безпечний запит без авторизації з інтеграції,
- пересилає запит до
svitlo.liveі повертає JSON-відповідь.
Інтеграція використовує окремий проксі сервер як джерело даних (dtek-api), який агрегуються безпосередньо з офіційних сайтів ДТЕК, гарантуючи актуальність графіків, навіть коли АРІ svitlo.live відстає від оновлень графіків.
- Кожні 15 хвилин Home Assistant отримує нові дані з API.
- Кеш API зберігається 15 хвилин.
- Проміж оновлень інтеграція самостійно перемикає стани точно за розкладом (півгодинні інтервали).
Наприклад, якщо відключення о 17:30, сенсор “Electricity” зміниться рівно о 17:30, навіть без запиту до API.
| Тип | Назва | Опис |
|---|---|---|
| 🟢 Binary Sensor | Electricity status |
Увімкнено / Вимкнено світло |
| 📘 Sensor | Electricity |
Текстовий статус: “Grid ON / OFF” |
| ⏰ Sensor | Next grid connection |
Час наступного вмикання (якщо зараз вимкнено) |
Next outage |
Час наступного відключення (якщо зараз увімкнено) | |
| 🔄 Sensor | Schedule updated |
Час останнього опитування API |
| 📅 Calendar | calendar.svitlo_<region>_<queue> |
“💡 Electricity available” |
| ⏳ Sensor | Minutes to grid connection | Показує кількість хвилин до наступного відновлення світла. Оновлюється кожні 30 секунд. Активний лише коли світло вимкнене. |
| ⏱ Sensor | Minutes to outage | Показує кількість хвилин до наступного відключення. Оновлюється кожні 30 секунд. Активний лише коли світло увімкнене. |
Усі області України (неокупованої частини), крім тимчасово недоступних (наразі Херсонська).
Для Чернівецької та Донецької — “Група N”, інші — “Черга N.M”.
- Відкрий HACS → Integrations → Custom repositories.
- Додай репозиторій:
тип — Integration.
https://github.com/chaichuk/svitlo_live - Встанови
Svitlo.liveі перезапусти Home Assistant. - Додай інтеграцію через
Settings → Devices & Services → + Add Integration → Svitlo.live.
Разом з інтеграцією автоматично встановлюється blueprint для щоденних сповіщень про графік електропостачання.
- Перейдіть в Налаштування → Автоматизації та сцени
- Натисніть Створити автоматизацію → Почати з blueprint
- Виберіть "Svitlo Live: ....."
- Заповність поля.
- github: @chaichuk
- TG: @serhii_chaichuk