Enumerations
‘Device Class’ Enumerations
The device classes that are used in load control are enumerated in the teSE_DRLCDeviceClassFieldBitmap structure below:
typedef enum
{
E_SE_DRLC_HVAC_COMPRESSOR_OR_FURNACE_BIT = 0x00,
E_SE_DRLC_STRIP_BASEBOARD_HEATERS_BIT,
E_SE_DRLC_WATER_HEATER_BIT,
E_SE_DRLC_POOL_PUMP_SPA_JACUZZI_BIT,
E_SE_DRLC_SMART_APPLIANCES_BIT,
E_SE_DRLC_IRRIGATION_PUMP_BIT,
E_SE_DRLC_MANAGED_COMMERCIAL_AND_INDUSTRIAL_LOADS_BIT,
E_SE_DRLC_SIMPLE_MISC_LOADS_BIT,
E_SE_DRLC_EXTERIOR_LIGHTING_BIT,
E_SE_DRLC_INTERIOR_LIGHTING_BIT,
E_SE_DRLC_ELECTRIC_VEHICLE_BIT,
E_SE_DRLC_GENERATION_SYSTEMS_BIT,
E_SE_DRLC_DEVICE_CLASS_FIRST_RESERVED_BIT
} teSE_DRLCDeviceClassFieldBitmap;
The device class enumerations are listed and described in the table below.
Device Class Enumeration |
Description |
|---|---|
E_SE_DRLC_HVAC_COMPRESSOR_OR_FURNACE_BIT |
HVAC compressor or furnace |
E_SE_DRLC_STRIP_BASEBOARD_HEATERS_BIT |
Strip/baseboard heater |
E_SE_DRLC_WATER_HEATER_BIT |
Water heater |
E_SE_DRLC_POOL_PUMP_SPA_JACUZZI_BIT |
Pool/spa/jacuzzi pump |
E_SE_DRLC_SMART_APPLIANCES_BIT |
Smart appliance |
E_SE_DRLC_IRRIGATION_PUMP_BIT |
Irrigation pump |
E_SE_DRLC_MANAGED_COMMERCIAL_AND_INDUSTRIAL_LOADS_BIT |
Managed Commercial & Industrial (C&I) |
E_SE_DRLC_SIMPLE_MISC_LOADS_BIT |
Simple miscellaneous (residential on/off) |
E_SE_DRLC_EXTERIOR_LIGHTING_BIT |
Exterior lighting |
E_SE_DRLC_INTERIOR_LIGHTING_BIT |
Interior lighting |
E_SE_DRLC_ELECTRIC_VEHICLE_BIT |
Electric vehicle |
E_SE_DRLC_GENERATION_SYSTEMS_BIT |
Generation systems |
E_SE_DRLC_DEVICE_CLASS_FIRST_RESERVED_BIT |
Reserved |
Parent topic:Enumerations
‘DRLC Event’ Enumerations
The event types generated by the DRLC cluster are enumerated in the teSE_DRLCCallBackEventType structure below:
typedef enum PACK
{
E_SE_DRLC_EVENT_API =0x00,
E_SE_DRLC_EVENT_COMMAND,
E_SE_DRLC_EVENT_ACTIVE,
E_SE_DRLC_EVENT_EXPIRED,
E_SE_DRLC_EVENT_CANCELLED,
E_SE_DRLC_EVENT_ENUM_END,
} teSE_DRLCCallBackEventType;
The above event types are described in the table below.
Event Type Enumeration |
Description |
|---|---|
E_SE_DRLC_EVENT_API |
Reserved for internal use |
E_SE_DRLC_EVENT_COMMAND |
Generated when a command has been received from either the cluster server or a cluster client |
E_SE_DRLC_EVENT_ACTIVE |
Generated when an LCE has been added to the ‘Active’ list |
E_SE_DRLC_EVENT_EXPIRED |
Generated when an LCE has been removed from the ‘Active’ list |
E_SE_DRLC_EVENT_CANCELLED |
Generated when an LCE has been put in the ‘Cancelled’ list |
DRLC events are described in more detail in Section 41.7.
Parent topic:Enumerations
‘Criticality Level’ Enumerations
The criticality levels that are available for an LCE are enumerated in the teSE_DRLCCriticalityLevels structure below:
typedef enum
{
E_SE_DRLC_RESERVED_0_CRITICALITY = 0x00,
E_SE_DRLC_GREEN_CRITICALITY,
E_SE_DRLC_VOLUNTARY_1_CRITICALITY,
E_SE_DRLC_VOLUNTARY_2_CRITICALITY,
E_SE_DRLC_VOLUNTARY_3_CRITICALITY,
E_SE_DRLC_VOLUNTARY_4_CRITICALITY,
E_SE_DRLC_VOLUNTARY_5_CRITICALITY,
E_SE_DRLC_EMERGENCY_CRITICALITY,
E_SE_DRLC_PLANNED_OUTAGE_CRITICALITY,
E_SE_DRLC_SERVICE_DISCONNECT_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_1_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_2_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_3_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_4_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_5_CRITICALITY,
E_SE_DRLC_UTILITY_DEFINED_6_CRITICALITY,
E_SE_DRLC_FIRST_RESERVED_CRITICALITY
} teSE_DRLCCriticalityLevels;
The above criticality levels are described in the table below.
Criticality Level Enumeration |
Description |
|---|---|
E_SE_DRLC_RESERVED_0_CRITICALITY |
Reserved for future use |
E_SE_DRLC_GREEN_CRITICALITY |
Green: Indicates that there will be a significant contribution from non-green sources during the LCE - participation in the LCE is voluntary |
E_SE_DRLC_VOLUNTARY_1_CRITICALITY |
Voluntary 1-6: Represent increasing levels of load reduction as move through levels 1 to 6, as defined by the utility company - intended to be used in a sequence of LCEs to gradually reduce loads, where participation in the LCEs is voluntary |
E_SE_DRLC_VOLUNTARY_2_CRITICALITY |
|
E_SE_DRLC_VOLUNTARY_3_CRITICALITY |
|
E_SE_DRLC_VOLUNTARY_4_CRITICALITY |
|
E_SE_DRLC_VOLUNTARY_5_CRITICALITY |
|
E_SE_DRLC_EMERGENCY_CRITICALITY |
Emergency: Indicates that the LCE represents an emergency situation (normally demanding the termination of all non-essential loads, as defined by the utility company) - participation in the LCE is mandatory |
E_SE_DRLC_PLANNED_OUTAGE_CRITICALITY |
Planned Outage: Indicates that the LCE represents an intentional outage (normally demanding the termination of all non-essential loads, as defined by the utility company) - participation in the LCE is mandatory |
E_SE_DRLC_SERVICE_DISCONNECT_CRITICALITY |
Service Disconnect: Indicates that the LCE represents a service disconnection (normally demanding the termination of all non-essential loads, as defined by the utility company) - participation in the LCE is mandatory |
E_SE_DRLC_UTILITY_DEFINED_1_CRITICALITY |
Utility-defined 1-6: Criticality levels completely defined by the utility company - participation in the LCE is voluntary |
E_SE_DRLC_UTILITY_DEFINED_2_CRITICALITY |
|
E_SE_DRLC_UTILITY_DEFINED_3_CRITICALITY |
|
E_SE_DRLC_UTILITY_DEFINED_4_CRITICALITY |
|
E_SE_DRLC_UTILITY_DEFINED_5_CRITICALITY |
|
E_SE_DRLC_UTILITY_DEFINED_6_CRITICALITY |
|
E_SE_DRLC_FIRST_RESERVED_CRITICALITY |
Reserved for future use |
Parent topic:Enumerations
‘LCE Cancellation’ Enumerations
The cancelation options (immediate or randomized) that are available for an LCE are enumerated in the teSE_DRLCCancelControl structure below:
typedef enum PACK
{
E_SE_DRLC_CANCEL_CONTROL_IMMEDIATE =0x00,
E_SE_DRLC_CANCEL_CONTROL_USE_RANDOMISATION =0x10
} teSE_DRLCCancelControl;
The above options are described in the table below.
LCE Cancellation Enumeration |
Description |
|---|---|
E_SE_DRLC_CANCEL_CONTROL_IMMEDIATE |
LCE is cancelled immediately by moving it directly to the ‘Deallocated’ list - a randomized end-time configured in the LCE is ignored |
E_SE_DRLC_CANCEL_CONTROL_USE_RANDOMISATION |
A random delay will be applied to the LCE cancellation, if a randomised end-time was configured in the LCE - the LCE is moved to the ‘Cancelled’ list where it will stay (and remain valid) until the random delay has expired, when it will be moved to the ‘Deallocated’ list (an upper limit on the delay is defined in the cluster - see Section41.2) |
Parent topic:Enumerations
‘LCE Participation’ Enumerations
The options to participate or not participate in an LCE are enumerated in the teSE_DRLCUserEventOption structure below:
typedef enum PACK
{
E_SE_DRLC_EVENT_USER_OPT_IN =0x00,
E_SE_DRLC_EVENT_USER_OPT_OUT
} teSE_DRLCUserEventOption;
The above options are described in the table below.
LCE Participation Enumeration |
Description |
|---|---|
E_SE_DRLC_EVENT_USER_OPT_OUT |
User has opted not to participate in the LCE. The device sends this message and does not adjust the load when the LCE becomes active. |
E_SE_DRLC_EVENT_USER_OPT_IN |
User has opted to participate in the LCE. The device only sends this message following an OPT_OUT (when the user has changed their mind and decided to participate after all) |
Parent topic:Enumerations
‘LCE Data Modification’ Enumerations
The load control data items that can be locally modified in an LCE are enumerated in the teSE_DRLCUserEventSet structure below:
typedef enum PACK
{
E_SE_DRLC_CRITICALITY_LEVEL_APPLIED =0x00,
E_SE_DRLC_COOLING_TEMPERATURE_SET_POINT_APPLIED,
E_SE_DRLC_HEATING_TEMPERATURE_SET_POINT_APPLIED,
E_SE_DRLC_AVERAGE_LOAD_ADJUSTMENT_PERCENTAGE_APPLIED,
E_SE_DRLC_DUTY_CYCLE_APPLIED,
E_SE_DRLC_USER_EVENT_ENUM_END,
} teSE_DRLCUserEventSet;
The above options are described in the table below (the data items are fully described in Section 41.11.1).
LCE Participation Enumeration |
Description |
|---|---|
E_SE_DRLC_CRITICALITY_LEVEL_APPLIED |
Specifies that ‘criticality level’ is to be modified. |
E_SE_DRLC_COOLING_TEMPERATURE_SET_POINT_APPLIED |
Specifies that ‘cooling temperature set-point’ is to be modified |
E_SE_DRLC_HEATING_TEMPERATURE_SET_POINT_APPLIED |
Specifies that ‘heating temperature set-point’ is to be modified |
E_SE_DRLC_AVERAGE_LOAD_ADJUSTMENT_PERCENTAGE_APPLIED |
Specifies that ‘average load adjustment percentage’ is to be modified |
E_SE_DRLC_DUTY_CYCLE_APPLIED |
Specifies that ‘duty cycle’ is to be modified |
Parent topic:Enumerations
‘LCE List’ Enumerations
The LCE lists are enumerated in the teSE_DRLCEventList structure below:
typedef enum PACK
{
E_SE_DRLC_EVENT_LIST_SCHEDULED =0x00,
E_SE_DRLC_EVENT_LIST_ACTIVE,
E_SE_DRLC_EVENT_LIST_CANCELLED,
E_SE_DRLC_EVENT_LIST_DEALLOCATED,
E_SE_DRLC_EVENT_LIST_NONE
} teSE_DRLCEventList;
The above lists are described in the table below.
LCE List Enumeration |
Description |
|---|---|
E_SE_DRLC_EVENT_LIST_SCHEDULED |
Scheduled list: Contains LCEs that are due to be executed in the future |
E_SE_DRLC_EVENT_LIST_ACTIVE |
Active list: Contains LCEs that are currently being executed |
E_SE_DRLC_EVENT_LIST_CANCELLED |
Cancelled list: Contains LCEs that have been cancelled with a randomized end-time and whose random end-time has not yet been reached |
E_SE_DRLC_EVENT_LIST_DEALLOCATED |
Deallocated list: Contains expired LCEs and therefore a record of the free storage for LCEs |
Parent topic:Enumerations
‘LCE Status’ Enumerations
LCE status is enumerated in the teSE_DRLCEventStatus structure below:
typedef enum PACK
{
E_SE_DRLC_LOAD_CONTROL_EVENT_COMMAND_RECIEVED =0x01,
E_SE_DRLC_EVENT_STARTED,
E_SE_DRLC_EVENT_COMPLETED,
E_SE_DRLC_USER_CHOSEN_OPT_OUT,
E_SE_DRLC_USER_CHOSEN_OPT_IN,
E_SE_DRLC_EVENT_HAS_BEEN_CANCELLED,
E_SE_DRLC_EVENT_HAS_BEEN_SUPERSEDED,
E_SE_DRLC_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_OUT,
E_SE_DRLC_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_IN,
E_SE_DRLC_EVENT_COMPLETED_NO_USER_PARTICIPATION,
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_DEFAULT =0xF8,
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_INVALID_EFFECTIVE_TIME,
E_SE_DRLC_REJECTED_EVENT_RECEIVED_AFTER_IT_HAD_EXPIRED =0xFB,
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_UNDEFINED_EVENT=0xFD,
E_SE_DRLC_LOAD_CONTROL_EVENT_COMMAND_REJECTED,
E_SE_DRLC_EVENT_STATUS_ENUM_END
} teSE_DRLCEventStatus;
The above enumerations are described in the table below.
Enumeration |
Description |
|---|---|
E_SE_DRLC_LOAD_CONTROL_EVENT_COM-MAND_RECEIVED |
LCE command received (to add new LCE to local lists) |
E_SE_DRLC_EVENT_STARTED |
LCE has started |
E_SE_DRLC_EVENT_COMPLETED |
LCE has completed |
E_SE_DRLC_USER_CHOSEN_OPT_OUT |
Client has opted out of the LCE |
E_SE_DRLC_USER_CHOSEN_OPT_IN |
Client has opted into the LCE |
E_SE_DRLC_EVENT_HAS_BEEN_CANCELLED |
LCE has been cancelled |
E_SE_DRLC_EVENT_HAS_BEEN_SUPERSEDED |
LCE has been replaced with another LCE |
E_SE_DRLC_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_OUT |
LCE has prematurely completed due to a client opt-out during the LCE |
E_SE_DRLC_EVENT_PARTIALLY_COMPLETED_WITH_USER_OPT_IN |
LCE has completed but was only partially executed due to a client opt-in during the LCE |
E_SE_DRLC_EVENT_COMPLETED_NO_USER_PARTICIPATION |
LCE has completed but there was no client participation (due to a client opt-out from the start) |
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_DEFAULT |
Received ‘cancel command’ invalid and rejected (default) |
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_INVALID_EFFECTIVE_TIME |
Received ‘cancel command’ rejected due to invalid effective time (start-time of cancellation) |
E_SE_DRLC_REJECTED_EVENT_RECEIVED_AFTER_IT_HAD_EXPIRED |
LCE was received after it had expired (current time is greater than start-time + duration) |
E_SE_DRLC_REJECTED_INVALID_CANCEL_COMMAND_UNDEFINED_EVENT |
Received ‘cancel command’ due to undefined LCE |
E_SE_DRLC_LOAD_CONTROL_EVENT_COM-MAND_REJECTED |
LCE command rejected |
Parent topic:Enumerations
Parent topic:Demand-Response and Load Control Cluster