SvitloPulse

Як це працює

Від сторінки оператора до статусу на карті: що ми читаємо, що рахуємо і де прямо кажемо «не знаємо».

Коротко

Основа всього — графік, який опублікував оператор. Ми приводимо графіки різних операторів до одного формату, додаємо до них незалежні сигнали (якщо вони є) і показуємо результат на рівні черги та області. Ми не бачимо вашої оселі і не вдаємо, що бачимо.

Три речі, які варто запам’ятати: (1) графік — це план, а не гарантія; (2) «Даних немає» означає саме це, а не «світло є»; (3) один сигнал від однієї людини нічого не змінює.

Звідки беруться графіки

Графіки погодинних відключень публікують оператори системи розподілу: ДТЕК, ЦЕК та обласні енергопостачальні компанії. У нашому реєстрі 25 операторів. Для частини з них ми читаємо дані напряму, для частини — через відкриті публічні дзеркала та агрегатори, для частини даних у придатному вигляді немає: Волинь і Суми публікують графік картинкою, Кіровоградщина — текстом у Telegram, Чернівеччина — на сторінці без структурованих даних, для Херсонщини і Донеччини (ДТЕК Донецькі електромережі) графіка немає взагалі.

Окремо ми читаємо публічні повідомлення Укренерго про режим системи («стан енергосистеми», «інформація про відключення»). З них видно, чи діють аварійні відключення, коли погодинні графіки не працюють. Повний перелік і обмеження — на сторінці «Джерела даних».

Нормалізація

Кожен оператор публікує по-своєму: різні назви черг, різні формати JSON, різне кодування годин. Ми зводимо все до однієї моделі:

  • Оператор і черга — ключ виду lvivoblenergo:3.2. Звичайна схема — 6 черг по 2 підчерги (12 груп). У Києві ДТЕК використовує окрему схему до 60 груп.
  • Інтервали — для кожної доби список проміжків «вимкнено» або «можливо». «Можливо» — це час, який оператор позначає як ймовірний, а не гарантований.
  • Час — за Києвом, з урахуванням літнього та зимового часу.
  • Відсутність даних — окремий стан. Якщо графіка немає, черга отримує «Даних немає», а не «Світло є». Час без даних в історії лічиться окремо і не входить у відсоток «світло було».

Історія версій графіка зберігається: ми можемо показати, який графік оператор опублікував у певний момент, і як він змінювався протягом дня.

Незалежні сигнали

Графік може розходитися з реальністю: аварія, зміна рішення оператора, локальне пошкодження. Щоб це помітити, система приймає сигнали кількох типів:

  • Датчики. Пристрої, які регулярно сповіщають, що живляться від мережі. Якщо сигнал зникає, це свідчить про відсутність світла. Найсильніший тип сигналу. Свій датчик (роутер, Raspberry Pi, ESP32, Home Assistant) може підключити кожен: як це зробити. Публічно показується лише агрегат від п’яти й більше датчиків однієї черги.
  • Звіти мешканців. Кнопки «Світло є» та «Світла немає» біля черги. Слабші за датчики і вимагають збігу кількох людей.
  • Непрямі ознаки. Наприклад, доступність зарядних станцій для електромобілів або регіональні показники інтернет-зв’язку. Вони можуть лише трохи зсунути оцінку, бо причин для їх зміни багато.

Яка частина цих сигналів активна в конкретній області, залежить від того, чи є там джерела. Де їх немає, оцінка спирається тільки на графік, і ми це показуємо через нижчу впевненість.

Як сигнали зливаються з графіком

Для кожної черги ми рахуємо ймовірність, що світла немає. Спрощено це працює так:

  1. Початкова оцінка з графіка. Якщо за планом «вимкнено» — висока ймовірність відключення; «можливо» — приблизно навпіл; «увімкнено» — низька. Якщо плану немає, початкова оцінка нейтральна, а під час аварійного режиму — трохи вища.
  2. Свіжі сигнали зсувають оцінку. Сигнали «світла немає» піднімають її, «світло є» знижують. Кожен тип має власну межу впливу: датчик може змінити оцінку сильно, непрямий сигнал — лише трохи.
  3. Старі сигнали згасають. З часом сигнал важить менше, а все, що старіше за дві години, не враховується.
  4. Дублікати не множаться. Від кожного джерела береться останній сигнал. Десять однакових звітів не переважать кілька незалежних, бо вплив зростає дедалі повільніше.
  5. Одинокий звіт мешканця слабкий. Поки його не підтвердить хоча б ще одна людина, його вага зменшена.

Результат переводиться в стан: з ймовірністю від 70% — «Світла немає», до 30% — «Світло є», а між ними — «Можливе відключення». Ці пороги та ваги налаштовуються і можуть змінюватися.

Що таке впевненість

Впевненість показує, наскільки оцінка визначена. Вона залежить від двох речей: наскільки ймовірність далека від 50/50 і чи є незалежні підтвердження. Якщо спертися можна лише на графік, впевненість штучно обмежена: ми не вважаємо оцінку повністю надійною без жодного підтвердження. Чим більше незалежних сигналів, тим вищою вона може бути.

Є й показник покриття: яку частку від цільового числа незалежних джерел ми реально маємо для черги. Він пояснює, чому в одній області впевненість вища, ніж в іншій.

Як читати «Можливе відключення»

Цей стан з’являється, коли:

  • оператор позначив час як «можливо», а не «вимкнено»;
  • або графік каже одне, а сигнали — інше, і жодна сторона не переважає.

Практично: готуйтеся так, ніби світло може зникнути, але не вважайте це фактом. Якщо за кілька хвилин статус не змінився, дивіться на час повернення та свіжість даних оператора.

Час повернення — планований. «Очікуване повернення» — це кінець поточного інтервалу з графіка. Якщо відключення аварійне або вже триває довше за план, реальний час може бути іншим.

Чому саме такий статус

Окрім стану, кожна черга має клас — причину, чому вона в цьому стані:

За графіком
Стан збігається з тим, що опублікував оператор.
Аварійне
Укренерго повідомляє про аварійні відключення, і погодинні графіки не діють.
Локальне
Сигнали вказують на відключення, якого графік не передбачав.
Невідомо
Немає ні графіка, ні сигналів. Колір сірий, і це не «світло є».

Що бачить публіка

Щоб ніхто не міг вирахувати конкретну домівку або використати карту на шкоду:

  • публічні дані агреговані до черги та області;
  • сигнали з’являються на карті лише після затримки щонайменше 30 хвилин і лише коли їх надіслали не менше п’яти незалежних джерел;
  • у системі немає шарів підстанцій чи ліній електропередач;
  • для сигналів є аварійний вимикач: шар можна вимкнути одразу.

Докладніше про дані, які ми зберігаємо, — на сторінці «Приватність».

Свіжість даних

Оцінка перераховується приблизно кожні 30 секунд, а сторінки отримують оновлення без перезавантаження. Якщо дані оператора старіші за 45 хвилин, область позначається як «застаріло». Це не помилка карти, а попередження, що оператор давно нічого не публікував.

Чого ми не робимо

  • Не обіцяємо точності до будинку. Рівень — черга та область.
  • Не показуємо підстанції, лінії та окремі звіти людей.
  • Не вгадуємо: якщо даних немає, це видно.
  • Не замінюємо оператора. SvitloPulse — незалежний сервіс і не офіційне джерело.