Data Event Formats - Turbines
Summary
CWMS needs a message structure to notify clients of turbine-related events.
Opinions
Opinion 1
Summary: Use the structures described below for turbine-related events.
All messages will be published to the appropriate REALTIME_OPS topic. Subscribers can set up appropriate filters to receive the desired messages.
Author: Mike Perryman
Turbines
All values are required for TurbineCreated, TurbineUpdated, and TurbineDeleted messages.
TurbineCreated Message Structure
Message Type |
Structure |
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TurbineCreated |
|
Example TurbineCreated Message
{
"type": "turbine_created",
"turbine_id": {
"office_id": "SWT",
"name": "Greenbrier-T1"
},
"project_id": "Greenbrier"
}
TurbineUpdated Message Structure
Message Type |
Structure |
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TurbineUpdated |
|
Example TurbineUpdated Message
{
"type": "turbine_updated",
"turbine_id": {
"office_id": "SWT",
"name": "Greenbrier-T1"
},
"project_id": "Greenbrier"
}
TurbineDeleted Message Structure
Message Type |
Structure |
|||||||||
|---|---|---|---|---|---|---|---|---|---|---|
TurbineDeleted |
|
Example TurbineDeleted Message
{
"type": "turbine_deleted",
"office_id": "SWT",
"turbine_id": "Greenbrier-T1"
}
Turbine Changes
TurbineChangeCreated and TurbineChangeUpdated messages contain arrays of turbine settings for each turbine in the project. Each setting in the array has the following structure, with only “turbine_id”, “new_discharge”, and “discharge_unit” values required.
Turbine Setting Structure
Value Type
Value Name
Value
String
“turbine_id”
The turbine identifier (without office_id)
double
“old_discharge”
The discharge prior to the new turbine setting
double
“new_discharge”
The discharge after the new turbine setting
String
“discharge_unit”
The unit of discharges
double
“real_power”
The real power generation for the new turbine setting
double
“scheduled_load”
The scheduled load for the new turbine setting
String
“power_unit”
The unit of power generation and load
Only values necessary to uniquely identify a turbine change (“type”, “project_id”, “date_time”) and values necessary to minimally describe a turbine change (“pool_elevation”, “discharge_method”, and “release_reason”) are required for TurbineChangeCreated and TurbineChangeUpdated messages.
TurbineChangeCreated Message Structure
Message Type |
Structure |
|||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TurbineChangeCreated |
|
Example TurbineChangeCreated Message
{
"type": "turbine_change_created",
"project_id": {
"office_id": "SWT",
"name": "Greenbrier"
},
"date_time": 1788971820000,
"pool_elevation": 912.54,
"tailwater_elevation": 860.4,
"elevation_unit": "ft",
"old_total_discharge_override": 4250.0,
"new_total_discharge_override": 6525.0,
"discharge_unit": "cfs",
"discharge_method": "Calculated from turbine load-nethead curves",
"release_reason": "Scheduled release to meet loads",
"protected": false,
"notes": "Scheduled power increase",
"settings": [
{
"turbine_id": "Greenbrier-T1",
"old_discharge": 1200.0,
"new_discharge": 1400.0,
"discharge_unit": "cfs",
"real_power": 12.5,
"scheduled_load": 15.0,
"power_unit": "MW"
},
{
"turbine_id": "Greenbrier-T2",
"old_discharge": 1300.0,
"new_discharge": 1500.0,
"discharge_unit": "cfs",
"real_power": 13.5,
"scheduled_load": 16.0,
"power_unit": "MW"
}
]
}
TurbineChangeUpdated Message Structure
Message Type |
Structure |
||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TurbineChangeUpdated |
|
Example TurbineChangeUpdated Message
{
"type": "turbine_change_updated",
"project_id": {
"office_id": "SWT",
"name": "Greenbrier"
},
"date_time": 1788971820000,
"pool_elevation": 912.54,
"tailwater_elevation": 860.4,
"elevation_unit": "ft",
"old_total_discharge_override": 4250.0,
"new_total_discharge_override": 6525.0,
"discharge_unit": "cfs",
"discharge_method": "Calculated from turbine load-nethead curves",
"release_reason": "Scheduled release to meet loads",
"protected": false,
"notes": "Scheduled power increase.",
"settings": [
{
"turbine_id": "Greenbrier-T1",
"old_discharge": 1200.0,
"new_discharge": 1400.0,
"discharge_unit": "cfs",
"real_power": 12.5,
"scheduled_load": 15.0,
"power_unit": "MW"
},
{
"turbine_id": "Greenbrier-T2",
"old_discharge": 1300.0,
"new_discharge": 1500.0,
"discharge_unit": "cfs",
"real_power": 13.5,
"scheduled_load": 16.0,
"power_unit": "MW"
}
]
}
Only values necessary to uniquely identify a turbine change (“type”, “project_id”, “date_time”) are required for TurbineChangeDeleted messages.
TurbineChangeDeleted Message Structure
Message Type |
Structure |
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TurbineChangeDeleted |
|
Example TurbineChangeDeleted Message
{
"type": "turbine_change_deleted",
"project_id": {
"office_id": "SWT",
"name": "Greenbrier"
},
"date_time": 1788971820000
}
Dischrarge Methods Table
Discharge Methods |
|---|
Calculated from turbine load-nethead curves |
Calculated from tailwater curve |
Reported by powerhouse |
Adjusted by an automated method |
Release Reasons Table
Release Reasons |
|---|
Scheduled release to meet loads |
Flood control release |
Water supply release |
Water quality release |
Hydropower release |
Other release |
Decision Status
Status: request for comments