Skip to content

Monitor of power outages accros multiple regions in Ukraine

Notifications You must be signed in to change notification settings

chaichuk/UA-power-outages-monitor

Repository files navigation

🇺🇦 Power Outages Monitor (Data Aggregator)

Цей проєкт є агрегатором даних про графіки відключень електроенергії в Україні. Він збирає дані з різних джерел (сайти DTEK, API YASNO, офіційні JSON від обленерго) та нормалізує їх у єдиний формат для подальшого використання (наприклад, у Cloudflare Workers).

🌍 Підтримувані Регіони та Джерела

Скрипт збирає дані для 15 областей та 2 міст:

🏢 DTEK (Офіційний сайт)

  • Київська область
  • Одеська область
  • Дніпропетровська область

💡 YASNO (API)

  • м. Київ
  • м. Дніпро (ДнЕМ)
  • м. Дніпро (ЦЕК)

📂 GitHub / Обленерго (JSON)

  • Львівська область
  • Полтавська область
  • Черкаська область
  • Чернігівська область
  • Харківська область
  • Хмельницька область
  • Івано-Франківська область
  • Рівненська область
  • Тернопільська область
  • Закарпатська область
  • Запорізька область
  • Житомирська область

🛠 Як це працює

  1. Scraping: Скрипт (src/monitor.js) запускається (локально або через GitHub Actions).
  2. Data Collection:
    • Використовує Playwright для парсингу сайтів DTEK (обхід захисту, перевірка Emergency режимів).
    • Використовує fetch для отримання даних від Yasno та JSON-файлів обленерго.
  3. Normalization: Всі дані приводяться до єдиного формату ("Svitlo Format").
  4. Aggregation: Дані об'єднуються в один JSON-пакет.
  5. Distribution: Підсумковий JSON відправляється на налаштований Cloudflare Worker.

🚀 Запуск та Налаштування

Вимоги

  • Node.js (v22+)
  • npm

Встановлення

npm install
npx playwright install chromium

Налаштування (.env)

Створіть файл .env із наступними змінними:

# Для парсингу DTEK (адреси для перевірки графіків)
# (Можна залишити порожнім, якщо не використовуєте DTEK регіони)
CITY_KYIV=Київ
STREET_KYIV=Хрещатик
HOUSE_KYIV=1

CITY_ODESA=Одеса
STREET_ODESA=Дерибасівська
HOUSE_ODESA=1

CITY_DNIPRO=Дніпро
STREET_DNIPRO=Яворницького
HOUSE_DNIPRO=1

# Cloudflare Worker (куди відправляти результат)
CF_WORKER_URL=https://your-worker.workers.dev
CF_WORKER_TOKEN=your-upload-token

Запуск

# Разовий запуск
npm start

# Режим розробки (watch)
npm run watch

📜 Ліцензія

MIT

About

Monitor of power outages accros multiple regions in Ukraine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •