{'Guid': 'VARCHAR(64) NOT NULL PRIMARY KEY', 'Package': "VARCHAR(255) NOT NULL DEFAULT ''", 'Action': 'VARCHAR(16)', 'EskomStage': 'INT DEFAULT 0', 'CtStage': 'INT DEFAULT 0', 'NextEvent': 'VARCHAR(64)', 'GeyserState': 'VARCHAR(8)', 'PoolState': 'VARCHAR(8)', 'CreateTime': 'DATETIME DEFAULT CURRENT_TIMESTAMP', 'Module': 'VARCHAR(255)'}
{'Guid': 'VARCHAR(64) NOT NULL PRIMARY KEY', 'NationalStage': 'INT DEFAULT 0', 'StageLabel': 'VARCHAR(32)', 'StageUpdated': 'VARCHAR(64)', 'AreaId': 'VARCHAR(128)', 'AreaName': 'VARCHAR(255)', 'NextEventStart': 'VARCHAR(64)', 'NextEventEnd': 'VARCHAR(64)', 'NextEventStage': 'INT DEFAULT 0', 'EventCount': 'INT DEFAULT 0', 'EventsJson': 'JSON', 'Package': 'VARCHAR(255)', 'Module': 'VARCHAR(255)', 'CreateTime': 'DATETIME DEFAULT CURRENT_TIMESTAMP'}
INSERT INTO data_loadshedding
(Guid, NationalStage, StageLabel, StageUpdated,
AreaId, AreaName,
NextEventStart, NextEventEnd, NextEventStage,
EventCount, EventsJson,
Package, Module)
VALUES
('{guid}', {national_stage}, '{stage_label}',
'{stage_updated}',
'{area_id}', '{area_name}',
'{next_event_start}', '{next_event_end}',
{next_event_stage},
{event_count}, '{events_json}',
'{package}', 'ObjServiceLoadshedding')
SELECT * FROM data_loadshedding WHERE Package = '{package}' ORDER BY CreateTime DESC LIMIT 1
SELECT * FROM data_loadshedding WHERE Package = '{package}'
AND CreateTime BETWEEN '{start_time}' AND '{end_time}'
ORDER BY CreateTime
SELECT
DATE(CreateTime) AS ReadingDate,
MAX(NationalStage) AS MaxStage,
MIN(NationalStage) AS MinStage,
SUM(CASE WHEN NationalStage > 0 THEN 1 ELSE 0 END) AS ActiveReadings,
COUNT(*) AS TotalReadings,
MAX(EventCount) AS MaxEvents
FROM data_loadshedding WHERE Package = '{package}'
AND CreateTime BETWEEN '{start_time}' AND '{end_time}'
GROUP BY DATE(CreateTime) ORDER BY ReadingDate
SELECT Action FROM data_loadshedding_precharge WHERE Package = '{package}' ORDER BY CreateTime DESC LIMIT 1
INSERT INTO data_loadshedding_precharge
(Guid, Package, Action,
EskomStage, CtStage, NextEvent,
GeyserState, PoolState, Module)
VALUES
('{guid}', '{package}', '{action}',
{eskom_stage}, {ct_stage}, '{next_event}',
'{geyser_state}', '{pool_state}',
'ObjServiceLoadshedding')
SELECT
ls.CreateTime,
ls.NationalStage,
ls.NextEventStart,
s.PvPowerTotal,
s.BatterySoc,
s.BatteryStatus,
s.GridPowerTotal,
s.ConsumptionPowerTotal
FROM data_loadshedding ls INNER JOIN data_solar s
ON DATE(ls.CreateTime) = DATE(s.CreateTime)
AND HOUR(ls.CreateTime) = HOUR(s.CreateTime)
AND s.Package = ls.Package
WHERE ls.Package = '{package}'
AND ls.CreateTime BETWEEN '{start_time}' AND '{end_time}'
ORDER BY ls.CreateTime