Green Power Server#

API and Callbacks for the Green Power Cluster Server Component.

A component implementing the server-side functionality of the Green Power cluster.

Modules#

sl_zigbee_af_green_power_server_commissioning_state_t

sli_zigbee_gp_device_id_and_command_map_t

sli_zigbee_gp_device_id_and_cluster_map_t

sli_zigbee_zigbee_cluster_t

sli_zigbee_gp_comm_data_saved_t

Green Power Server

API#

Get a GPD commissioning instance in a multiple GPD commissioning session.

void

Delete a GPD commissioning instance in a multiple GPD commissioning session.

void

Extend the commissioning window of a commissioning session.

sl_zigbee_af_green_power_server_derive_shared_key_from_sink_attribute(uint8_t *gpsSecurityKeyTypeAtrribute, sl_zigbee_key_data_t *gpSharedKeyAttribute, sl_zigbee_gp_address_t *gpdAddr)

Derive the shared key from the sink attributes.

void
sl_zigbee_af_green_power_server_remove_sink_entry(sl_zigbee_gp_address_t *gpdAddr)

Clears the entry for a GPD in sink table.

Enumerations#

enum
GREEN_POWER_SERVER_GPS_NODE_STATE_NOT_IN_NETWORK
GREEN_POWER_SERVER_GPS_NODE_STATE_IN_NETWORK
}
enum
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_REMOVE_GPD
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_ADD_GPD
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_UNKNOWN
}
enum
GP_SINK_COMM_STATE_IDLE
GP_SINK_COMM_STATE_COLLECT_REPORTS
GP_SINK_COMM_STATE_SEND_COMM_REPLY
GP_SINK_COMM_STATE_WAIT_FOR_SUCCESS
GP_SINK_COMM_STATE_FINALISE_PAIRING
GP_SINK_COMM_STATE_PAIRING_DONE
}
enum
COMMISSIONING_TIMEOUT_TYPE_GENERIC_SWITCH = 0
COMMISSIONING_TIMEOUT_TYPE_MULTI_SENSOR = 1
COMMISSIONING_TIMEOUT_TYPE_COMMISSIONING_WINDOW_TIMEOUT = 2
}
enum
SINK_PAIRING_STATUS_SUCCESS = 0
SINK_PAIRING_STATUS_FAILURE = 1
SINK_PAIRING_STATUS_IN_PROGRESS = 2
SINK_PAIRING_STATUS_FAIL_NO_MATCHING_FUNCTIONALITY = 3
SINK_PAIRING_STATUS_FAIL_ADDING_TRANSLATION = 4
SINK_PAIRING_STATUS_FAIL_NO_SPACE_IN_SINK_TABLE = 5
SINK_PAIRING_STATUS_FAIL_ENTRY_CORRUPTED = 6
}
enum
GP_PRE_SINK_PAIRING_CALLBACK_SOURCE_UNKNOWN = 0
GP_PRE_SINK_PAIRING_CALLBACK_COMMISSONING_FINALIZE = 1
GP_PRE_SINK_PAIRING_CALLBACK_PAIRING_CONFIGURATION = 2
}

Macros#

#define
SL_ZIGBEE_AF_GREEN_POWER_GP_SHARED_KEY 0
#define
SL_ZIGBEE_AF_GREEN_POWER_GP_INDIVIDUAL_KEY 1
#define
GREEN_POWER_SERVER_GPS_SECURITY_LEVEL_ATTRIBUTE_FIELD_INVOLVE_TC 0x08
#define
GP_DEVICE_ANNOUNCE_SIZE 12
#define
SIZE_OF_REPORT_STORAGE 82
#define
COMM_REPLY_PAYLOAD_SIZE 30
#define
GP_SINK_TABLE_RESPONSE_ENTRIES_OFFSET (3)
#define
SL_ZIGBEE_AF_ZCL_CLUSTER_GP_GPS_COMMISSIONING_WINDOWS_DEFAULT_TIME_S (180)
#define
GP_ADDR_SRC_ID_WILDCARD (0xFFFFFFFF)
#define
GPS_ATTRIBUTE_KEY_TYPE_MASK (0x07)
#define
GP_PAIRING_CONFIGURATION_FIXED_FLAG (0x230)
#define
GREEN_POWER_SERVER_MIN_REPORT_LENGTH (10)
#define
FIX_SHIFT_REPORTING_DATA_POSITION_CONVERT_TO_PAYLOAD_INDEX (3)
#define
CAR_DATA_POINT_OFFSET 1
#define
GP_DEFAULT_LINK_KEY { 0x5A, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6C, 0x6C, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x30, 0x39 }
#define
genericSwitchCommissioningTimeout (&sl_zigbee_af_green_power_server_generic_switch_commissioning_timeout_event)
#define
multiSensorCommissioningTimeout (&sl_zigbee_af_green_power_server_multi_sensor_commissioning_timeout_event)
#define
commissioningWindowTimeout (&sl_zigbee_af_green_power_server_commissioning_window_timeout_event)

