Quick overview
This workflow runs every minute (or manually) to pull grid frequency readings from a telemetry API, calculate deviation and ROCOF per region, enrich anomalies with recent history, post alerts to an operator dashboard, and open incidents for Critical events.
How it works
- Runs every minute on a schedule or starts manually for testing.
- Sets API endpoints, the target region scope, nominal frequency, and deviation/ROCOF thresholds used for classification.
- Fetches recent grid frequency readings from the grid telemetry API and waits briefly to allow the telemetry batch to settle.
- Calculates each region’s frequency deviation, rolling average, and rate-of-change-of-frequency (ROCOF), then classifies severity as Normal, Watch, Warning, or Critical.
- For Watch/Warning/Critical regions, fetches the last 6 hours of stability events from the history API and builds an operator alert payload with likely cause and recommended action.
- Sends the alert to the operator dashboard API.
- Creates a grid stability incident in the incident management API only for Critical-tier alerts, otherwise ends after dashboard notification.
Setup
- Add HTTP Header Auth credentials for the grid telemetry API and history API, and update the base URLs and regionId in the configuration values.
- Add HTTP Basic Auth credentials for the operator dashboard API and incident management API, and confirm the POST endpoints accept the workflow’s JSON payloads.
- Set nominalFrequencyHz and the watch/warning/critical deviation and ROCOF thresholds to match your grid standard and runbook.
- Ensure the telemetry API returns data in the expected structure:
{ regions: [ { regionId, regionName, readings: [ { timestamp, frequencyHz }, ... ] } ] }.