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