API Documentation#

sl_zigbee_af_green_power_server_find_commissioning_gpd_instance#

sl_zigbee_commissioning_gpd_t * sl_zigbee_af_green_power_server_find_commissioning_gpd_instance (sl_zigbee_gp_address_t * gpdAddr)

Get a GPD commissioning instance in a multiple GPD commissioning session.

Parameters
TypeDirectionArgument NameDescription
sl_zigbee_gp_address_t *N/AgpdAddr

GPD address Ver.: always

The green power server can be configured to allow multiple GPDs to commission within a commissioning session. Given a GPD instance address, this function will find the currently-commissioning GPD instance. This is a helpful indicator of the commissioning progress of a given GPD when multi GPDS are commissioning in a commissioning window.

Returns


sl_zigbee_af_green_power_server_delete_commissioning_gpd_instance#

void sl_zigbee_af_green_power_server_delete_commissioning_gpd_instance (sl_zigbee_gp_address_t * gpdAddr)

Delete a GPD commissioning instance in a multiple GPD commissioning session.

Parameters
TypeDirectionArgument NameDescription
sl_zigbee_gp_address_t *N/AgpdAddr

GPD address Ver.: always

The green power server can be configured to allow multiple GPDs to commission within a commissioning session. Given a GPD instance address, this function will find and delete the currently-commissioning GPD instance. This is a helpful way to remove unwanted GPD instances in a multiple GPD commissioning session.


sl_zigbee_af_green_power_cluster_gp_sink_commissioning_window_extend#

void sl_zigbee_af_green_power_cluster_gp_sink_commissioning_window_extend (uint16_t commissioningWindow)

Extend the commissioning window of a commissioning session.

Parameters
TypeDirectionArgument NameDescription
uint16_tN/AcommissioningWindow

Commissioning window to be extended from this point in time in seconds Ver.: always

This is a helper function that sends out a proxy commissioning mode from the server side to all proxies in the network. It internally uses the same parameters used previously in the proxy commissioning mode with action = enter.


sl_zigbee_af_green_power_cluster_get_server_commissioning_sate#

sl_zigbee_af_green_power_server_commissioning_state_t * sl_zigbee_af_green_power_cluster_get_server_commissioning_sate (void )

Get the commissioning state of the green power server.

Parameters
TypeDirectionArgument NameDescription
voidN/A

This function gets the commissioning state of the green power server.

Returns


sl_zigbee_af_green_power_server_derive_shared_key_from_sink_attribute#

sl_zigbee_af_status_t sl_zigbee_af_green_power_server_derive_shared_key_from_sink_attribute (uint8_t * gpsSecurityKeyTypeAtrribute, sl_zigbee_key_data_t * gpSharedKeyAttribute, sl_zigbee_gp_address_t * gpdAddr)

Derive the shared key from the sink attributes.

Parameters
TypeDirectionArgument NameDescription
uint8_t *N/AgpsSecurityKeyTypeAtrribute

Security key type attribute as input

sl_zigbee_key_data_t *N/AgpSharedKeyAttribute

Security key attribute as output

sl_zigbee_gp_address_t *N/AgpdAddr

GPD address

This function derives the shared key used in green power server side using the respective security attribute values.

Returns

  • Status of the key derivation Ver.: always


sl_zigbee_af_green_power_server_remove_sink_entry#

void sl_zigbee_af_green_power_server_remove_sink_entry (sl_zigbee_gp_address_t * gpdAddr)

Clears the entry for a GPD in sink table.

Parameters
TypeDirectionArgument NameDescription
sl_zigbee_gp_address_t *N/AgpdAddr

GPD address Ver.: always

This function clears the entries in the sink table for a given gpd. In a sink table, there is unique entry for each GPD based on its addressing. When the GPD addressing uses application id=0b000 with 32 bit sourceId, there is just one entry for each GPD. But, when the GPD addressing with application Id=0b010 that is EUI64 with endpoint id, for each unique endpoint, there can be an entry in sink table. Hence, when this function is called with application Id=0b010,EUI64 with endpoint id=0xff(all endpoints), it clears all the entry for that GPD with supplied EUI64. With clear up the gpd from sink table it also clears the translation table for that GPD.


Enumeration Documentation#

GreenPowerServerGPSNodeState#

GreenPowerServerGPSNodeState
Enumerator
GREEN_POWER_SERVER_GPS_NODE_STATE_NOT_IN_NETWORK
GREEN_POWER_SERVER_GPS_NODE_STATE_IN_NETWORK

