loadshedding#
Real-time Eskom loadshedding status tracking with multi-source consensus, history tracking, and recovery period monitoring.
Models#
No Django ORM models. Uses Pydantic validation models:
Pydantic Model |
Description |
|---|---|
|
Top-level container for all loadshedding data |
|
Consensus status derived from multiple sources |
|
Per-source status (Eskom, SePush, Cape Town Gov) |
|
Daily loadshedding summary (hours, stages) |
|
Monthly aggregated history |
|
Stage transition event record |
URL Routes#
Path |
View |
Description |
|---|---|---|
|
|
JSON API with cache control + CORS |
|
|
Current stage, schedule, recovery context |
|
|
Johannesburg, Durban, Pretoria, PE |
Management Commands#
Command |
Description |
|---|---|
|
Async multi-source fetch: Eskom GetStatus, EskomSePush API, Cape Town Gov (browser scrape) |
Multi-Source Consensus#
Key Design Decisions#
Multi-source consensus prevents outages from any single API. The derived status cross-references three independent sources.
Pydantic models (not Django ORM) — loadshedding data is validated and serialised as JSON, not stored in PostgreSQL.
Recovery period tracking monitors when loadshedding ends and tracks the transition back to normal supply.