ZCL demand response and load control

Zigbee Cluster Library (ZCL) demand response and load control (DRLC) cluster usage definition for ESP Zigbee SDK.

Header File

Structures

struct esp_zb_zcl_drlc_load_control_event_payload_s

ESP_ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT LoadControlEvent command payload.

Public Members

uint32_t issuer_event_id

Unique identifier generated by the Energy provider. The value of this field allows matching of Event reports with a specific Demand Response and Load Control event.

uint16_t device_class

Bit encoded field representing the Device Class to apply the current Load Control Event.Each bit, if set individually or in combination, indicates the class device(s) needing to participate in the event.

uint8_t utility_enrollment_group

This field can be used in conjunction with the Device Class bits for providing a mechanism to direct Load Control Events to groups of Devices.

uint32_t start_time

UTC Timestamp representing when the event is scheduled to start. A start time of 0x00000000 is a special time denoting now.

uint16_t duration_in_minutes

Duration of this event in number of minutes. Maximum value is 1440 (one day).

uint8_t criticality_level

This field defines the level of criticality of event. The action for an event can be solely based on this value, or combination with other Load Control Event fields.

uint8_t cooling_temperature_offset

Requested offset to apply to the normal cooling setpoint at the time of the start of the event in + 0.1 Celsius.

uint8_t heating_temperature_offset

Requested offset to apply to the normal heating setpoint at the time of the start of the event in + 0.1 Celsius.

int16_t cooling_temperature_set_point

Requested cooling set point in 0.01 degrees Celsius.

int16_t heating_temperature_set_point

Requested heating set point in 0.01 degrees Celsius.

int8_t average_load_adjustment_percentage

Defines a maximum energy usage limit as a percentage of the client implementations specific average energy usage.

uint8_t duty_cycle

Defines the maximum on state duty cycle as a percentage of time.

uint8_t event_control

Identifies additional control options for the event.

struct esp_zb_zcl_drlc_cancel_load_control_event_payload_s

ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT CancelLoadControlEvent command payload.

Public Members

uint32_t issuer_event_id

Unique identifier generated by the Energy provider. The value of this field allows matching of Event reports with a specific Demand Response and Load Control event.

uint16_t device_class

Bit encoded field representing the Device Class to apply the current Load Control Event. Each bit, if set individually or in combination, indicates the class device(s) needing to participate in the event.

uint8_t utility_enrollment_group

This field can be used in conjunction with the Device Class bits for providing a mechanism to direct Load Control Events to groups of Devices.

uint8_t cancel_control

This field is used to indicate that the Event is currently in process and a cancel command is received

uint32_t effective_time

UTC Timestamp representing when the canceling of the event is scheduled to start. An effective time of 0x00000000 is a special time denoting “now.”

struct esp_zb_zcl_drlc_cancel_all_load_control_events_payload_s

ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS CancelAllLoadControlEvents command payload.

Public Members

uint8_t cancel_control

To be used when the Event is currently in process and a cancel command is received. 0x00: indicates that randomization is overridden and the event should be terminated immediately. 0x01: indicates the event should end using randomization settings in the original event. Otherwise, reserved.

struct esp_zb_zcl_drlc_report_event_status_payload_s

ESP_ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS ReportEventStatus command payload.

Public Members

uint32_t issuer_event_id

Unique identifier generated by the Energy provider. The value of this field allows matching of Event reports with a specific Demand Response and Load Control event.

uint8_t event_status

This field stores value from set of event statuses

uint32_t event_status_time

UTC Timestamp representing when the event status occurred. This field shall not use the value of 0x00000000

uint8_t criticality_level_applied

Criticality Level value applied by the device

uint16_t cooling_temperature_set_point_applied

Defines Cooling Temperature Set Point value applied by the device. The value 0x8000 means that this field has not been used by the end device.

uint16_t heating_temperature_set_point_applied

Defines Heating Temperature Set Point value applied by the device. The value 0x8000 means that this field has not been used by the end device.

int8_t average_load_adjustment_percentage_applied

Defines Average Load Adjustment Percentage value applied by the device. The value 0x80 means that this field has not been used by the end device.

uint8_t duty_cycle_applied

Defines the maximum on state duty cycle applied by the device. The value 0xFF means that this field has not been used by the end device.

uint8_t event_control

Identifies additional control options for the event.

uint8_t signature_type

This field is used to enumerate the type of algorithm use to create the signature.

uint8_t signature[42]

A non-repudiation signature created by using the Matyas-Meyer-Oseas hash function used in conjunction with ECDSA.

struct esp_zb_zcl_drlc_get_scheduled_events_payload_s

ESP_ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS GetScheduledEvents command payload.

Public Members

uint32_t start_time

UTC Timestamp representing the minimum Start Time of events that shall be matched and sent by the Server. A Start Time of 0x00000000 has no special meaning.

uint8_t number_of_events

Represents the maximum number of events to be sent. A value of 0 indicates no maximum limit.

uint32_t issuer_event_id

Represents the minimum Issuer Event ID of events to be matched and sent by the server with the same Start Time as the Get Scheduled Events command. A value of 0xFFFFFFFF indicates this field will not be used.

Macros

ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_DEFAULT_VALUE

The default value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute.

ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_MIN_VALUE

The minimum value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute.

ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP_MAX_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP attribute.

ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_DEFAULT_VALUE

The default value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_MIN_VALUE

The minimum value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES_MAX_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_DEFAULT_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_MIN_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES_MAX_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES attribute.

ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_DEFAULT_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute.

ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_MIN_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute.

ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE_MAX_VALUE

The maximum value of ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE attribute.

Type Definitions

typedef enum esp_zb_zcl_drlc_cli_attr_e esp_zb_zcl_drlc_cli_attr_t