GreenPowerServerSinkTableAccessType#

GreenPowerServerSinkTableAccessType
Enumerator
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_REMOVE_GPD
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_ADD_GPD
GREEN_POWER_SERVER_SINK_TABLE_ACCESS_TYPE_UNKNOWN

GPSinkCommState#

GPSinkCommState
Enumerator
GP_SINK_COMM_STATE_IDLE
GP_SINK_COMM_STATE_COLLECT_REPORTS
GP_SINK_COMM_STATE_SEND_COMM_REPLY
GP_SINK_COMM_STATE_WAIT_FOR_SUCCESS
GP_SINK_COMM_STATE_FINALISE_PAIRING
GP_SINK_COMM_STATE_PAIRING_DONE

CommissioningTimeoutType#

CommissioningTimeoutType
Enumerator
COMMISSIONING_TIMEOUT_TYPE_GENERIC_SWITCH
COMMISSIONING_TIMEOUT_TYPE_MULTI_SENSOR
COMMISSIONING_TIMEOUT_TYPE_COMMISSIONING_WINDOW_TIMEOUT

PairingStatus#

PairingStatus
Enumerator
SINK_PAIRING_STATUS_SUCCESS
SINK_PAIRING_STATUS_FAILURE
SINK_PAIRING_STATUS_IN_PROGRESS
SINK_PAIRING_STATUS_FAIL_NO_MATCHING_FUNCTIONALITY
SINK_PAIRING_STATUS_FAIL_ADDING_TRANSLATION
SINK_PAIRING_STATUS_FAIL_NO_SPACE_IN_SINK_TABLE
SINK_PAIRING_STATUS_FAIL_ENTRY_CORRUPTED

PreSinkPairingCallbackSource#

PreSinkPairingCallbackSource
Enumerator
GP_PRE_SINK_PAIRING_CALLBACK_SOURCE_UNKNOWN
GP_PRE_SINK_PAIRING_CALLBACK_COMMISSONING_FINALIZE
GP_PRE_SINK_PAIRING_CALLBACK_PAIRING_CONFIGURATION

Typedef Documentation#

sli_zigbee_gps_network_state_t#

typedef uint8_t sli_zigbee_gps_network_state_t

sl_zigbee_af_gp_server_sink_table_access_type_t#

typedef uint8_t sl_zigbee_af_gp_server_sink_table_access_type_t

sl_zigbee_sink_commission_state_t#

typedef uint8_t sl_zigbee_sink_commission_state_t

sl_zigbee_sink_commissioning_timeout_type_t#

typedef uint8_t sl_zigbee_sink_commissioning_timeout_type_t

sl_zigbee_sink_pairing_status_t#

typedef uint8_t sl_zigbee_sink_pairing_status_t

sl_zigbee_pre_sink_pairing_callback_source_t#

typedef uint8_t sl_zigbee_pre_sink_pairing_callback_source_t

sl_zigbee_commissioning_gpd_t#

typedef sli_zigbee_gp_comm_data_saved_t sl_zigbee_commissioning_gpd_t

Variable Documentation#

sl_zigbee_af_green_power_server_generic_switch_commissioning_timeout_event#

sl_zigbee_af_event_t sl_zigbee_af_green_power_server_generic_switch_commissioning_timeout_event

sl_zigbee_af_green_power_server_multi_sensor_commissioning_timeout_event#

sl_zigbee_af_event_t sl_zigbee_af_green_power_server_multi_sensor_commissioning_timeout_event

sl_zigbee_af_green_power_server_commissioning_window_timeout_event#

sl_zigbee_af_event_t sl_zigbee_af_green_power_server_commissioning_window_timeout_event

Function Documentation#

sl_zigbee_af_green_power_server_generic_switch_commissioning_timeout_event_handler#

void sl_zigbee_af_green_power_server_generic_switch_commissioning_timeout_event_handler (sl_zigbee_af_event_t * event)
Parameters
TypeDirectionArgument NameDescription
sl_zigbee_af_event_t *N/Aevent

sl_zigbee_af_green_power_server_multi_sensor_commissioning_timeout_event_handler#

void sl_zigbee_af_green_power_server_multi_sensor_commissioning_timeout_event_handler (sl_zigbee_af_event_t * event)
Parameters
TypeDirectionArgument NameDescription
sl_zigbee_af_event_t *N/Aevent

sl_zigbee_af_green_power_server_commissioning_window_timeout_event_handler#

void sl_zigbee_af_green_power_server_commissioning_window_timeout_event_handler (sl_zigbee_af_event_t * event)
Parameters
TypeDirectionArgument NameDescription
sl_zigbee_af_event_t *N/Aevent