Door Lock Server#

API and Callbacks for the Door Lock Cluster Server Component.

Silicon Labs implementation of the Door Lock server cluster. This is an incomplete component implementation. It does all of the mandatory and optional behavior in the Door Lock cluster needed to pass the Door Lock cluster tests. It does not store user and schedule tables in persistent memory, check user pin activation against user status or user schedule, or offer callbacks and component options to the application for further customization of functionality.

Modules#

sl_zigbee_af_plugin_door_lock_server_log_entry_t

sl_zigbee_af_plugin_door_lock_server_user_t

sl_zigbee_af_plugin_door_lock_server_weekday_schedule_entry_t

sl_zigbee_af_plugin_door_lock_server_yearday_schedule_entry_t

sl_zigbee_af_plugin_door_lock_server_holiday_schedule_entry_t

sl_zigbee_af_plugin_door_lock_server_disposable_schedule_entry_t

API#

bool
sl_zigbee_af_door_lock_server_add_log_entry(sl_zigbee_af_door_lock_event_type_t eventType, sl_zigbee_af_door_lock_event_source_t source, uint8_t eventId, uint16_t userId, uint8_t pinLength, uint8_t *pin)

Add a log entry. Returns true if the entry was added. Note that the eventId parameter should be of type sl_zigbee_af_door_lock_operation_event_code_t or sl_zigbee_af_door_lock_programming_event_code_t.

bool
sl_zigbee_af_door_lock_server_get_log_entry(uint16_t *entryId, sl_zigbee_af_plugin_door_lock_server_log_entry_t *entry)

Get a log entry associated with the entry ID. If the entry ID does not exist, the most recent entry is returned and the entryId parameter is updated. The entryId is a 1-based index into an array of log entries in order to match GetLogRecord ZCL command. This will return true if the entry was successfully returned.

sl_zigbee_af_door_lock_server_apply_pin(uint8_t *pin, uint8_t pinLength)

Unlock the door with a pin.

sl_zigbee_af_door_lock_server_apply_rfid(uint8_t *rfid, uint8_t rfidLength)

Unlock the door with RFID.

Macros#

#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_PIN_USER_TABLE_SIZE 8
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_RFID_USER_TABLE_SIZE 8
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_PIN_LENGTH 8
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_RFID_LENGTH 8
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_WEEKDAY_SCHEDULE_TABLE_SIZE 4
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_YEARDAY_SCHEDULE_TABLE_SIZE 8
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_HOLIDAY_SCHEDULE_TABLE_SIZE 8
#define
DOOR_LOCK_SERVER_ENDPOINT 1
#define
SL_ZIGBEE_AF_PLUGIN_DOOR_LOCK_SERVER_MAX_LOG_ENTRIES 16
#define
SEND_COMMAND_UNICAST_TO_BINDINGS ()
#define
sl_zigbee_af_door_lock_schedule_entry_t sl_zigbee_af_plugin_door_lock_server_weekday_schedule_entry_t
#define
sl_zigbee_af_door_lock_user_t sl_zigbee_af_plugin_door_lock_server_user_t

API Documentation#

sl_zigbee_af_door_lock_server_add_log_entry#

bool sl_zigbee_af_door_lock_server_add_log_entry (sl_zigbee_af_door_lock_event_type_t eventType, sl_zigbee_af_door_lock_event_source_t source, uint8_t eventId, uint16_t userId, uint8_t pinLength, uint8_t * pin)

Add a log entry. Returns true if the entry was added. Note that the eventId parameter should be of type sl_zigbee_af_door_lock_operation_event_code_t or sl_zigbee_af_door_lock_programming_event_code_t.

Parameters
TypeDirectionArgument NameDescription
sl_zigbee_af_door_lock_event_type_tN/AeventType

Event type Ver.: always

sl_zigbee_af_door_lock_event_source_tN/Asource

Event source Ver.: always

uint8_tN/AeventId

Ver.: always

uint16_tN/AuserId

Ver.: always

uint8_tN/ApinLength

Ver.: always

uint8_t *N/Apin

Ver.: always

Returns

  • bool true if success


sl_zigbee_af_door_lock_server_get_log_entry#

bool sl_zigbee_af_door_lock_server_get_log_entry (uint16_t * entryId, sl_zigbee_af_plugin_door_lock_server_log_entry_t * entry)

Get a log entry associated with the entry ID. If the entry ID does not exist, the most recent entry is returned and the entryId parameter is updated. The entryId is a 1-based index into an array of log entries in order to match GetLogRecord ZCL command. This will return true if the entry was successfully returned.

Parameters
TypeDirectionArgument NameDescription
uint16_t *N/AentryId

Ver.: always

sl_zigbee_af_plugin_door_lock_server_log_entry_t *N/Aentry

pointer to log entry struct Ver.: always

Returns

  • bool true if success


sl_zigbee_af_door_lock_server_apply_pin#

sl_zigbee_af_status_t sl_zigbee_af_door_lock_server_apply_pin (uint8_t * pin, uint8_t pinLength)

Unlock the door with a pin.

Parameters
TypeDirectionArgument NameDescription
uint8_t *N/Apin

Ver.: always

uint8_tN/ApinLength

Ver.: always

Returns

  • sl_zigbee_af_status_t status code


sl_zigbee_af_door_lock_server_apply_rfid#

sl_zigbee_af_status_t sl_zigbee_af_door_lock_server_apply_rfid (uint8_t * rfid, uint8_t rfidLength)

Unlock the door with RFID.

Parameters
TypeDirectionArgument NameDescription
uint8_t *N/Arfid

Ver.: always

uint8_tN/ArfidLength

Ver.: always

Returns

  • sl_zigbee_af_status_t status code