This document is the property of Silicon Labs. The data contained herein, in whole or in
part, may not be duplicated, used or disclosed outside the recipient for any purpose. This
restriction does not limit the recipient's right to use information contained in the data if it
is obtained from another source without restriction.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 1 of 212
1Introduction
1.1Purpose
This document is the Z-Ware Library C API reference manual.
1.2Audience and Prerequisites
This document is for Z-Wave Partners and assumes they are already comfortable with the ZWave protocol and network installation. As such, the document does not go into detail on
these matters. References are also made to the Z-Wave Device Class (DC) and Command Class
(CC) definitions and the Z-Wave for Internet Protocol (Z/IP) API, upon which this API is built.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 2 of 212
2Error Codes
Error code
Description
Value
ZW_ERR_NONE *
Operation succeeded.
0
ZW_ERR_QUEUED *
Success: The command is queued into mailbox and
will only be sent when the device wakes up (no
transmission status callback).
1
ZW_ERR_CACHE_AVAIL *
Success: The data is available in the cache (no live
get from the target device).
2
ZW_ERR_SEND_PENDING *
Success: The command is pending for sending in a
short while (no transmission status callback).
3
ZW_ERR_FAILED
Operation failed.
-1
ZW_ERR_WRONG_IF
Wrong interface.
-10
ZW_ERR_NO_RESP
No response from controller.
-11
ZW_ERR_MEMORY
Out of memory.
-12
ZW_ERR_NODE_NOT_FOUND
Node not found.
-13
ZW_ERR_CLASS_NOT_FOUND
CC not found.
-14
ZW_ERR_INTF_NOT_FOUND
Interface to a class not found.
-15
ZW_ERR_INTF_NO_REP_HDLR
Interface report handler not found.
-16
ZW_ERR_LAST_OP_NOT_DONE
Last operation uncompleted yet, try again.
-17
ZW_ERR_NOT_IN_LIST
Node not in protocol layer failed node ID list.
-18
ZW_ERR_OP_FAILED
The requested operation failed.
-19
ZW_ERR_EP_NOT_FOUND
Endpoint not found.
-20
ZW_ERR_RPT_NOT_FOUND
The report command of an interface not found.
-21
ZW_ERR_NET_NOT_FOUND
Network not found.
-22
ZW_ERR_CMD_VERSION
Incorrect CC version.
-23
ZW_ERR_PENDING
Operation pending, it cannot be canceled now.
-24
ZW_ERR_VALUE
The parameter value is invalid.
-25
ZW_ERR_QUEUE_FULL
The queue is full.
-26
ZW_ERR_UNSUPPORTED
The requested function is unsupported for this
node.
-27
ZW_ERR_FILE_OPEN
Open file error.
-28
ZW_ERR_FILE_WRITE
Write file error.
-29
ZW_ERR_FILE_EOF
The end-of-file was reached.
-30
ZW_ERR_FILE
File is corrupted.
-31
ZW_ERR_FILE_HOME_ID
File home ID doesn't match.
-32
ZW_ERR_EXPIRED
Expired.
-33
ZW_ERR_NO_RES
No resource for mutex, semaphore, timer, etc.
-34
The error codes used in APIs, ZW_ERR_XXX are listed in the table below. They are defined in
the header file, zip_api.h. They can also be found in Doxygen documentation under the
“Modules->Network APIs” Zw_error_codes section. Besides, occasionally, the error code
returned may be from a low-level library function call. These error codes are listed in the table
“Low-Level Library Error Codes”.
Table 1 – Error Codes, ZW_ERR_XXX
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 3 of 212
ZW_ERR_EVENT
Event is not processed.
-35
ZW_ERR_TOO_LARGE
Data size is too large.
-36
ZW_ERR_TOO_SMALL
Data size is too small.
-37
ZW_ERR_TIMEOUT
Timeout.
-38
ZW_ERR_TRANSMIT
Transmission failed.
-39
ZW_ERR_NONCE_NOT_FOUND
Security nonce not found.
-40
ZW_ERR_AUTH
Authentication error.
-41
ZW_ERR_SEQ_NUMBER
Incorrect sequence number.
-42
ZW_ERR_BUSY
Busy, try again later.
-43
ZW_ERR_SEC_SCHEME
Security scheme unsupported.
-44
ZW_ERR_TRANSPORT_INI
Initialization error on transport layer.
-45
ZW_ERR_FRAME_INI
Initialization error on frame layer.
-46
ZW_ERR_SESSION_INI
Initialization error on session layer.
-47
ZW_ERR_APPL_INI
Initialization error on application layer.
-48
ZW_ERR_UNEXPECTED
The error was unexpected under normal
circumstances.
-49
ZW_ERR_NETWORK_IF
Network interface not configured properly.
-50
ZW_ERR_IP_ADDR
The IP address is invalid.
-51
ZW_ERR_VERSION
Wrong version number.
-52
ZW_ERR_INTF_NO_DATA
Interface data is missing.
-53
ZW_ERR_FILE_READ
Read file error.
-54
ZW_ERR_PARSE_FILE
Parsing file failed.
-55
ZW_ERR_MISSING_ENTRY
Missing mandatory entry.
-56
ZW_ERR_DEVCFG_NOT_FOUND
Device specific configuration record not found.
-57
ZW_ERR_DISALLOWED
The operation is disallowed under certain
circumstances.
-58
ZW_ERR_PSK_TOO_SHORT
DTLS pre-shared key length is too short.
-59
ZW_ERR_NO_CACHE_AVAIL
The data is unavailable in the cache.
-60
ZW_ERR_NOT_APPLICABLE
Not applicable and should be skipped or ignored.
-61
ZW_ERR_SHUTDOWN
The system is shutting down.
-62
ZW_ERR_POST_SET_POLL
Post-set polling error.
-63
ZW_ERR_ORDER
Out of order.
-64
ZW_ERR_CMD_UNSUPP_TGT
Command sent by the association group is
unsupported at target node or endpoint.
-65
ZW_ERR_UNSUPP_S2_TGT
The association group node does not have the S2
target node highest key scheme HEALTH_CHK.
-66
ZW_ERR_UNSUPP_S2_SRC
The target node does not have the association
group node S2 highest key scheme
-67
ZW_ERR_DIFF_HIGHEST_SEC
The association group node highest key scheme is
different from target node's highest key scheme
-68
Note: Error code with (*) that has a value equal or greater than zero is not an error. In fact, it
Error code
Description
Value
is an indication of success with more detailed description.
Table 2 – Low-Level Library Error Codes
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 4 of 212
ZWHCI_ERROR_MEMORY
Out of memory.
-100
ZWHCI_ERROR_RESOURCE
Out of resource.
-101
TRANSPORT_ERROR_SIGNALING
Could not signal write thread to perform
actual write.
-102
FRAME_ERROR_MULTIPLE_WRITE
Write while the previous write in progress is
not allowed.
-103
FRAME_ERROR_SEND_TIMER
Send timer not functioning.
-104
SESSION_ERROR_PREVIOUS_
COMMAND_UNCOMPLETED
Previous command uncompleted, retry later.
-105
SESSION_ERROR_DEST_BUSY
The message has not timed out yet.The
destination host may have a long response
time.
-106
SESSION_ERROR_UNREACHABLE
Frame failed to reach destination host.
-107
SESSION_ERROR_SND_FRM_TMOUT
Send frame timeout due to no ACK received.
-108
SESSION_ERROR_SYSTEM
System error, the program should exit.
-109
SESSION_ERROR_INVALID_RESP
The response command ID doesn't match with
the sent command ID.
-110
SESSION_ERROR_SEND_BUSY
Send error at lower layer due to controller
busy.
-111
APPL_TX_STATUS_TIMEOUT
There is no transmit status callback from
lower layer.
-112
APPL_OPER_ALREADY_ACTIVE
The requested operation is already active.
-113
APPL_OPER_NOT_STARTED
The requested operation fails to start.
-114
APPL_ERROR_WAIT_CB
Waiting for transmit complete callback
function, retry later.
-115
APPL_INVALID_ADDR
Invalid IPv6 address.
-116
APPL_INVALID_NODE_ID
Invalid node ID.
-117
APPL_ERROR_RSLV_NODE_ID
Couldn't resolve node ID to IP address.
-118
ZWHCI_ERROR_TOO_LARGE
The value supplied is too large.
-119
ZWHCI_ERROR_WRITE
Write failed.
-120
ZWHCI_ERROR_READ
Read failed.
-121
ZWHCI_ERROR_TIMEOUT
Time out.
-122
ZWHCI_ERROR_VERIFY
Verification failed.
-123
ZWHCI_ERROR_SHUTDOWN
System is shutting down.
-124
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 5 of 212
3Device Database API
Attribute
Type
I/O
Description
cfg_file
const char *
I
Device-specific configurations file in JSON format.
records
dev_rec_t **
O
Device-specific configuration records sorted
according to manufacturer ID, product type ID and
product ID
record_cnt
uint16_t *
O
Number of device-specific configuration records
stored in "records".
global_sett
dev_global_sett_t**
O
Device global settings.
global_sett_cnt
uint16_t *
O
Number of entries in device global settings.
err_loc
dev_cfg_error_t *
O
Parse error location for "device_records" in JSON
file.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Note: Caller must free the memory allocated to
"records" using zwdev_cfg_free() and memory
allocated to "global_sett" using
zwdev_global_sett_free() if return value is
ZW_ERR_NONE.
Attribute
Type
I/O
Description
vid
uint32_t
O
Vendor or Manufacturer ID
ptype
uint32_t
O
Product Type ID
pid
uint32_t
O
Product ID
category
uint8_t
O
Device category, DEV_XXX
ep_rec
ep_rec_t *
O
Endpoint records
Device Category
Description
#
DEV_CATEGORY_UNKNOWN
Unknown or uncategorized device
0
DEV_SENSOR_ALARM
Sensor alarm
1
DEV_ON_OFF_SWITCH
On/off switch
2
DEV_POWER_STRIP
Power strip
3
DEV_SIREN
Siren
4
DEV_VALVE
Valve
5
DEV_SIMPLE_DISPLAY
Simple display
6
DEV_DOORLOCK_KEYPAD
Door lock with keypad
7
These APIs load the device database.
3.1zwdev_cfg_load
Load and store device-specific configurations.
Table 3 – zwdev_cfg_load Parameters
Table 4 – dev_rec_t Structure
Table 5 – DEV_XXX Meaning and Values
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 6 of 212
DEV_SUB_ENERGY_METER
Sub energy meter
8
DEV_ADV_WHL_HOME_ENER_METER
Advanced whole home energy meter
9
DEV_SIM_WHL_HOME_ENER_METER
Simple whole home energy meter
10
DEV_SENSOR
Sensor
11
DEV_LIGHT_DIMMER
Light dimmer switch
12
DEV_WIN_COVERING_NO_POS
Window covering no
position/endpoint
13
DEV_WIN_COVERING_EP
Window covering end point aware
14
DEV_WIN_COVERING_POS_EP
Window covering position/endpointaware
15
DEV_FAN_SWITCH
Fan switch
16
DEV_RMT_CTL_MULTIPURPOSE
Remote control - multipurpose
17
DEV_RMT_CTL_AV
Remote control - AV
18
DEV_RMT_CTL_SIMPLE
Remote control - simple
19
DEV_UNRECOG_GATEWAY
Gateway (unrecognized by client)
20
DEV_CENTRAL_CTLR
Central controller
21
DEV_SET_TOP_BOX
Set top box
22
DEV_TV
TV
23
DEV_SUB_SYS_CTLR
Sub system controller
24
DEV_GATEWAY
Gateway
25
DEV_THERMOSTAT_HVAC
Thermostat - HVAC
26
DEV_THERMOSTAT_SETBACK
Thermostat - setback
27
DEV_WALL_CTLR
Wall controller
28
Table 6 – ep_rec_t Structure
Attribute
Type
I/O
Description
next
ep_rec_t *
O
Point to next endpoint record
id
uint8_t
O
Endpoint ID (starting from 0 for virtual endpoint, 1
and onwards for real endpoints)
new_if
uint16_t
O
New CC to be created/added to the endpoint, if any
new_if_ver
uint8_t
O
The "user defined version" for the new CC, if any
new_if_propty
uint8_t
O
New CC (interface) property (bit-mask)
redir_rec
redir_rec_t *
O
Command redirection records
if_rec
if_rec_t *
O
Interface records
Attribute
Type
I/O
Description
next
redir_rec_t *
O
Next redirection record
if_id
uint16_t
O
Interface ID / CC ID.
cmd
intOCommand value 0-255. -1 means don't care.
target_ep
uint8_t
O
Target endpoint ID to redirect to.
Attribute
Type
I/O
Description
next
if_rec_t *
O
Point to next interface record.
Table 7 – redir_rec_t Structure
Table 8 – if_rec_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 7 of 212
type
uint8_t
O
Interface type, IF_REC_TYPE_XXX.
usr_def_ver
uint8_t
O
User defined version.
propty
uint8_t
O
Interface type specific property (bit-mask).
tmout
uint16_t
O
Interface type specific timeout value in seconds.
rec
rec union
O
Union of interface records; the actual interface
record used is indicated by the type attribute of this
structure.
Table 9 – Interface Types: IF_REC_TYPE_XXX
Interface Record Type
Description
#
IF_REC_TYPE_GROUP
Group
1
IF_REC_TYPE_CONFIG
Configuration
2
IF_REC_TYPE_BIN_SENSOR
Binary Sensor
3
IF_REC_TYPE_SENSOR
Sensor
4
IF_REC_TYPE_METER
Meter
5
IF_REC_TYPE_ALARM
Alarm/Notification
6
IF_REC_TYPE_BASIC
Basic
7
IF_REC_TYPE_ALRM_SNSR
Alarm Sensor
8
IF_REC_TYPE_THRMO_SETP
Thermostat setpoint
9
IF_REC_TYPE_DOOR_LOCK
Door lock
10
IF_REC_TYPE_MULTI_CMD
Multi-command
11
Attribute
Type
I/O
Description
grp
if_rec_grp_t *
O
Group interface record
config
if_rec_config_t *
O
Configuration interface
record
bsnsr
if_rec_bsnsr_t *
O
Binary Sensor interface
record
snsr
if_rec_snsr_t *
O
Sensor interface record
meter
if_rec_meter_t *
O
Meter interface record
alarm
if_rec_alarm_match_t*
O
Alarm//Notification
interface record
basic
if_rec_basic_match_t*
O
Basic interface record
alrm_snsr
if_rec_alrm_snsr_match_t*
O
Alarm sensor interface
record
thrmo_setp
if_rec_thrmo_setp_t*
O
Thermostat setpoint
interface record
door_lck
if_rec_dlck_t *
O
Door lock interface
record
mcmd
if_rec_mcmd_t *
O
Multi-command
encapsulation record
Attribute
Type
I/O
Description
grp_cnt
uint8_t
O
Number of group ID in the grp_id array
Table 10 – rec Union
Table 11 – if_rec_grp_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 8 of 212
grp_id
uint8_t[7]
O
Group IDs for the controller to set its node ID into the
groups
Table 12 – if_rec_config_t Structure
Attribute
Type
I/O
Description
next
if_rec_config_t *
O
Point to next configuration interface
record.
Record type CONFIG_REC_TYPE_XXX.
XXX
Description
SET
Configuration record type set.
rec_type
uint16_t
O
INFO
Configuration record type
information.
rec
union
O
Record as indicated by record type; union
of the following:
cfg_set
if_rec_cfg_set_t
O
For CONFIG_REC_TYPE_SET
cfg_info
if_rec_cfg_info_t
O
For CONFIG_REC_TYPE_INFO
Attribute
Type
I/O
Description
param_num
uint8_t
O
Parameter number
param_size
uint8_t
O
Data size: 1, 2, or 4 bytes
param_val
int32_t
O
Configuration parameter value (signed
integer)
Attribute
Type
I/O
Description
param_num
uint8_t
O
Parameter number
param_size
uint8_t
O
Data size: 1,2,or 4 bytes
param_min
int32_t
O
Minimum configuration parameter value
(signed integer)
param_max
int32_t
O
Maximum configuration parameter value
(signed integer)
param_deflt
int32_t
O
Default configuration parameter value
(signed integer)
param_name
char *
O
Parameter name
param_info
char *
O
Parameter information
Attribute
Type
I/O
Description
type
uint8_t
O
Supported binary sensor type
ZW_BSENSOR_TYPE_XXX (for version 1
only)
rec_match
if_rec_bsnsr_match_t
*
O
Record matching condition
Table 13 – if_rec_cfg_set_t Structure
Table 14 – if_rec_cfg_info_t Structure
Table 15 – if_rec_bsnsr_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 9 of 212
Table 16 – if_rec_bsnsr_match_t Structure
Attribute
Type
I/O
Description
pResult
void *
O
The result record that maps to, e.g.,
if_rec_alarm_result_t*
type
intOBinary sensor type
ZW_BSENSOR_TYPE_XXX
state
intOBinary sensor state.
resultType
intOType of the resulting conversion.
IF_REC_TYPE_XXX
Attribute
Type
I/O
Description
type
uint8_t
O
Sensor type ZW_SENSOR_TYPE_XXX
unit
uint8_t
O
Sensor unit ZW_SENSOR_UNIT_XXX
Attribute
Type
I/O
Description
type
uint8_t
O
ZW_METER_TYPE_XXX.
unit_supp
uint8_t
O
Supported unit bit-mask :
ZW_METER_SUP_UNIT_XXX.
rate_type
uint8_t
O
ZW_METER_RATE_XXX.
reset_cap
uint8_t
O
Meter reset capability: 1=capable to reset;
0=incapable of reset.
Attribute
Type
I/O
Description
next
if_rec_alarm_match_t *
O
Point to next match record
pResult
if_rec_alarm_result_t *
O
The result alarm record that maps to
pRevMatch
if_rec_alarm_rev_match_t
*
O
Device specific alarm reverse-matching record
(It is the OR result of match and result struct)
match_valid
intOFlag to indicate whether the match entries
below are valid
type
intOVendor proprietary alarm type
level_low
intOVendor proprietary alarm level or lower limit of
a range
level_high
intOVendor proprietary alarm level higher limit of a
range
isRange
intOFlag to indicate vendor proprietary alarm level is
a range
The result record that maps to, e.g.,
if_rec_alarm_result_t*.
command
intOBasic CC command. eg. BASIC_SET.
value
intOCommand value 0-255. -1 means don't care.
resultType
IntOType of the resulted conversion.
IF_REC_TYPE_xxx.
Attribute
Type
I/O
Description
next
if_rec_alrm_snsr_match_t
*
O
Point to next match record
pResult
void *
O
The result record that maps to. eg.
if_rec_alarm_result_t*
type
intOAlarm sensor type. (ZW_ALRM_SNSR_TYPE_XXX)
state_low
intOAlarm sensor state or lower limit of a range. -1
means don't care.
state_high
intOAlarm sensor state higher limit of a range
Table 22 – if_rec_alarm_rev_match_t Structure
Table 23 – if_rec_basic_match_t Structure
Table 24 – if_rec_alrm_snsr_match_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 11 of 212
isRange
intOFlag to indicate Alarm sensor state is a range
resultType
intOType of the resulted conversion.
IF_REC_TYPE_xxx
if_rec_thrmo_setp_t Structure
Attribute
Type
I/O
Description
type_cnt
uint8_t
O
Number of thermostat setpointsupported temperature ranges
temp_range
zwsetp_temp_range_t *
O
Temperature ranges
Attribute
Type
I/O
Description
min
zwsetp_t
O
Minimum setpoint temperature
max
zwsetp_t
O
Maximum setpoint temperature
Attribute
Type
I/O
Description
op_type_cnt
uint8_t
O
Number of supported door lock operation types in
"op_type" buffer.
mode_cnt
uint8_t
O
Number of supported door lock modes in "mode"
buffer.
out_hdl
uint8_t
O
Supported outside door handle mode bitmask. It's
a 4-bit mask; bit set to 1 if the corresponding
handle can be enabled and disabled; otherwise, the
corresponding handle cannot be enabled or
disabled.
in_hdl
uint8_t
O
Supported inside door handle mode bitmask. It's a
4-bit mask; bit set to 1 if the corresponding handle
can be enabled and disabled; otherwise, the
corresponding handle cannot be enabled or
disabled.
op_type
uint8_t *
O
Door lock operation type (ZW_DOOR_OP_XXX)
buffer.
mode
uint8_t *
O
Door lock mode (ZW_DOOR_XXX except
ZW_DOOR_UNKNOWN) buffer.
Attribute
Type
I/O
Description
send_encap
uint8_t
O
Control whether to send consecutive commands
using multi-command encapsulation
64
Barrier operation (Open / Close) force has been exceeded.
65
Barrier motor has exceeded manufacturer’s operational time
limit. Event parameter value:
0 to 0x7F = 0 to 127 seconds; 0x80 to 0xFE = 1 to 127 minutes.
66
Barrier operation has exceeded physical mechanical limits. (For
example: barrier has opened past the open limit.)
67
Barrier unable to perform requested operation due to UL
requirements.
68
Barrier Unattended operation has been disabled per UL
requirements.
69
Barrier failed to perform Requested operation, device
malfunction
Table 35 – Z-Wave Alarm/Notification Event Parameter Type
Z-Wave Alarm/Notification Event
Parameter Type
Description
#
ZW_ALRM_PARAM_LOC
Node location UTF-8 string (NULL
terminated).
1
ZW_ALRM_PARAM_USRID
User ID. 1 or 2 bytes long; if 2 bytes, the
first byte is the MSB
2
ZW_ALRM_PARAM_OEM_ERR_CODE
OEM proprietary system failure code.
3
ZW_ALRM_PARAM_PROPRIETARY
Proprietary event parameters.
4
ZW_ALRM_PARAM_EVENT_ID
Event ID which is no more active.
5
ZW_ALRM_PARAM_UNKNOWN
Unknown alarm event parameters. It
could be from a higher version of CC, or
the device violates the spec and send
parameters when Spec does not define.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 25 of 212
ZW_THRMO_SETP_TYP_ENE_SAVE_HEAT
Energy Save Heating
11
ZW_THRMO_SETP_TYP_ENE_SAVE_COOL
Energy Save Cooling
12
ZW_THRMO_SETP_TYP_AWAY_HEAT
Away heating
13
ZW_THRMO_SETP_TYP_AWAY_COOL
Away cooling
14
ZW_THRMO_SETP_TYP_FULL_POWER
Full power
15
Table 38 – Thermostat Setpoint Unit
Thermostat Setpoint Unit
Description
Assigned
Number
ZW_THRMO_SETP_UNIT_C
Celsius
0
ZW_THRMO_SETP_UNIT_F
Fahrenheit
1
Door lock Operation Mode
Description
Assigned Number
ZW_DOOR_UNSEC
Door unsecured.
0
ZW_DOOR_UNSEC_TMOUT
Door unsecured with
timeout. Fallback to
secured mode after
timeout has expired.
1
ZW_DOOR_UNSEC_IN
Door unsecured for
inside door handles.
16
ZW_DOOR_UNSEC_IN_TMOUT
Door unsecured for
inside door handles with
timeout.
17
ZW_DOOR_UNSEC_OUT
Door unsecured for
outside door handles.
32
ZW_DOOR_UNSEC_OUT_TMOUT
Door unsecured for
outside door handles
with timeout.
33
ZW_DOOR_SEC
Door secured.
255
Door lock Operation Type
Description
Assigned
Number
ZW_DOOR_OP_CONST
Constant operation.
1
ZW_DOOR_OP_TIMED
Timed operation.
2
Attribute
Type
I/O
Description
dev_ent
unsigned
O
Device entry number (starting from 1)
ep_ent
unsigned
O
Endpoint entry number (starting from 1)
if_ent
unsigned
O
Interface entry number (starting from 1)
Table 39 – Door Lock Operation Mode
Table 40 – Door lock Operation Type
Table 41 – dev_cfg_error_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 26 of 212
3.2zwdev_cfg_free
Attribute
Type
I/O
Description
records
dev_rec_t *
I
Device specific configuration records
record_cnt
intINumber of records stored in "records" array
Attribute
Type
I/O
Description
global_sett
dev_global_sett_t *
I
Device setting records
global_sett_cnt
uint16_t
I
Number of records stored in " global_sett" array
Attribute
Type
I/O
Description
srch_key
dev_rec_srch_key_t *
I
Search key
records
dev_rec_t *
I
Device-specific configuration records sorted
according to manufacturer ID, product type ID, and
product ID.
record_cnt
intINumber of records stored in "records" array.
matched_rec
dev_rec_t *
O
The matched record; either exact match or partial
match as explained in the note below.
Note: This function supports "don't care" cases in
device-specific configuration records. The search
priority is as follows (in the format (Manf ID, Product
Type, Product ID))
: (V, V, V), (V, V, X), (V, X, X), (X, X, X)
where V="valid value" and X="don't care".
Return
intONon-zero if a match is found; else returns zero.
Attribute
Type
I/O
Description
vid
uint32_t
O
Vendor or Manufacturer ID
ptype
uint32_t
O
Product Type ID
pid
uint32_t
O
Product ID
Free device-specific configuration records.
Table 42 – zwdev_cfg_free Parameters
3.3zwdev_global_sett_free
Free device global settings.
Table 43 – zwdev_global_sett_free Parameters
3.4zwdev_cfg_find
Search for a match in device-specific configuration records.
Table 44 – zwdev_cfg_find Parameters
Table 45 – dev_rec_srch_key_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 27 of 212
4Network API
Attribute
Type
I/O
Description
cb
zwnet_gw_discvr_cb_t
I
Callback function when the scanning has completed.
usr_param
void *
I
User-defined parameter used in callback function.
ipv4
intIFlag to indicate whether to use IPv4 as transport IP
protocol. 1= use IPv4; 0= use IPv6.
use_mdns
intIFlag to indicate whether to use MDNS for gateway
discovery. Note: MDNS gateway discovery is only
supported in ZIPGW version 2.
return
void *
O
Context on success, NULL on failure. Caller is required
to call zwnet_gw_discvr_stop() with the returned
context if it is not null.
Attribute
Type
I/O
Description
gw_addr
uint8_t *
I
Gateway addresses. If the ipv4 flag is set, each gateway
address is 4-bytes long; otherwise, each gateway address is
16-bytes long.
gw_cnt
uint8_t
I
Number of gateway addresses returned in gw_addr.
ipv4
intIFlag to indicate the gw_addr parameter is IPv4 or IPv6.
1=IPv4; 0=IPv6.
usr_param
void *
I
User-defined parameter passed when calling
zwnet_gw_discvr_start().
rpt_num
intIReport number that this callback is delivering the gateway
addresses report; start from 1.
total_rpt
intITotal reports that will be delivered by callbacks. Each callback
delivers one report. Zero is returned if there is no valid IP to
facilitate gateway discovery.
gw_name
char * *
I
Gateway names corresponding to the gw_addr. If NULL, it
means gateway name information is unavailable.
The network is seen through the eyes of a ZIPGW attached controller.
4.1Discovering ZIPGWs
4.1.1zwnet_gw_discvr_start
This call starts a network scanning for ZIPGW IP addresses using the ZIPGW Discovery protocol.
Once the scanning is done, the result will be available through a callback function. Take note
that this function can be called without calling the zwnet_init function first.
Table 46 – zwnet_gw_discvr_start Parameters
Table 47 – zwnet_gw_discvr_cb_t Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 28 of 212
4.1.2zwnet_gw_discvr_stop
Attribute
Type
I/O
Description
ctx
void *
I
The context returned from the call to
zwnet_gw_discvr_start().
return
intOZero on success, non-zero on failure.
Attribute
Type
I/O
Description
init
zwnet_init_t *
I
User filled initialization information.
net
zwnet_t **
O
Handle to network for use in other zwnet_xxx API calls.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
user
void *
I
User context used in callbacks.
host_port
uint16_t
I
Host listening and sending port.
use_ipv4
IntIFlag to indicate whether to use IPv4 as
transport IP protocol. 1=use IPv4; 0=use
IPv6.
zip_router
uint8_t[16]
I
ZIPGW (gateway) IPv4/IPv6 address in
numeric format.
notify
zwnet_notify_fn
I
Network operation notification.
node
zwnet_node_fn
I
Node add/delete/status callback.
appl_tx
zwnet_appl_fn
I
Application transmit data status callback.
inif_cb
pl_info_fn
I
Unsolicited included node information
frame (INIF) callback when a Smart Start
device (which has joined a foreign network
This call stops the network scanning for ZIPGW IP addresses and frees the resources used in
network scanning. Take note that this function should not be called in the callback function
that was passed to the zwnet_gw_discvr_start function as parameter cb.
Table 48 – zwnet_gw_discvr_stop Parameters
4.2Network Initialization and Clean up
4.2.1zwnet_init
This call runs a state-machine to acquire the ZIPGW attached controller’s Home ID, Node ID,
HAN address, and node list of the HAN. An internal network data structure is created and
initialized with each of the node IDs found in the acquired node list. A user application could
get access to the controller Home ID and Node ID by calling zwnet_get_desc API only after the
zwnet_notify_fn callback function returns status is ZW_ERR_NONE.
To populate the internal network data structure with endpoints and interfaces, this API tries to
retrieve the node information from an internally maintained database. For those nodes found
in the controller routing table but without corresponding node information in the database,
the node information state-machine is invoked to get the information (CCs supported, CC
version, node name and location, manufacturer ID, product type ID, product ID and multiinstance/channel endpoints, etc.) directly from the node device.
Table 49 – zwnet_init Parameters
Table 50 – zwnet_init_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 29 of 212
but is listed in the local provisioning list) is
powering up.
unhandled_cmd
zwnet_unhandled_cmd_fn
I
Unhandled command callback.
print_txt_fn
print_fn
I
Print text function pointer.
portal_fd
#
intINetwork file descriptor to connect to
ZIPGW using TLS.
portal_ssl
#
void *
I
SSL object pointer to connect to ZIPGW
using TLS.
display_ctx
#
void *
I
Display context for the print_txt_fn.
net_err
#
zwnet_net_err_fn
I
Unrecoverable network error callback,
application should close this instance of ZWare object, i.e. call zwnet_exit().
portal_prof
#
clnt_prof_t
I
Profile of the ZIPGW that is connected to
the portal.
net_info_dir
const char *
I
Full path of directory for storing network
and node information file (a.k.a. network
persistent storage). The file is generated by
the library with filename in the format
“nifXXXXXXXX.dat”, where XXXXXXXX
denotes Z-Wave network home ID.
pref_dir
const char *
I
Full path of directory for storing
network/user preference files.
dev_cfg_file
const char *
I
Device-specific configurations file (a.k.a
device database) in JSON format. If it is
NULL, device-specific configurations will be
managed by user application. In this case,
dev_cfg_usr must be valid.
cmd_cls_cfg_file
const char *
I
Optional CC configuration file. Enable
specific CC probing after a new node
inclusion and during background polling. If
NULL, ALL supported CCs are enabled. The
current supported CC configuration file is
distributed in the “config” folder of the
source distribution with the name
“cmd_class.cfg”.
dev_cfg_usr
dev_cfg_usr_t *
I
Device-specific configurations (managed by
user application). If it is NULL, devicespecific configurations will be managed by
Z-Ware Library internally. In this case,
dev_cfg_file must be valid.
err_loc
dev_cfg_error_t
O
Error location while parsing device-specific
configuration file. Note: The error is not
due to JSON format parsing error.
sup_cmd_cls
sup_cmd_cls_t *
I
User application implemented CCs.NOTE: if
the controller has already implemented the
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 30 of 212
CC, the user's request for that CC will be
ignored.
sup_cmd_cls_cnt
uint8_t
I
User application implemented CCs count.
s2_unsolicited_cb
add_node_sec2_fn
I
Callback to report unsolicited joining device
requested keys and/or status of Device
Specific Key (DSK)
dtls_psk*
uint8_t[32]
I
DTLS pre-shared key in binary format,
MUST be at least 16 bytes.
dtls_psk_len*
uint8_t
I
DTLS pre-shared key length (bytes). If
length is zero, no DTLS will be used, i.e.,
communication will be insecured.
Note: Attributes marked with (#) are only available for the Portal version; whereas those
Attribute
Type
I/O
Description
dev_rec_find_fn
zwnet_dev_rec_find_fn
O
User-supplied function to find device record
dev_cfg_ctx
void *
O
User-specified device configuration context for
use in dev_rec_find_fn
dev_glob_sett
dev_global_sett_t *
O
Optional device global settings
global_sett_cnt
uint16_t
O
Global settings count in dev_glob_sett
Attribute
Type
I/O
Description
dev_cfg_ctx
void *
I
User-specified device configuration context.
srch_key
dev_rec_srch_key_t *
I
Search key.
matched_rec
dev_rec_t *
O
The matched record; either exact match or partial
match as explained in the note below.
Note: This function supports "don't care" cases in
device-specific configuration records. The search
priority is as follows (in the format (Manf ID, Product
Type, Product ID)): (V, V, V), (V, V, X), (V, X, X), (X, X,
X)
where V="valid value"; X="don't care".
return
intONon-zero if a match is found; else returns zero.
Attribute
Type
I/O
Description
Setting type, GLOB_SET_TYPE_XXX:
XXX
Description
type
uint16_t
O
WKUP_INTV
Wakeup interval to set for a
newly added sleeping node.
marked with (*) are only available for the CE version.
Typical zwnet operations take in the network handle returned from this call and return the
success status of the operation as show in the table below. The parameters for such
operations are not further documented.
Table 51 – dev_cfg_usr_t Structure
Table 52 – zwnet_dev_rec_find_fn Parameters
Table 53 – dev_global_sett_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 31 of 212
sett
union
Settings as indicated by setting type; union of the
following:
wkup_intv
uint32_t
O
For GLOB_SET_TYPE_WKUP_INTV
Table 54 – zwnet_xxx Generic Parameters
Attribute
Type
I/O
Description
net
zwnet_t
*
I
Network handle from zwnet_init
return
intOZW_ERR_XXX
Attribute
Type
I/O
Description
user
void *
I
User context
src_node
uint8_t
I
Source node ID
src_ep
uint8_t
I
Source endpoint ID
cmd
uint8_t *
I
Buffer that stores the unhandled command
cmd_len
Uint16_t
I
Length of the unhandled command
Attribute
Type
I/O
Description
cls
uint16_t
O
CC
ver
uint8_t
O
Version of the CC
Properties of the interface (bit-mask):
BITMASK_CMD_CLS_XXX
BITMASK_CMD_CLS_INSECURE
CC is insecure
propty
uint8_t
O
BITMASK_CMD_CLS_SECURE
CC is secure
Attribute
Type
I/O
Description
user
void *
I
from zwnet_init
operation ZWNET_OP_XXX
XXX
Description
NONE
Idle.
INITIALIZE
Initializing local Z/IP controller.
ADD_NODE
Adding a node.
RM_NODE
Removing a node.
RP_NODE
Replacing a failed node.
RM_FAILED_ID
Removing a failed node.
INITIATE
Initiating in response to or anticipation of
some operation.
UPDATE
Updating network topology from SUC/SIS.
RESET
Restoring ZIPGW attached controller to
factory default settings.
NODE_UPDATE
Updating node information.
MIGRATE
Migrating primary controller.
op
uint8_t
I
SEND_NIF
Sending node information frame.
Table 55 – zwnet_unhandled_cmd_fn Parameters
Table 56 – sup_cmd_cls_t Structure
Table 57 – zwnet_notify_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
Save network and node information to
persistent storage. (Internally used;
application won’t receive this notification.)
SLP_NODE_POLL
Sleeping device node information polling.
(Internally used; application won’t receive
this notification.)
FW_UPDT
Firmware update.
HEALTH_CHK
Network health check.
NODE_RESET
Remove node which has been reset.
FW_DOWNLD
Firmware download
Status of current operation. When upper-byte is zero, the lower
byte is the current status of the operation (see table below). When
upper-byte is non-zero, it represents the total number of nodes to
get detailed node information, while the lower-byte represents the
number of nodes that have completed getting detailed node
information.
Operation:
ZWNET_OP_
Status
OP_
Description
DONE
Operation
completed.
All
FAILED
Operation failed.
ADD_NODE_PROTOCOL_DONE
Protocol part
done.
ADD_NODE_GET_NODE_INFO
Getting node
detailed
information.
ADD_NODE
ADD_NODE_PROTOCOL_START
Smart Start add
node Z-Wave
protocol started.
RP_NODE_PROTOCOL_DONE
Protocol part
done.
RP_NODE
RP_NODE_GET_NODE_INFO
Getting node
detailed
information.
INI_PROTOCOL_DONE
Protocol part
done.
INITIATE
INI_GET_NODE_INFO
Getting node
detailed
information.
sts
uint16_t
I
UPDATE
NU_TOPOLOGY
Network
topology update
started.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 33 of 212
NU_NEIGHBOR
Node neighbor
update started.
NU_GET_NODE_INFO
Node
information
update started.
FW_UPLOAD_STARTED
Uploading
firmware to
device started.
FW_UPDT
FW_UPLOADING
Uploading
firmware to
device in
progress.
HEALTH_CHK_STARTED
Network health
check started.
HEALTH_CHK_PROGRESS
Network health
check in
progress.
HEALTH_CHK
HEALTH_CHK_CMPLT
Network health
check
completed.
FW_DOWNLD_STARTED
Downloading
firmware from
device (for
backup
purposes) has
started.
FW_DOWNLD
FW_DOWNLOADING
Downloading
firmware from
device in
progress.
info
zwnet_sts_t
*
I
Additional information for the specified op and sts; NULL if there is
no additional info. For a cross reference of this additional
information to the network op and sts, see table “Additional Info
Associated to Network Op and Status”
ret
intIZW_ERR_XXX.
Table 58 – zwnet_sts_t Structure
Attribute
Type
I/O
Description
type
intOType of info, ZWNET_STS_INFO_XXX. See the
description in “info” below.
Union of the following as indicated by “type”:
info
union
O
Description
For type =
ZWNET_STS_INFO_XXX
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 34 of 212
s2_dsk
char []
The S2 DSK associated
with the Smart Start
adding node protocol
started status.
SS_START
progress_percent
uint8_t
Firmware update
progress in %
FW_UPDT_PRG
health_chk_progress
zw_health_prg_t
Network health check
progress
HEALTH_CHK_PRG
health_chk_rpt
zw_health_rpt_t
Network health check
completion report
HEALTH_CHK_RPT
node_id
uint8_t
Node ID involved in the
corresponding network
operation
NODE_ID
nw_change_updt_sts
uint8_t
Network change/update
status,
NW_CHG_UPDT_XXX
NW_CHANGE_UPDT
progress_bytes
uint32_t
Firmware download
progress in number of
bytes downloaded
FW_DL_PRG
Table 59 – NW_CHG_UPDT_XXX
Network change/update status
Description
NW_CHG_UPDT_NONE
No change in network id and controller
NW_CHG_UPDT_NW_ID
Network id has changed. Application needs to refresh the
network structure
NW_CHG_UPDT_CTLR
Z-Wave controller has changed. Application needs to call
zwnet_get_desc API to refresh controller’s properties.
Attribute
Type
I/O
Description
node_cnt
uint8_t
O
Number of health check completed nodes
total
uint8_t
O
Total number of nodes scheduled for health check
Attribute
Type
I/O
Description
sts_cnt
uint8_t
O
Total number of node health status in the array
sts
zw_health_sts_t
[]
O
Node health status array
Attribute
Type
I/O
Description
node_id
uint8_t
O
Node ID
Status category derived from network health value:
NW_HEALTH_XXX
Description
sts_cat
uint8_t
O
GREEN
Network health is good.
Table 60 – zw_health_prg_t Structure
Table 61 – zw_health_rpt_t Structure
Table 62 – zw_health_sts_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 35 of 212
YELLOW
Network health is acceptable, but latency can
be observed occasionally.
RED
Network health is insufficient because frames
are dropped.
CRITICAL
Network health is critical because Z-Wave node
is not responding at all.
value
uint8_t
O
Calculated network health value.
Table 63 – Additional Information Associated to Network Op and Status
Additional Information
Type,
ZWNET_STS_INFO_XXX
Network Operation,
ZWNET_OP_XXX
Status
OP_XXX
SS_START
ADD_NODE
ADD_NODE_PROTOCOL_START
FW_UPDT_PRG
FW_UPDT
FW_UPLOADING
HEALTH_CHK_PRG
HEALTH_CHK
HEALTH_CHK_PROGRESS
HEALTH_CHK_RPT
HEALTH_CHK
HEALTH_CHK_CMPLT
NODE_RESET,
RM_NODE,
RM_FAILED_ID
DONE, FAILED
NODE_ID
ADD_NODE,
RP_NODE,
NODE_UPDATE
DONE
NW_CHANGE_UPDT
NW_CHANGED,
UPDATE
DONE
FW_DL_PRG
FW_DOWNLD
FW_DOWNLOADING
Attribute
Type
I/O
Description
user
void *
I
From zwnet_init
node
zwnoded_t *
I
Node descriptor of the node that was added, removed, or
updated
Status, ZWNET_NODE_XXX
ZWNET_NODE_XXX
Description
ADDED
Node was added. Application can
retrieve detailed node information now.
REMOVED
Node was removed.
UPDATED
Node was updated. Application can
retrieve updated detailed node
information now.
STATUS_ALIVE
Node status has changed to "alive"
STATUS_DOWN
Node status has changed to "down"
STATUS_SLEEP
Node status has changed to "sleeping"
status
uint8_t
I
RESET
Received notification from node that it
has been reset
Table 64 – zwnet_node_fn Parameters
Table 65 – zwnet_appl_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 36 of 212
Attribute
Type
I/O
Description
user
void *
I
From zwnet_init
Transmission status ZWNET_TX_XXX
OK
Successful.
NO_ACK
Send frame timeout due to no ACK received.
SYS_ERR
System error, the program should exit or restart.
DEST_BUSY
Message has not timed out yet. The destination
host may have a long response time (e.g. sleeping
node).
tx_sts
uint8_t
I
NOROUTE
Frame failed to reach destination host.
Table 66 – pl_info_fn Parameters
Attribute
Type
I/O
Description
usr_ctx
void *
I
User context
lst_ent
struct pl_lst_ent *
I
Provisioning list entry
Attribute
Type
I/O
Description
user
void *
I
User context which was passed to zwnet_init
Attribute
Type
I/O
Description
msg
void *
I
Pointer to text messages
Attribute
Type
I/O
Description
dev_cfg_ct
x
void *
I
User-specified device configuration context.
vid
uint16_t
I
Vendor or Manufacturer ID.
ptype
uint16_t
I
Product Type ID.
pid
uint16_t
I
Product ID.
dev_rec
dev_rec_t *
O
Device record found.
return
intONon-zero on found; zero on not found.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle from zwnet_init
Table 67 – zwnet_net_err_fn Parameters
Table 68 – print_fn Parameter
Table 69 – zwnet_dev_rec_find_fn Parameter
4.2.2zwnet_exit
Clean up network and save detailed node information into file.
4.2.3zwnet_reset
Reset the state of the ZIPGW attached controller, losing all network information. Upon
completion, it will get the controller’s node information.
Table 70 – zwnet_exit Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 37 of 212
4.3Network Creation
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle from zwnet_init.
add
uint8_t
I
Operation
0 – Remove.
1 – Add.
sec2_param
sec2_add_prm_t
*
I
Parameters for adding node with Security 2 protocol.
This parameter is ignored when non-security 2 ZIPGW
is detected or when removing a node.
incl_on_behalf
intIFlag to indicate enter into inclusion on-behalf (iob)
mode; 1=enter into iob mode, 0=normal add node.
This parameter is ignored when parameter add = 0 (i.e.
remove node).
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
usr_param
void *
O
User-defined parameter used in callback.
cb
add_node_sec2_fn
O
Callback to report joining device requested keys and/or
status of Device Specific Key (DSK).
dsk
char *
O
Optional Device Specific Key (DSK) of the joining node for
verification. Note that, if this is not NULL, no DSK callback
will be executed.
The format of the DSK must be as shown in the example:
34028-23669-20938-46346-33746-07431-56821-14553
Attribute
Type
I/O
Description
usr_param
void *
I
User-supplied parameter when calling zwnet_add or
zwnet_fail
cb_param
sec2_add_cb_prm
_t *
I
DSK related callback parameters
Attribute
Type
I/O
Description
Callback type as in S2_CB_TYPE_XXX :
XXX
Description
cb_type
uint8_t
O
REQ_KEY
Joining device requested keys
4.3.1zwnet_add
Called by the inclusion controller to add/remove an initiating node to/from the network. On
successful addition, the new node is queried for its endpoints and interfaces, secure and
otherwise. If the interfaces are type sensor, the new node will be configured based on either
the settings passed during network initialization or the default values. It should result in
callbacks to zwnet_node_fn followed by zwnet_notify_fn.
Table 71 – zwnet_add Parameters
Table 72 – sec2_add_prm_t Structure
Table 73 – add_node_sec2_fn Parameters
Table 74 – sec2_add_cb_prm_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 38 of 212
DSK
Joining device DSK keys
req_key
sec2_keys_req_cb_prm_t
O
For cb_type=S2_CB_TYPE_REQ_KEY; the joining
device requested keys and CSA request
dsk
sec2_dsk_cb_prm_t
O
For cb_type=S2_CB_TYPE_DSK; the joining device
DSK keys
Table 75 – sec2_keys_req_cb_prm_t Structure
Attribute
Type
I/O
Description
req_keys
uint8_t
O
Requested keys (bit mask) by the joining node.
req_csa
uint8_t
O
Flag to indicate joining node is requesting Client-side
Authentication (CSA).
csa_pin
char [12]
O
CSA 10-digit PIN to be entered into the joining node if
req_csa is non-zero.
Example: 34028-23669 (Note: The hyphen is for display
purposes, it is not part of the PIN.)
Attribute
Type
I/O
Description
pin_required
uint8_t
O
Indicate whether the user is required to enter five-digit
pin. 1=required; 0=not required.
dsk
char *
O
Device Specific Key (DSK) of the joining node for user to
verify. Note that the first five digits of DSK are missing if
pin_required=1.
Example of complete DSK:
34028-23669-20938-46346-33746-07431-56821-14553
Example of DSK with first five digits missing:
-23669-20938-46346-33746-07431-56821-14553
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
accept
intI1=accept; 0=reject.
dsk
char *
I
Complete Device Specific Key (DSK) of the added node if
accept=1; else this can be NULL.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Table 76 – sec2_dsk_cb_prm_t Structure
4.3.2Secure Inclusion
4.3.2.1zwnet_add_sec2_accept
Accept or reject newly added node into Security 2 mode. This function should be called only
after receiving Security 2 DSK callback during add or replace failed node operation.
Table 77 – zwnet_add_sec2_accept Parameters
4.3.2.2zwnet_add_sec2_grant_key
Grant keys and CSA to the newly added node in Security 2 mode. This function should be called
only after receiving Security 2 requested keys callback during add or replace failed node
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 39 of 212
operation. Note that it is possible to not grant any key and yet to accept S2 bootstrapping, i.e.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
Bit mask of zero or more security 2 granted keys as in
SEC_KEY_BITMSK_XXX
XXX
Description
S2_K0
S2: Class key 0 (Unauthenticated devices)
S2_K1
S2: Class key 1 (Authenticated devices)
S2_K2
S2: Class key 2 (Access control devices)
granted_keys
uint8_t
I
S0
S0: Legacy security network key
grant_csa
uint8_t
I
Grant client-side authentication (CSA); 1=grant, 0=reject. If
joining node didn't request CSA, it is ignored.
accept_s2
uint8_t
I
Acceptance of S2 bootstrapping process; 1=S2
bootstrapping is accepted and MUST continue, 0=S2
bootstrapping is not accepted and MUST be interrupted
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
dsk
char *
I
Device Specific Key (DSK). The format of the DSK must be
eight groups of five digits separated by '-' as shown in the
example:
34028-23669-20938-46346-33746-07431-56821-14553
info
pl_info_t *
I
Buffer to store additional information of the device
(optional). Information type PL_INFO_TYPE_NW_STS must
not be used in this function.
info_cnt
uint8_t
I
Number of additional information stored in "info".
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
Information type, PL_INFO_TYPE_XXX
XXX
Description
PROD_TYPE
Product type
PROD_ID
Product ID
INC_INTV
Smart Start inclusion request interval used
by the node
type
uint8_t
O
UUID16
UUID assigned to the node
granted_keys=0 and accept_s2=1.
Table 78 – zwnet_add_sec2_grant_key Parameters
4.3.3SmartStart Provisioning
4.3.3.1zwnet_pl_add
Add a provisioning list entry.
Table 79 – zwnet_pl_add Parameters
Table 80 – pl_info_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 40 of 212
NAME
Device name
LOC
Device location
INCL_STS
Inclusion status of the provisioning list
entry
S2_GRNT
S2 keys to be granted
BOOT_MODE
Bootstrapping mode
NW_STS
Network status of the provisioning list
entry
info
union
O
Provisioning list entry information. The union of the
following:
name
char [63]
O
For type PL_INFO_TYPE_NAME; device name string in UTF-8
encoding which must be compliant with the following rules:
The combined "name" and "loc" strings MUST NOT
be longer than 62 bytes (excluding NUL terminating
char)
The escape sequence "\." (backslash followed by
dot) must be used for encoding the dot character '.'
MUST NOT contain the underscore character '_'
MUST NOT end with the dash character '-'
MUST be case insensitive
loc
char [63]
O
For type PL_INFO_TYPE_LOC; device location string in UTF8 encoding with same restrictions as "name" field.
prod_type
pl_prod_type_t
O
For type PL_INFO_TYPE_PROD_TYPE; product type.
prod_id
pl_prod_id_t
O
For type PL_INFO_TYPE_PROD_ID; product ID.
interval
uint8_t
O
For type PL_INFO_TYPE_INC_INTV; Smart Start inclusion
request interval in unit of 128 seconds. This field must have
value ranging from 5 to 99.
uuid
pl_uuid_t
O
For type PL_INFO_TYPE_UUID16; UUID assigned to the
node as defined by IETF RFC 4122.
nw_sts
pl_nw_sts_t
O
For type PL_INFO_TYPE_NW_STS; network status of the
provisioning list entry.
For type PL_INFO_TYPE_INCL_STS; inclusion status of the
provisioning list entry, PL_INCL_STS_XXX.
XXX
Description
PENDING
The node will be included in the network
when it issues SmartStart inclusion
requests.
incl_sts
uint8_t
O
PASSIVE
The node is in the Provisioning List, but it
has been decided by the supporting or
controlling node that the node is unlikely
to issue SmartStart inclusion requests in
the near future.
SmartStart Inclusion requests will be
ignored by the Z/IP Gateway. All entries
with this status MUST be updated to the
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 41 of 212
“Pending” status (PL_INCL_STS_PENDING)
when a Provisioning List Iteration Get
Command is received.
IGNORED
SmartStart inclusion requests sent by the
node in the Provisioning List entry will be
ignored until the status is changed again by
a Z/IP Client or controlling node.
grnt_keys
uint8_t
O
For type PL_INFO_TYPE_S2_GRNT; S2 keys to be granted,
see SEC_KEY_BITMSK_XXX.
For type PL_INFO_TYPE_BOOT_MODE; Bootstrapping
mode, as in PL_BOOT_MODE_XXX.
XXX
Description
S2
The node MUST manually be set to Learn
Mode and follow the S2 bootstrapping
instructions (if any).
boot_mod
e
uint8_t
O
SMART_STRT
The node will be included and S2
bootstrapped automatically using the
Smart Start functionality.
Table 81 – pl_prod_type_t Structure
Attribute
Type
I/O
Description
generic_cls
uint8_t
O
Generic device class
specific_cls
uint8_t
O
Specific device class
icon_type
uint16_t
O
Installer icon type
Attribute
Type
I/O
Description
manf_id
uint16_t
O
Manufacturer ID
prod_type
uint16_t
O
Product type
prod_id
uint16_t
O
Product ID
app_ver
uint8_t
O
Application version
app_sub_ver
uint8_t
O
Application sub version
Attribute
Type
I/O
Description
Presentation format, as in UUID_PRES_XXX.
XXX
Description
32HEX
32 hex digits, no delimiters
16ASCII
16 ASCII chars, no delimiters
SN_32HEX
"sn:" followed by 32 hex digits, no
delimiters
SN_16ASCII
"sn:" followed by 16 ASCII chars, no
delimiters
pres_fmt
uint16_t
O
UUID_32HEX
"UUID:" followed by 32 hex digits, no
delimiters
Table 82 – pl_prod_id_t Structure
Table 83 – pl_uuid_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
UUID assigned to the node as defined by IETF RFC 4122.
Table 84 – pl_nw_sts_t Structure
Attribute
Type
I/O
Description
node_id
uint8_t
O
NodeID that has been assigned to the Provisioning List
entry during network inclusion. 0 indicates that the NodeID
is not assigned.
network status of the Provisioning List entry, as in
PL_NW_STS_XXX.
XXX
Description
NOT_INCL
The node in the Provisioning List is not
currently included (added) in the network.
ADDED
The node in the Provisioning List is included
in the network and is functional.
status
uint8_t
O
FAILED
The node in the Provisioning List has been
included in the Z-Wave network but is now
marked as failing.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
dsk
char *
I
Device Specific Key (DSK). The format of the DSK must be
eight groups of five digits separated by '-' as shown in the
example:
34028-23669-20938-46346-33746-07431-56821-14553
cb
pl_info_fn
I
Callback to report provisioning entry information.
usr_ctx
void *
I
User context used in callback.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
usr_ctx
void *
I
User context
lst_ent
pl_lst_ent_t
*
I
Provisioning list entry
Attribute
Type
I/O
Description
4.3.3.2zwnet_pl_get
Get a provisioning list entry information through callback.
Table 85 – zwnet_pl_get Parameters
Table 86 – pl_info_fn Parameters
Table 87 – pl_lst_ent_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 43 of 212
dsk
char [48]
O
Device Specific Key (DSK). The format of the DSK must be
eight groups of five digits separated by '-' as shown in the
example:
34028-23669-20938-46346-33746-07431-56821-14553
info
pl_info_t[10]
O
Information of the device.
info_cnt
uint8_t
O
Number of information stored in "info". If zero, the dsk is
not found in the provisioning list.
4.3.3.3zwnet_pl_del
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
dsk
char *
I
Device Specific Key (DSK). The format of the DSK must be
eight groups of five digits separated by '-' as shown in the
example:
34028-23669-20938-46346-33746-07431-56821-14553
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
cb
pl_list_fn
I
Callback to report provisioning list entries.
usr_ctx
void *
I
User context used in callback.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
usr_ctx
void *
I
User context.
pl_list
pl_lst_ent_t
*
I
Provisioning list.
ent_cnt
uint8_t
I
Number of entries in provisioning list 'pl_list'.
lst_cmplt
intIFlag to indicate whether all the entries in 'pl_list' represent the
whole list in ZIPGW. 1=all the entries have been retrieved from
ZIPGW; 0=some of the entries were not retrieved due to error.
Attribute
Type
I/O
Description
Net
zwnet_t *
I
Network handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Delete a provisioning list entry.
Table 88 – zwnet_pl_del Parameters
4.3.3.4zwnet_pl_list_get
Get all provisioning entries through callback.
Table 89 – zwnet_pl_list_get Parameters
Table 90 – pl_list_fn Parameters
4.3.3.5zwnet_pl_list_del
Delete all provisioning list entries.
Table 91 – zwnet_pl_list_del Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 44 of 212
4.4Network Management
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
cb
get_dsk_fn
I
Callback to report ZIPGW DSK when joining another S2
capable Z-Wave network.
Note that the callback will not be invoked if the ZIPGW is
not S2 capable or this API is invoked to leave a Z-Wave
network.
usr_ctx
void *
I
User context used in callback.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
nodeid
uint8_t
I
Failed node ID. This parameter is ignored when
rplc_on_behalf = 1.
replace
uint8_t
I
Operation
0 – Remove.
1 – Replace with a new initiating node.
sec2_param
sec2_add_prm_t *
I
Optional parameters for replacing node with Security
2 protocol. This parameter is ignored when removing
failed node (i.e. replace = 0).
rplc_on_behalf
intIFlag to indicate enter into "replace failed node" onbehalf (rob) mode; 1=enter into rob mode, 0=normal
replace failed node. This parameter is ignored when
parameter replace = 0.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
4.4.1zwnet_initiate
Indicates willingness to add/remove itself to/from the network or become the new primary.
This action is paired with a corresponding zwnet_add or zwnet_migrate from another
controller. Upon completion, it will rebuild its internal network structure if it has been added
into a new network.
Table 92 – zwnet_initiate Parameters
4.4.2zwnet_fail
Called by the inclusion controller to replace/remove a failed node in the network. When
replaced, information on the node will be refreshed.
Table 93 – zwnet_fail Parameters
4.4.3zwnet_update
This function updates network topology, routing table, and internal network data structures.
As it may take several iterations to complete if there are nodes that are out of direct range,
calling of this function should be scheduled at a time of low network activity.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 45 of 212
4.4.4zwnet_abort
Attribute
Type
I/O
Description
net
zwnet_t *
I
network handle from zwnet_init
return
zwnetd_t
*
O
network descriptor
Attribute
Type
I/O
Description
id
uint32_t
O
Z-Wave Home ID
ctl_id
uint8_t
O
Z/IP controller node ID
Z/IP controller role. A bit-mask of ZWNET_CTLR_ROLE_XXX :
ZWNET_CTLR_ROLE_PROXY
Support Network
Management Proxy
ZWNET_CTLR_ROLE_INCL
Support Network
Management Inclusion
ctl_role
uint8_t
O
ZWNET_CTLR_ROLE_PRI
Support Network
Management Primary
Z/IP controller capabilities. A bit-mask of ZWNET_CTLR_CAP_XXX:
ZWNET_CTLR_CAP_S2
Support Security 2 protocol
ZWNET_CTLR_CAP_INC_ON_BEHALF
Support inclusion on-behalf
ZWNET_CTLR_CAP_SMART_START
Support Smart Start
ZWNET_CTLR_CAP_IMA
Support IMA (Z-Wave
Network Installation and
maintenance)
ctl_cap
uint8_t
O
ZWNET_CTLR_CAP_MULTICAST
Support multicast
addressing
Abort current operation. The user should be aware that aborting certain network operations,
such as add, replace, or joining/leaving a Z-Wave network depends on the stage at which the
operation is aborted and hence the operation may not be undone completely. For example,
once the callback function, zwnet_notify_fn, delivers the status of
ADD_NODE_PROTOCOL_DONE, RP_NODE_PROTOCOL_DONE, or INI_PROTOCOL_DONE (for
joining a network), the device has already been added to the Z-Wave network, and aborting
the operation at this moment still results in the node being added. To undo the operation
completely, the user needs to execute the remove node operation manually. Similarly, for
leaving a Z-Wave network, if the callback function, zwnet_notify_fn, delivers the status of
INI_PROTOCOL_DONE, the Z/IP gateway attached controller has already been removed from
the Z-Wave network, and aborting the operation at this moment is considered too late. The
user has to manually execute the API zwnet_initiate command to rejoin the Z-Wave network.
4.5Network Attributes and Traversal
4.5.1zwnet_get_desc
Get the read-only network descriptor for node enumeration and other purposes.
Table 94 – zwnet_get_desc Parameters
Table 95 – zwnetd_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 46 of 212
ZWNET_CTLR_CAP_IDENTIFY
Capable to identify itself
(e.g. blinking a LED)
Z/IP controller Z-Wave role, ZW_ROLE_XXX:
ZW_ROLE_UNKNOWN
Unknown
ZW_ROLE_SIS
SIS
ZW_ROLE_INCLUSION
Inclusion controller
ZW_ROLE_PRIMARY
Primary controller
ctl_zw_role
uint8_t
O
ZW_ROLE_SECONDARY
Secondary controller
user
void *
O
User context which was passed to zwnet_init
plt_ctx
void *
O
Platform context for printing of output text messages
4.5.2zwnet_version
Attribute
Type
I/O
Description
ver
uint8_t *
O
Version
subver
uint8_t *
O
Sub version
patch_ver
uint8_t *
O
Patch version
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
noded
zwnoded_t *
O
Node handle
return
IntOZW_ERR_NONE on success; else ZW_ERR_XXX
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
nodeid
uint8_t
I
Node ID.
noded
zwnoded_t *
O
Node descriptor (Can be NULL, if the purpose is to verify the
existence of a node).
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
nodeid
uint8_t
I
Node ID
Get the home controller API version, subversion and patch version.
Table 96 – zwnet_version Parameters
4.5.3zwnet_get_node
Get the first node (local controller) in the network.
Table 97 – zwnet_get_node Parameters
4.5.4zwnet_get_node_ by_id
Get node with specified node ID in the network.
Table 98 – zwnet_get_node_by_id Parameters
4.5.5zwnet_get_ep_ by_id
Get endpoint with specified node and endpoint ID in the network.
Table 99 – zwnet_get_ep_by_id Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 47 of 212
epid
uint8_t
I
Endpoint ID
epd
zwepd_t *
O
Endpoint descriptor (Can be NULL, if the purpose is to verify
the existence of an endpoint).
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
4.5.6zwnet_get_if_ by_id
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
nodeid
uint8_t
I
Node ID.
epid
uint8_t
I
Endpoint ID.
cls
uint16_t
I
Interface ID (CC).
ifd
zwifd_t *
O
Interface descriptor (Can be NULL, if the purpose is to verify
the existence of an interface).
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
Buffer (min. size of 233 bytes) to store all the node status.
Individual node status (ZWNET_NODE_STS_XXX) can be
accessed using the node ID as index to the buffer.
ZWNET_NODE_STS_SLEEP
Node is sleeping.
ZWNET_NODE_STS_DOWN
Node is down.
node_sts_buf
uint8_t *
O
ZWNET_NODE_STS_UP
Node is alive.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
node_id
uint8_t
I
Node ID (ranging from 1 to 232).
return
uint8_t
O
Node status (ZWNET_NODE_STS_XXX).
Get interface with specified node, endpoint and interface id in the network.
Table 100 – zwnet_get_if_by_id Parameters
4.5.7zwnet_all_node_sts_get
Get all node status.
Table 101 – zwnet_all_node_sts_get Parameters
4.5.8zwnet_node_sts_get
Get node status.
Table 102 – zwnet_node_sts_get Parameters
4.6Advanced Network APIs
These are APIs that are not required for normal operation but are provided for special
purposes.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 48 of 212
4.6.1zwnet_migrate
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
cb
get_dsk_fn
I
Callback to report ZIPGW DSK when joining another S2
capable Z-Wave network.
Note that the callback will not be invoked if the ZIPGW is
not S2 capable or this API is invoked to leave a Z-Wave
network.
usr_ctx
void *
I
User context used in callback.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t
*
I
Network handle from zwnet_init.
return
void *
O
User context that was passed as parameter when calling zwnet_init.
This API is called by the primary controller to transfer its primary controller role to another
initiating controller. The initiating controller must not be currently part of this network if it
runs on older firmware, and a new node will be created with similar effect as with zwnet_add.
With current firmware, the initiating controller can be a secondary controller in the network; in
this case, no new node is created. Upon completion, the controller invoking this function will
become the secondary controller. It will then get node information from the new primary
controller and resolve the primary controller node ID into the IPv6 address.
4.6.2zwnet_initiate_classic
This API is provided mainly for backward compatibility with older Z-Wave controllers that
support only classic learn mode. For description and usage, please refer to the previous
section, zwnet_initiate.
Table 103 – zwnet_initiate_classic Parameters
4.6.3zwnet_health_chk
Start network health check on all but sleeping nodes. This is part of the Installation and
Maintenance (IMA) utility function. It is recommended that the network health check be run
during the period when there are few or no network activities running as the process may take
a long time to complete.
4.6.4zwnet_identify
Instruct the controller to identify itself (for example, by blinking an LED in a specific manner).
This API is used to support Z-Wave Plus v2 node (including Z/IP gateway controller node),
which must have a visible LED to be used for an Identify function. If the node is itself a light
source, e.g., a light bulb, this may be used in place of a dedicated LED.
4.6.5zwnet_get_user
Get the user context associated with the network handle.
Table 104 – zwnet_get_user Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 49 of 212
4.6.6zwnet_send_nif
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
noded
zwnoded_t *
I
Handle of the destination node that will receive the node
information frame. NULL for broadcast of NIF.
broadcast
uint8_t
I
Broadcast flag. 1= broadcast; 0= single cast.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
handle
uint16_t
I
Handle of the polling request to remove.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
usr_token
uint32_t
I
User token of the polling request to remove.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle
buf
void *
I
Buffer that contains the network preference
buf_size
uint16_t
I
Buffer size in bytes
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
buf
void **
O
Return buffer that contains the network preference.
buf_size
uint16_t *
O
Buffer size in bytes.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX
Send node information frame (NIF) to a node or broadcast to the network.
Table 105 – zwnet_send_nif Parameters
4.6.7zwnet_poll_rm
Remove a polling request.
Table 106 – zwnet_poll_rm Parameters
4.6.8zwnet_poll_rm_mul
Remove multiple polling requests.
Table 107 – zwnet_poll_rm_mul Parameters
4.6.9zwnet_pref_set
Store network preference into persistent storage.
Table 108 – zwnet_pref_set Parameters
4.6.10 zwnet_pref_get
Retrieve network preference from persistent storage.
Table 109 – zwnet_pref_get Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 50 of 212
Note: Caller MUST free the return buffer "buf" if the call is
successful.
4.6.11 zwnet_client_pref_set
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
client_id
uint32_t
I
User-defined client ID to identify the preference.
buf
void *
I
Buffer that contains the client preference.
buf_size
uint16_t
I
Buffer size in bytes.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
client_id
uint32_t
I
User-defined client ID to identify the preference.
buf
void **
O
Return buffer that contains the client preference.
buf_size
uint16_t *
O
Buffer size in bytes.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Note: Caller MUST free the return buffer "buf" if the call is
successful.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle.
cb
get_dsk_fn
I
Callback to report ZIPGW DSK.
usr_ctx
void *
I
User context used in callback.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
usr_ctx
void *
I
User context
dsk
char *
I
ZIPGW DSK string
Store client preference into persistent storage.
Table 110 – zwnet_client_pref_set Parameters
4.6.12 zwnet_client_pref_get
Retrieve client preference from persistent storage.
Table 111 – zwnet_client_pref_get Parameters
4.6.13 zwnet_sec2_get_dsk
Get ZIPGW Security 2 DSK.
Table 112 – zwnet_sec2_get_dsk Parameters
Table 113 – get_dsk_fn Parameters
4.7Network Utilities APIs
These are APIs that provide IPv4/6 network utilities unrelated to Z-Wave network to ease
programmers who are unfamiliar to the IPv4/6 network C APIs.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 51 of 212
4.7.1zwnet_ip_aton
Attribute
Type
I/O
Description
addr_str
char *
I
NULL terminated IPv4 / IPv6 address string.
addr_buf
uint8_t *
O
Buffer that should be at least 16-bytes long to store the
result.
ipv4
int *
O
Flag to indicate the converted numeric IP address is IPv4 or
IPv6. 1=IPv4; 0=IPv6.
return
intOZero on success; non-zero on failure.
Attribute
Type
I/O
Description
addr
uint8_t *
I
IPv4 / IPv6 address in numerical form.
addr_str
char *
O
Buffer to store the converted address string.
addr_str_len
intIThe size of the addr_str in bytes.
ipv4
intIFlag to indicate the addr parameter is IPv4 or IPv6.
1=IPv4; 0=IPv6.
return
intOZero on success, non-zero on failure.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle from zwnet_init.
dest_ip
uint8_t*
I
Destination host address either IPv4 or IPv6 according to
use_ipv4 flag
local_ip
uint8_t*
O
Buffer of 16-byte to store the local address (either IPv4
or IPv6 according to use_ipv4 flag).
use_ipv4
intIFlag to indicate IP address type. 1= IPv4; 0= IPv6.
return
intOZero on success, non-zero on failure.
Attribute
Type
I/O
Description
net
zwnet_t *
I
Network handle from zwnet_init
return
uint16_t
O
The Z/IP client listening port number.
Utility to convert IPv4 / IPv6 address string to numeric equivalent.
Table 114 – zwnet_ip_aton Parameters
4.7.2zwnet_ip_ntoa
Utility to convert IPv4 / IPv6 address in numerical form to string equivalent.
Table 115 – zwnet_ip_ntoa Parameters
4.7.3zwnet_local_addr_get
Utility to get local address that is reachable by destination host.
Table 116 – zwnet_local_addr_get Parameters
4.7.4zwnet_listen_port_get
Utility to get local Z/IP listening port number.
Table 117 – zwnet_listen_port_get Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 52 of 212
5Node API
Attribute
Type
I/O
Description
nodeid
uint8_t
O
Z-Wave Node ID
propty
uint8_t
O
Properties of the node (bit-mask): NODE_PROPTY_XXX.
Vid
uint16_t
O
Z-Wave Vendor ID.
type
uint16_t
O
Vendor type.
Pid
uint16_t
O
Z-Wave Product ID.
Net
zwnet_t *
O
Network handle.
dev_id
dev_id_t
O
Device ID.
proto_ver
uint16_t
O
Z-Wave Protocol Version.
app_ver
uint16_t
O
Application Version.
lib_type
uint8_t
O
Z-Wave Library Type.
category
uint8_t
O
Device category, DEV_XXX.
sensor
uint8_t
O
Flag to indicate whether the node is a sensor (FLIRS).
sleep_cap
uint8_t
O
Flag to indicate the node is capable to sleep (i.e. nonlistening and support Wake up CC).
listen
uint8_t
O
Flag to indicate the node is always listening.
zwsw_ver_cnt
uint8_t
O
Number of valid Z-Wave software version types stored in
the zwsw_ver array.
zwsw_ver
zwsw_ver_t[]
O
Z-Wave software version information.
s2_keys_valid
uint8_t
O
Flag to indicate whether s2_grnt_keys is valid.
s2_grnt_keys
uint8_t
O
Security 2 granted keys (bit-mask), see
SEC_KEY_BITMSK_XXX
NOTE: This is valid only s2_keys_valid = 1.
s2_dsk
char[]
O
S2 DSK. If s2_dsk[0] == '\0', the DSK is unavailable for this
node.
Node property bit-mask
Description
NODE_PROPTY_SECURE_CAP_S0
Node capable of being included securely S0.
NODE_PROPTY_SECURE_CAP_S2
Node capable of being included securely S2.
NODE_PROPTY_ADD_SECURE
Node is included securely.
NODE_PROPTY_ADD_INSECURE
Node is included insecurely.
This corresponds to a Z-Wave device (node) and is coupled with Manufacturer Specific CC and
Node Naming and Location CC information. It also contains APIs for sleep command queuing
and command recording.
5.1zwnoded_t
This is the descriptor used to access Z-Wave nodes. Only name and location fields are
writeable.
Table 118 – zwnoded_t Structure
Table 119 – NODE_PROPTY_XXX
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 53 of 212
NODE_PROPTY_IDENTIFY_CAP
Node is capable of identifying itself (e.g. blinking
LED three times).
Table 120 – dev_id_t Structure
Attribute
Type
I/O
Description
Device ID type: DEV_ID_TYPE_XXX, where:
DEV_ID_TYPE_OEM
OEM factory default
DEV_ID_TYPE_SN
Serial number
type
uint8_t
O
DEV_ID_TYPE_RANDOM
Pseudo random
number
Device ID data format: DEV_ID_FMT_XXX, where:
DEV_ID_FMT_UTF
UTF-8
format
uint8_t
O
DEV_ID_FMT_BIN
Binary and MUST be
displayed as
hexadecimal, e.g.
h’30313233A1
len
uint8_t
O
Device ID length
dev_id
uint8_t[MAX_DEV_ID_LEN
+ 1]
O
Device ID
Attribute
Type
I/O
Description
Version type: VER_TYPE_XXX, where
VER_TYPE_SDK
SDK version.
VER_TYPE_APPL_FRW_API
Application framework
API version.
VER_TYPE_HOST_INTF
Host interface version;
the version of the API
exposed to a host CPU.
VER_TYPE_ZWAVE_PROTO
Z-Wave protocol
version.
type
uint8_t
O
VER_TYPE_APPL
Application software
version.
major
uint8_t
O
Major version.
minor
uint8_t
O
Minor version.
patch
uint8_t
O
Patch version.
build
uint16_t
O
Build number. Zero if unused.
Attribute
Type
I/O
Description
noded
zwnoded_t
*
I
Node handle
Table 121 – zwsw_ver_t Structure
5.2zwnode_get_net
Get handle to the network containing this node.
Table 122 – zwnode_get_net Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 54 of 212
return
zwnet_t *
O
Network handle
5.3zwnode_get_next
Attribute
Type
I/O
Description
noded
zwnoded_t
*
I
Node handle.
next
zwnoded_t
*
O
Next node handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
noded
zwnoded_t
*
I
Node handle.
epd
zwepd_t *
O
Endpoint handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
noded
zwnoded_t
*
I
Node handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
noded
zwnoded_t
*
I
Node handle
Get next node in network. The first, i.e., local controller node may be obtained from
zwnet_get_node.
Table 123 – zwnode_get_next Parameters
5.4zwnode_get_ep
Get first endpoint in the node.
Table 124 – zwnode_get_ep Parameters
5.5zwnode_update
Updates node status and information.
Table 125 – zwnode_update Parameters
5.6zwnode_identify
Instruct the node to identify itself. This API is to support Z-Wave Plus v2 node, which must have
a visible LED to be used for an Identify function. If the node is itself a light source, e.g., a light
bulb, this may be used in place of a dedicated LED.
Table 126 – zwnode_identify Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 55 of 212
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
5.7zwnode_get_ext_ver
Attribut
e
Type
I/O
Description
noded
zwnoded_t *
I
Node descriptor.
return
ext_ver_t *
O
Extended version information if the node supports it; else
returns NULL.
Note: Caller has to free the returned extended version
information.
Attribute
Type
I/O
Description
hw_ver
uint8_t
I
Hardware version.
fw_cnt
uint8_t
I
Number of firmwares in the device, excluding the Z-Wave
firmware.
fw_ver
uint16_t[]
I
Firmware versions place holder as indicated in fw_cnt.
Attribut
e
Type
I/O
Description
noded
zwnoded_t *
I
Node descriptor.
on
uint8_t
I
1=turn on multi command encapsulation; 0=turn off and
flush (send) the commands in the buffer.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribut
e
Type
I/O
Description
noded
zwnoded_t *
I
Node descriptor.
on
uint8_t *
O
state: 1=on; 0=off.
Get extended version information.
Table 127 – zwnode_get_ext_ver Parameters
5.8Advanced Node APIs
Table 128 – ext_ver_t Structure
These are APIs that should not be used for normal operation but are provided for debugging
purposes.
5.8.1zwnode_mul_cmd_ctl_set
Turn on/off multi command encapsulation capability. By default, if a node supports Multicommand CC, the multi command encapsulation capability is turned on automatically.
Table 129 – zwnode_mul_cmd_ctl_set Parameters
5.8.2zwnode_mul_cmd_ctl_get
Get the current state of multi command encapsulation.
Table 130 – zwnode_mul_cmd_ctl_get Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 56 of 212
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 57 of 212
6Endpoint API
Attribute
Type
I/O
Description
generic
uint8_t
O
Z-Wave Generic device class
specific
uint8_t
O
Z-Wave Specific device class
epid
uint8_t
O
Endpoint number
nodeid
uint8_t
O
Node ID
aggr_ep_cnt
uint8_t
O
Total number of end point members that are represented
by this aggregated end point. Zero means this endpoint is
NOT an aggregated end point
aggr_members
uint8_t[126]
O
Buffer to store the end point members that are
represented by this aggregated end point
net
zwnet_t *
O
Network handle
name
char [33]
O
User configured name string of the endpoint
loc
char [33]
O
User configured location string of the endpoint
zwplus_info
zwplus_info_t
O
Z-Wave Plus information CC
Attribute
Type
I/O
Description
zwplus_ver
uint8_t
O
Version. Zero indicates this node is non-Z-Wave Plus.
node_type
uint8_t
O
Node type.
role_type
uint8_t
O
Role type.
instr_icon
uint16_t
O
Installer icon type.
usr_icon
uint16_t
O
User icon type.
Attribute
Type
I/O
Description
epd
zwepd_t *
I
Endpojnt handle
noded
zwnoded_t
*
O
Node handle
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX
This corresponds to Z-Wave channels or instances. The APIs here are mostly accessor
functions.
6.1zwepd_t
This is the read-only descriptor used to access endpoints.
Table 131 – zwepd_t Structure
6.2zwep_get_node
Get containing node handle.
Table 132 – zwplus_info_t structure
Table 133 – zwep_get_node Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 58 of 212
6.3zwep_get_next
Attribute
Type
I/O
Description
epd
zwepd_t *
I
Endpojnt handle.
nxt_epd
zwepd_t *
O
Next endpoint handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
epd
zwepd_t *
I
Endpojnt handle.
Ifd
zwifd_t *
O
Interface handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
epd
zwepd_t *
I
Endpojnt handle.
nameloc
zw_nameloc_t *
I
NULL terminated name and location strings.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
name
char[33]
I
Node name
loc
char[33]
I
Node location
Get next endpoint in node.
Table 134 – zwep_get_next Parameters
6.4zwep_get_if
Get first interface in endpoint.
Table 135 – zwep_get_if Parameters
Note: Caller must free ifd->data if ifd->data_cnt is greater than zero.
6.5zwep_nameloc_set
Set endpoint name and location string for device regardless of whether the endpoint has Node
Naming And Location interface. If it does, the strings will be sent to the interface physically for
storage in the device.
Table 136 – zwep_nameloc_set Parameters
Table 137 – zw_nameloc_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 59 of 212
7Interface API
Attribute
Type
I/O
Description
cls
uint8_t
O
CC.
ver
uint8_t
O
CC version. Can be upgraded by device database.
real_ver
uint8_t
O
Real Version of the CC that the device supports.
Properties of the interface (bit-mask): IF_PROPTY_XXX where:
IF_PROPTY_SECURE
Interface can be accessed
securely bit-mask.
IF_PROPTY_UNSECURE
Interface can be accessed
insecurely bit-mask.
IF_PROPTY_HIDDEN
Interface is hidden. NOTE: This
property is for internal use only;
user application MUST NOT use
this.
IF_PROPTY_HIDDEN_POLL
Interface is hidden but device
polling is enabled. NOTE: This
property is for internal use only;
user application MUST NOT use
this.
IF_PROPTY_ALRM_EVT_CLR
Interface is capable to sent event
clear notification. NOTE: This bitmask is only valid for
Alarm/Notification CC.
IF_PROPTY_BSNSR_EVT_CLR
Interface is capable of sending
event clear. NOTE: This bit-mask
is only valid for binary sensor CC.
propty
uint8_t
O
IF_PROPTY_ALRM_SNSR_EVT_CLR
Interface is capable of sending
event clear. NOTE: This bit-mask
is only valid for the Alarm Sensor
CC.
epid
uint8_t
O
Endpoint number.
nodeid
uint8_t
O
Node ID.
This corresponds to Z-Wave CCs coupled with the corresponding Version CC information.
Some of the CCs, such as security CC, multi-channel CC, and multi-command CC, are handled
transparently. Basic CC is added automatically to all endpoints even if it is not listed in the
endpoint’s "multichannel capability report". Individual CCs are categorized into Network,
Management, Transport and Application CCs. All Transport CCs are handled by ZIPGW.
7.1zwifd_t
This is the read-only descriptor used to access interfaces.
Table 138 – zwifd_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 60 of 212
net
zwnet_t
*
O
Network handle.
7.2zwif_get_ep
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
epd
zwepd_t *
O
Endpoint handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
nxt_ifd
zwifd_t *
O
Next interface handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
cmd
uint8_t *
I
Command packet.
len
intILength of cmd in bytes.
cb
tx_cmplt_cb_t
I
Completion callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
……I
Parameters of zwif_xxx.
poll_req
zwpoll_req_t *
I/O
Poll request.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Get containing endpoint.
Table 139 – zwif_get_ep Parameters
7.3zwif_get_next
Get next interface in endpoint.
Table 140 – zwif_get_next Parameters
Note: Caller must free nxt_ifd->data if nxt_ifd->data_cnt is greater than zero.
7.4zwif_exec
Execute a command on an interface (intended for automation).
Table 141 – zwif_exec Parameters
7.5zwif_xxx_poll
Polling variant of zwif_xxx_get API. This is meant for the interfaces that follow to perform a
continuous poll instead of a single get.
Table 142 – zwif_xxx_poll Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 61 of 212
Table 143 – zwpoll_req_t Structure
Attribute
Type
I/O
Description
usr_token
uint32_t
I
User-defined token to facilitate deletion of multiple
polling requests.
interval
uint16_t
I
Polling interval in seconds; zero = the smallest possible
interval.
poll_cnt
uint16_t
I
Number of times to poll; zero = unlimited times (i.e.
repetitive polling).
cmplt_cb
zwpoll_cmplt_fn
I
Polling completion callback. NULL if callback is not
required.
usr_param
void *
I
User parameter of polling completion callback.
handle
uint16_t
O
Handle if the request is accepted into the polling queue.
The handle can be used to facilitate deletion of the
polling request.
Attribute
Type
I/O
Description
net
zwnet_t
*
I
Network handle.
handle
uint16_t
I
Handle of the polling request.
usr_token
uint32_t
I
User-defined token to facilitate deletion of multiple polling
requests.
usr_param
void *
I
User parameter.
Table 144 – zwpoll_cmplt_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 62 of 212
8Management CCs Based Interfaces
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
cb
zwrep_group_sup_fn
I
Maximum number of groupings report callback function.
cache
intIFlag: to get data from cached only. If set, no fetching from
real device when cache unavailable.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
max_grp
uint8_t
I
Maximum number of groups.
valid
intIValidity of the report. If 1 the report is valid; else this report
contains no data and should be ignored.
Attribute
Type
I/O
Description
ifd
zwif_t *
I
Group interface handle.
cb
zwrep_group_actv_fn
I
Current active group report callback function.
return
IntOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle
group
uint8_t
I
Current active group
Manufacturer Specific, Node Naming and Location, Z-Wave Plus Info, and Version CCs are
handled in the Node & Endpoint APIs.
8.1Group Interface API
This corresponds to the Association & Multichannel Association CC. Lifelines are automatically
setup and other associations can be preconfigured via the Device Database, rather than by
using these APIs.
8.1.1zwif_group_sup_get
Get information on the maximum number of groupings the given node supports through
report callback function.
Table 145 – zwif_group_sup_get Parameters
Table 146 – zwrep_group_sup_fn Parameters
8.1.2zwif_group_actv_get
Get information on the current active group from a node through report callback function.
Table 147 – zwif_group_actv_get Parameters
Table 148 – zwrep_group_actv_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 63 of 212
8.1.3zwif_group_get
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
group
uint8_t
I
Group ID.
cb
zwrep_group_fn
I
Endpoint list report callback function.
flag
intIFlag, see ZWIF_GET_BMSK_XXX.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
group
uint8_t
I
Group identifier.
max_cnt
uint8_t
I
Maximum number of members the grouping identifier
above supports.
cnt
uint8_t
I
Number of end points in this report.
grp_member
grp_member_t
*
I
An array of cnt group members in the grouping. Note that
the group members may contain non-existence
node/endpoint.
ts
time_t
I
Time stamp. If this is zero, the callback has no data and
hence other parameter values should be ignored.
Attribute
Type
I/O
Description
node_id
uint8_t
I
Node ID
ep_id
uint8_t
I
Endpoint id. Value of 255 denotes node association; other
values denote endpoint association.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
group
uint8_t
I
Group ID.
ep
zwepd_t *
I
An array of recipient endpoints to be added into the grouping.
cnt
uint8_t
I
Number of endpoints in the array "ep".
cb
zwif_grp_rr_fn
I
Completion callback function (optional). NULL if callback is not
required.
user_prm
void *
I
User parameter for the completion callback function (optional).
NULL if not in use.
return
intOZero on success and completion callback will be invoked upon
completion of return route assignments; positive return code
(>0, e.g. ZW_ERR_QUEUED) will be returned if the command is
Get group members information on specified group through zwrep_group_fn report callback
function.
Table 149 – zwif_group_get Parameters
Table 150 – zwrep_group_fn Parameters
Table 151 – grp_member_t structure
8.1.4zwif_group_add
Add endpoints to this group and its containing node’s return routes. It is recommended to add
all endpoints with one call to ensure return routes are set up correctly.
Table 152 – zwif_group_add Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 64 of 212
queued and NO completion callback will be invoked; else
negative return code (ZW_ERR_XXX) will be returned on error.
Table 153 – zwif_grp_rr_fn Parameters
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group interface handle.
status
uint8_t
I
status, RRA_XXX
user_prm
void *
I
User parameter
Return route assignment status
Description
RRA_OK
Successfully assigned return routes
RRA_TX_NO_ACK
No acknowledgement of transmission is received
before timeout
RRA_TX_FAIL
Not possible to transmit data because the Z-Wave
network is busy
RRA_FAIL
Operation failed
Attribute
Type
I/O
Description
ifd
zwif_t *
I
Group interface handle.
group
uint8_t
I
Group ID.
grp_member
grp_member_t
*
I
An array of cnt members to be removed from the grouping.
Node association should be indicated by ep_id=255.
cnt
uint8_t
I
The number of members in the array grp_member. If cnt is
zero, all the members in the group may be removed.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwif_t *
I
Group interface handle.
grp_info
if_grp_info_dat_t
**
O
Grouping information if success; NULL on failure.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
group_cnt
uint16_t
I
Number of supported groups.
valid_grp_cnt
uint16_t
I
Number of valid group information in grp_info[].
dynamic
uint8_t
I
Flag to indicate the group information is dynamic.
1=dynamic; 0=static.
8.1.5zwif_group_del
Remove endpoints from this group.
Table 155 – zwif_group_del Parameters
Table 154 – RRA_XXX
8.1.6zwif_group_info_get
Get detailed group information.
Table 156 – zwif_group_info_get Parameters
Table 157 – if_grp_info_dat_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 65 of 212
grp_info
zw_grp_info_t
*[]
I
Place holder for storing pointers to group information.
Attribute
Type
I/O
Description
grp_num
uint8_t
I
Group number
cmd_ent_cnt
uint8_t
I
Number of entries in command list (cmd_lst)
profile
uint16_t
I
Profile
evt_code
uint16_t
I
Event code
name
char [43]
I
NULL terminated group name string in UTF-8
cmd_lst
grp_cmd_ent_t
[]
I
Place holder for command list
Attribute
Type
I/O
Description
cls
uint16_t
I
CC
cmd
uint8_t
I
Command
8.1.7zwif_group_info_free
Attribute
Type
I/O
Description
grp_info
if_grp_info_dat_t
*
I
Grouping information returned by zwif_group_info_get()
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group command configuration interface handle.
cb
zwrep_grp_cmd_sup_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group command configuration interface handle.
cmd_cap
zwgrp_cmd_cap_t
*
I
Command records supporting capabilities.
Free group information.
Table 158 – zw_grp_info_t Structure
Table 159 – grp_cmd_ent_t Structure
Table 160 – zwif_group_info_free Parameters
8.2Group Command Interface API
This corresponds to the Z-Wave association command configuration CC used to specify
commands in groups within a node.
8.2.1zwif_group_cmd_sup_get
Get information on command records supporting capabilities through report callback function.
Table 161 – zwif_group_cmd_sup_get Parameters
Table 162 – zwrep_grp_cmd_sup_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 66 of 212
Table 163 – zwgrp_cmd_cap_t structure
Attribute
Type
I/O
Description
configurable
uint8_t
O
1=command record is configurable, 0=not configurable type.
config_type
uint8_t
O
Configuration type:
1=value type (only support Basic Set command).
0=command type (support any command).
max_len
uint8_t
O
Maximum command length that can be set.
free_rec
uint16_t
O
Number of free command records that can be set.
total_rec
uint16_t
O
Total number of command records supported.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group command configuration interface handle.
group
uint8_t
I
Grouping identifier.
nodeid
uint8_t
I
Node ID of the node within the grouping specified.
cb
zwrep_grp_cmd_fn
I
Report callback function.
Return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group command configuration interface handle.
group
uint8_t
I
Grouping identifier.
nodeid
uint8_t
I
Node ID of the node within the grouping specified.
cmd_buf
uint8_t *
I
Command and parameters.
len
uint8_t
I
Length of cmd_buf.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Group command configuration interface handle.
group
uint8_t
I
Grouping identifier.
node
uint8_t
I
Node within the grouping specified that should receive the
command specified in cmd_buf.
cmd_buf
uint8_t *
I
Command and parameters.
len
uint8_t
I
Length of cmd_buf.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
8.2.2zwif_group_cmd_get
Get command record for a node within a given grouping identifier through report callback
function.
Table 164 – zwif_group_cmd_get Parameters
Table 165 – zwrep_grp_cmd_fn Parameters
8.2.3zwif_group_cmd_set
Specify which command should be sent to a node within a given group.
Table 166 – zwif_group_cmd_set Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 67 of 212
8.3Battery Interface API
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Battery interface handle.
rpt_cb
zwrep_batt_lvl_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Battery interface handle.
data
zwbatt_dat_t *
I
Battery Level and status.
ts
time_t
I
Time stamp. If this is zero, the callback has no data and hence
other parameter values should be ignored.
Attribute
Type
I/O
Description
level
uint8_t
O
Battery level 0x00..0x64 MUST indicate the battery
percentage level from 0 to 100%. Level 0xFF MUST indicate a
low-battery warning.
sts_valid
uint8_t
O
Indicate whether the following battery status fields are valid.
1=valid; 0=invalid.
Battery status
rechargeable
uint8_t
O
Flag to indicate if the battery is rechargeable. 1=rechargeable;
0=non-rechargeable
charge_sts
uint8_t
O
Charging status if battery is rechargeable, BATT_STS_XXX
bkup_batt
uint8_t
O
Flag to indicate if the battery is utilized for back-up purposes
of a main powered connected device. 1=backup; 0=battery is
used for primary means of power
overheat
uint8_t
O
Flag to indicate if overheating is detected. 1=overheating;
0=operating within the normal temperature range
low_fluid
uint8_t
O
Flag to indicate if the battery fluid is low and should be
refilled. 1=low; 0=normal
rechg_req
uint8_t
O
Status to indicate if the battery needs to be recharged (for
rechargeable battery) or replaced (for non-rechargeable
battery), BATT_RECHG_XXX
disconnect
uint8_t
O
Flag to indicate if the battery is currently disconnected or
removed from the node. 1=disconnected and the node is
running on an alternative power source; 0=connected
This corresponds to the Z-Wave battery CC.
8.3.1zwif_battery_rpt_set
Setup a battery report callback function. Note that the report battery level 0x00..0x64 indicates
the battery percentage level from 0 to 100%. Level 0xFF indicates a low-battery warning.
Table 167 – zwif_battery_rpt_set Parameters
Table 168 – zwrep_batt_lvl_fn Parameters
Table 169 – zwbatt_dat_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 68 of 212
low_temp_sts
uint8_t
O
Flag to indicate if battery of a device has stopped charging
due to low temperature, BAT_LO_TEMP_STS_XXX
Table 170 – BATT_STS_XXX
Battery charging status
Description
BATT_STS_DISCHARGE
Discharging
BATT_STS_CHARGE
Charging
BATT_STS_MAINTAIN
Maintaining
Battery recharge or replace request
Description
BATT_RECHG_NONE
No recharge or replace battery is needed
BATT_RECHG_SOON
Recharge or replace battery soon
BATT_RECHG_NOW
Recharge or replace battery now
Battery low temperature status
Description
BATT_LO_TEMP_STS_UNKNOWN
Unknown
BATT_LO_TEMP_STS_NOT_CHARGING
Battery is not charging due to low temperature
BATT_LO_TEMP_STS_OPERATIONAL
Battery is operational
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Battery interface handle.
flag
intIFlag, see ZWIF_GET_BMSK_XXX.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
rpt_cb
zwrep_batt_health_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
data
zwbatt_health_t
*
I
Battery health status
ts
time_t
I
Time stamp. If this is zero, the callback has no data and
hence other parameter values should be ignored.
Attribute
Type
I/O
Description
Table 171 – BATT_RECHG_XXX
Table 172 – BATT_LO_TEMP_XXX
8.3.2zwif_battery_get
Get battery level through report callback function.
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 69 of 212
max_cap
uint8_t
O
The percentage indicating the maximum capacity of the battery.
Values in the range 0x00..0x64 indicate the maximum capacity
of the battery in the percentage level from 0 to 100%. Value of
0xFF indicates the maximum capacity of the battery is unknown
precision
uint8_t
O
Decimal places of the battery temperature value. E.g. the
decimal value 1025 with precision 2 is equal to 10.25
unit
uint8_t
O
Unit used in battery temperature. 0=Celsius; other values are
reserved
size
uint8_t
O
Battery temperature data size: 0, 1, 2 or 4 bytes. Value 0
indicates the battery temperature is unknown
data
uint8_t [4]
O
Battery temperature data (a signed number) with the first byte
is the most significant byte
8.3.4zwif_battery_health_get
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
flag
intIFlag, see ZWIF_GET_BMSK_XXX.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
rpt_cb
zwrep_time_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
hour
uint8_t
I
Hour (in 24 hours format).
minute
uint8_t
I
Minute.
second
uint8_t
I
Second.
rtc_fail
intIFlag to indicate if RTC oscillator has been stopped and hence the
advertised time might be inaccurate. 1=stopped; 0=running or
node does not support this feature.
Get battery health report through report callback.
Table 177 – zwif_battery_health_get Parameters
8.4Time and Date Interface API
This corresponds to the Z-Wave Time CC.
8.4.1zwif_time_rpt_set
Set up a current local time report callback function.
Table 178 – zwif_time_rpt_set Parameters
Table 179 – zwrep_time_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 70 of 212
8.4.2zwif_time_get
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
rpt_cb
zwrep_date_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle
year
uint16_t
I
Year (example: 2018)
month
uint8_t
I
Month
day
uint8_t
I
Day
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
rpt_cb
zwrep_tz_dst_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
tz_info
tmzone_info_t
*
I
Time zone info.
dst_info
dst_info_t *
I
Daylight Saving Time info.
Get current local time through report callback.
Table 180 – zwif_time_get Parameters
8.4.3zwif_date_rpt_set
Set up a current date report callback function.
Table 181 – zwif_date_rpt_set Parameters
Table 182 – zwrep_date_fn Parameters
8.4.4zwif_date_get
Get current date adjusted according to the local time zone and Daylight Saving Time through
report callback.
Table 183 – zwif_date_get Parameters
8.4.5zwif_tz_dst_rpt_set
Set up a time zone and Daylight Saving Time information report callback function.
Table 184 – zwif_tz_dst_rpt_set Parameters
Table 185 – zwrep_tz_dst_fn Parameters
Table 186 – tmzone_info_t Structure
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 71 of 212
Attribute
Type
I/O
Description
sign
intOSign (plus or minus) to apply to the hour and minute fields. 0 =
Plus sign (positive offset from UTC); 1 = Minus sign (negative
offset from UTC).
hour
uint8_t
O
Hour offset.
minute
uint8_t
O
Minute offset.
Table 187 – dst_info_t Structure
Attribute
Type
I/O
Description
sign
intOSign (plus or minus) for the minute_offset field to apply to the
current time while in the Daylight Saving Time. 0 = Plus sign
(positive offset from current time); 1 = Minus sign (negative
offset from current time).
minute_offset
uint8_t
O
Minute offset.
month_start
uint8_t
O
Month of the year when Daylight Saving Time starts. Range
Month of the year when DST ends. Range 1..12 (representing
respectively January...December).
day_end
uint8_t
O
Day of the month when DST ends. Range 1..31.
hour_end
uint8_t
O
Hour of the day when DST ends. Range 0..23.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Interface handle.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Firmware update interface handle.
cb
zwrep_fw_info_fn
I
Report callback function.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
8.4.6zwif_tz_dst_get
Get time zone and Daylight Saving Time information through report callback.
Table 188 – zwif_tz_dst_get Parameters
8.5Firmware Update Interface API
This corresponds to the Firmware Update Meta Data CC.
8.5.1zwif_fw_info_get
Get firmware information through report callback.
Table 189 – zwif_fw_info_get Parameters
Table 190 – zwrep_fw_info_fn Parameters
INS14416-13Z-Ware SDK 7.14.x Library C API Reference Manual2020-07-07
silabs.com | Building a more connected world.
Page 72 of 212
ifd
zwifd_t *
I
Firmware update interface handle.
fw_info
zwfw_info_t *
I
firmware information.
Table 191 – zwfw_info_t structure
Attribute
Type
I/O
Description
vid
uint16_t
I
Vendor/Manufacturer ID.
zw_fw_id
uint16_t
I
Z-Wave firmware ID.
chksum
uint16_t
I
CRC-CCITT checksum of Z-Wave firmware.
max_frag_sz
uint16_t
I
Maximum meta data fragment size for firmware update.
fixed_frag_sz
uint8_t
I
Flag to indicate whether the max_frag_sz is fixed, i.e.
firmware update request MUST use the given size. 1=fixed
size; 0=variable size.
upgrade_flg
uint8_t
I
Firmware upgradable flag. 0= Firmware is not upgradable;
0xFF= Firmware is upgradable.
hw_ver_valid
uint8_t
I
Flag to indicate whether the hw_ver is valid. 1=valid;
0=invalid.
hw_ver
uint8_t
I
Hardware version.
func_normally
uint8_t
I
To indicate whether other CCs function normally during
firmware update image transfer. 2=function normally;
1=certain CCs will not function; 0=this information is
unavailable
activation
uint8_t
I
To indicate whether node supports the subsequent
activation of firmware after downloading. 2=support; 1=not
support; 0=this information is unavailable
other_fw_cnt
uint8_t
I
Number of other firmware IDs.
other_fw_id
uint16_t *
I
Pointer to array of other firmware IDs with the count given
by other_fw_cnt.
Attribute
Type
I/O
Description
ifd
zwifd_t *
I
Firmware update interface handle.
req
zwfw_updt_req_t
*
I
Firmware update request.
return
intOZW_ERR_NONE on success; else ZW_ERR_XXX.
Attribute
Type
I/O
Description
vid
uint16_t
I
Vendor/Manufacturer ID the firmware is intended
for.
fw_id
uint16_t
I
Firmware ID the firmware is intended for.
hw_ver
uint8_t
I
Hardware version the firmware is intended for;
zero if inapplicable.
8.5.2zwif_fw_updt_req
Request firmware update. Caller should call zwif_fw_info_get() first before calling this function.
Table 192 – zwif_fw_updt_req Parameters
Table 193 – zwfw_updt_req_t Structure
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.