Demand response and load control client attribute enumeration.

typedef enum esp_zb_zcl_drlc_device_class_e esp_zb_zcl_drlc_device_class_t

DRLC device classes enumeration.

typedef enum esp_zb_zcl_drlc_criticality_levels_e esp_zb_zcl_drlc_criticality_levels_t

DRLC Criticality Level value applied by the device.

typedef enum esp_zb_zcl_drlc_srv_cmd_e esp_zb_zcl_drlc_srv_cmd_t

Commands are generated by DRLC Server.

typedef enum esp_zb_zcl_drlc_cli_cmd_e esp_zb_zcl_drlc_cli_cmd_t

Commands are generated by DRLC Client.

typedef struct esp_zb_zcl_drlc_load_control_event_payload_s esp_zb_zcl_drlc_load_control_event_payload_t

ESP_ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT LoadControlEvent command payload.

typedef struct esp_zb_zcl_drlc_cancel_load_control_event_payload_s esp_zb_zcl_drlc_cancel_load_control_event_payload_t

ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT CancelLoadControlEvent command payload.

typedef struct esp_zb_zcl_drlc_cancel_all_load_control_events_payload_s esp_zb_zcl_drlc_cancel_all_load_control_events_payload_t

ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS CancelAllLoadControlEvents command payload.

typedef struct esp_zb_zcl_drlc_report_event_status_payload_s esp_zb_zcl_drlc_report_event_status_payload_t

ESP_ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS ReportEventStatus command payload.

typedef struct esp_zb_zcl_drlc_get_scheduled_events_payload_s esp_zb_zcl_drlc_get_scheduled_events_payload_t

ESP_ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS GetScheduledEvents command payload.

Enumerations

enum esp_zb_zcl_drlc_cli_attr_e

Demand response and load control client attribute enumeration.

Values:

enumerator ESP_ZB_ZCL_ATTR_DRLC_UTILITY_ENROLLMENT_GROUP

UtilityEnrollmentGroup attribute. Provides for utilities to assign devices to groups.

enumerator ESP_ZB_ZCL_ATTR_DRLC_START_RANDOMIZATION_MINUTES

StartRandomizationMinutes attribute. Represents the maximum number of minutes to be used when randomizing the start of an event.

enumerator ESP_ZB_ZCL_ATTR_DRLC_DURATION_RANDOMIZATION_MINUTES

DurationRandomizationMinutes attribute. Represents the maximum number of minutes to be used when randomizing the duration of an event.

enumerator ESP_ZB_ZCL_ATTR_DRLC_DEVICE_CLASS_VALUE

DeviceClassValue attribute. Identifies which bits the device will match in the Device Class fields.

enum esp_zb_zcl_drlc_device_class_e

DRLC device classes enumeration.

Values:

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_HVAC

HVAC Compressor or Furnace

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_STRIP_HEATER

Strip Heaters/Baseboard Heaters

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_WATER_HEATER

Water Heater

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_POOL_PUMP

Pool Pump/Spa/Jacuzzi

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_SMART_APPLIANCE

Smart Appliances

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_IRRIGATION_PUMP

Irrigation Pump

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_MCI_LOADS

Managed Commercial & Industrial (C&I) loads

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_SIMPLE_LOADS

Simple misc. (Residential On/Off) loads

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_EXTERIOR_LIGHTNING

Exterior Lighting

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_INTERIOR_LIGHTNING

Interior Lighting

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_ELECTRIC_VEHICLE

Electric Vehicle

enumerator ESP_ZB_ZCL_DRLC_DEVICE_CLASS_GENERATION_SYSTEMS

Generation Systems

enum esp_zb_zcl_drlc_criticality_levels_e

DRLC Criticality Level value applied by the device.

Values:

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_0

Reserved

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_GREEN

Green

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_1

Level 1

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_2

Level 2

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_3

Level 3

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_4

Level 4

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_LEVEL_5

Level 5

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_EMERGENCY

Emergency

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_PLANNED_OUTAGE

Planned Outage

enumerator ESP_ZB_ZCL_DRLC_CRITICALITY_SERVICE_DISCONNECT

Service Disconnect

enum esp_zb_zcl_drlc_srv_cmd_e

Commands are generated by DRLC Server.

Values:

enumerator ESP_ZB_ZCL_DRLC_SRV_CMD_LOAD_CONTROL_EVENT

LoadControlEvent is generated when the ESI wants to control one or more load control devices usually as the result of an energy curtailment command from the Smart Energy Network.

See also

esp_zb_zcl_drlc_load_control_event_payload_t

enumerator ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_LOAD_CONTROL_EVENT

CancelLoadControlEvent is generated when the ESI wants to cancel previously scheduled control of one or more load control devices, usually as the result of an energy curtailment command from the Smart Energy network

See also

esp_zb_zcl_drlc_cancel_load_control_event_payload_t

enumerator ESP_ZB_ZCL_DRLC_SRV_CMD_CANCEL_ALL_LOAD_CONTROL_EVENTS

Cancel AllLoadControlEvents is generated when the ESI wants to cancel all events for control device(s)

enum esp_zb_zcl_drlc_cli_cmd_e

Commands are generated by DRLC Client.

Values:

enumerator ESP_ZB_ZCL_DRLC_CLI_CMD_REPORT_EVENT_STATUS

ReportEventStatus is generated when the client device detects a change of state for an active LoadControl event.

See also

esp_zb_zcl_drlc_report_event_status_payload_t

enumerator ESP_ZB_ZCL_DRLC_CLI_CMD_GET_SCHEDULED_EVENTS

GetScheduledEvents is generated when the client device wishes to verify the available LoadControl events.

See also

esp_zb_zcl_drlc_get_scheduled_events_payload_t