Objects
Objects shortlist
Node
Node description.
{
id = "1",
manufacturer_id = 1,
product_type = 1,
product_id = 1,
generic_type = "GENERIC_TYPE_SWITCH_MULTILEVEL",
basic_type = 1,
specific_type = "SPECIFIC_TYPE_NOT_USED",
security = { "accessControl", "authenticated", "unauthenticated", "s0" },
security_class_started = { "accessControl", "authenticated", "unauthenticated", "s0" },
is_reachable = true,
is_battery_powered = false,
is_smart_include = false,
icon_еype = "ICON_TYPE_GENERIC_LIGHT_DIMMER_SWITCH",
channels = {
{
id = 1,
classes = {
{
id = 1,
version = 1,
...
},
{
id = 2,
version = 1,
...
},
}
},
{
id = 2,
classes = {
...
}
},
...
}
}
field |
type |
description |
id |
int |
|
manufacturer_id |
int |
|
product_type |
int |
|
product_id |
int |
|
generic_type |
int |
|
basic_type |
int |
|
specific_type |
int |
|
security |
table |
|
security_class_started |
table |
|
is_reachable |
bool |
|
is_battery_powered |
bool |
|
is_smart_include |
bool |
|
icon_еype |
int |
|
channels |
table |
|
channels.id |
int |
|
classes |
table |
|
classes.id |
int |
|
version |
int |
|
Supported generic types
#Generic Type |
GENERIC_TYPE_SWITCH_MULTILEVEL |
GENERIC_TYPE_SWITCH_BINARY |
GENERIC_TYPE_SWITCH_REMOTE |
GENERIC_TYPE_SWITCH_TOGGLE |
GENERIC_TYPE_THERMOSTAT |
GENERIC_TYPE_ENTRY_CONTROL |
GENERIC_TYPE_WINDOW_COVERING |
GENERIC_TYPE_GENERIC_CONTROLLER |
GENERIC_TYPE_WALL_CONTROLLER |
GENERIC_TYPE_STATIC_CONTROLLER |
GENERIC_TYPE_REPEATER_SLAVE |
GENERIC_TYPE_NETWORK_EXTENDER |
GENERIC_TYPE_AV_CONTROL_POINT |
GENERIC_TYPE_APPLIANCE |
GENERIC_TYPE_SENSOR_NOTIFICATION |
GENERIC_TYPE_SECURITY_PANEL |
Supported specific types
#Specific Type |
SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL |
SPECIFIC_TYPE_POWER_SWITCH_BINARY |
SPECIFIC_TYPE_NOT_USED |
SPECIFIC_TYPE_SCENE_SWITCH_MULTILEVEL |
SPECIFIC_TYPE_FAN_SWITCH |
SPECIFIC_TYPE_SWITCH_REMOTE_MULTILEVEL |
SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_MULTILEVEL |
SPECIFIC_TYPE_SWITCH_TOGGLE_MULTILEVEL |
SPECIFIC_TYPE_COLOR_TUNABLE_MULTILEVEL |
SPECIFIC_TYPE_COLOR_TUNABLE_BINARY |
SPECIFIC_TYPE_SCENE_SWITCH_BINARY |
SPECIFIC_TYPE_SWITCH_REMOTE_BINARY |
SPECIFIC_TYPE_SWITCH_REMOTE_TOGGLE_BINARY |
SPECIFIC_TYPE_SWITCH_TOGGLE_BINARY |
SPECIFIC_TYPE_VALVE_OPEN_CLOSE |
SPECIFIC_TYPE_IRRIGATION_CONTROLLER |
SPECIFIC_TYPE_THERMOSTAT_GENERAL |
SPECIFIC_TYPE_THERMOSTAT_GENERAL_V2 |
SPECIFIC_TYPE_THERMOSTAT_HEATING |
SPECIFIC_TYPE_DOOR_LOCK |
SPECIFIC_TYPE_ADVANCED_DOOR_LOCK |
SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK |
SPECIFIC_TYPE_SECURE_KEYPAD_DOOR_LOCK_DEADBOLT |
SPECIFIC_TYPE_SECURE_LOCKBOX |
SPECIFIC_TYPE_CLASS_A_MOTOR_CONTROL |
SPECIFIC_TYPE_CLASS_B_MOTOR_CONTROL |
SPECIFIC_TYPE_CLASS_C_MOTOR_CONTROL |
SPECIFIC_TYPE_MOTOR_MULTIPOSITION |
SPECIFIC_TYPE_SIMPLE_WINDOW_COVERING |
SPECIFIC_TYPE_PORTABLE_REMOTE_CONTROLLER |
SPECIFIC_TYPE_PORTABLE_SCENE_CONTROLLER |
SPECIFIC_TYPE_PORTABLE_INSTALLER_TOOL |
SPECIFIC_TYPE_REMOTE_CONTROL_AV |
SPECIFIC_TYPE_REMOTE_CONTROL_SIMPLE |
SPECIFIC_TYPE_BASIC_WALL_CONTROLLER |
SPECIFIC_TYPE_PC_CONTROLLER |
SPECIFIC_TYPE_SCENE_CONTROLLER |
SPECIFIC_TYPE_STATIC_INSTALLER_TOOL |
SPECIFIC_TYPE_SET_TOP_BOX |
SPECIFIC_TYPE_SUB_SYSTEM_CONTROLLER |
SPECIFIC_TYPE_TV |
SPECIFIC_TYPE_GATEWAY |
SPECIFIC_TYPE_REPEATER_SLAVE |
SPECIFIC_TYPE_VIRTUAL_NODE |
SPECIFIC_TYPE_SECURE_EXTENDER |
SPECIFIC_TYPE_POWER_STRIP |
SPECIFIC_TYPE_SATELLITE_RECEIVER |
SPECIFIC_TYPE_SATELLITE_RECEIVER_V2 |
SPECIFIC_TYPE_SIREN |
SPECIFIC_TYPE_GENERAL_APPLIANCE |
SPECIFIC_TYPE_KITCHEN_APPLIANCE |
SPECIFIC_TYPE_LAUNDRY_APPLIANCE |
SPECIFIC_TYPE_NOTIFICATION_SENSOR |
SPECIFIC_TYPE_DOORBELL |
SPECIFIC_TYPE_SOUND_SWITCH |
SPECIFIC_TYPE_SECURE_KEYPAD |
SPECIFIC_TYPE_ZONED_SECURITY_PANEL |
SPECIFIC_TYPE_SECURE_DOOR |
SPECIFIC_TYPE_SECURE_GATE |
SPECIFIC_TYPE_SECURE_BARRIER_ADDON |
SPECIFIC_TYPE_SECURE_BARRIER_OPEN_ONLY |
SPECIFIC_TYPE_SECURE_BARRIER_CLOSE_ONLY |
Supported icon types
#Icon Type |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_WALL_LAMP |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_LAMP_POST_HIGH |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_LAMP_POST_LOW |
ICON_TYPE_GENERIC_LIGHT_DIMMER_SWITCH |
ICON_TYPE_SPECIFIC_LIGHT_DIMMER_SWITCH_PLUGIN |
ICON_TYPE_SPECIFIC_LIGHT_DIMMER_SWITCH_WALL_OUTLET |
ICON_TYPE_SPECIFIC_LIGHT_DIMMER_SWITCH_CEILING_OUTLET |
ICON_TYPE_GENERIC_FAN_SWITCH |
ICON_TYPE_GENERIC_DIMMER_WALL_SWITCH |
ICON_TYPE_SPECIFIC_DIMMER_WALL_SWITCH_ONE_BUTTON |
ICON_TYPE_SPECIFIC_DIMMER_WALL_SWITCH_TWO_BUTTONS |
ICON_TYPE_SPECIFIC_DIMMER_WALL_SWITCH_THREE_BUTTONS |
ICON_TYPE_SPECIFIC_DIMMER_WALL_SWITCH_FOUR_BUTTONS |
ICON_TYPE_SPECIFIC_DIMMER_WALL_SWITCH_ONE_ROTARY |
ICON_TYPE_GENERIC_ON_OFF_POWER_SWITCH |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_PLUGIN |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_WALL_OUTLET |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_CEILING_OUTLET |
ICON_TYPE_GENERIC_ON_OFF_WALL_SWITCH |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_ONE_BUTTON |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_TWO_BUTTONS |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_THREE_BUTTONS |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_FOUR_BUTTONS |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_ONE_ROTARY |
ICON_TYPE_GENERIC_VALVE_OPEN_CLOSE |
ICON_TYPE_GENERIC_IRRIGATION |
ICON_TYPE_SPECIFIC_LIGHT_DIMMER_SWITCH_DIN_RAIL_MODULE |
ICON_TYPE_SPECIFIC_ON_OFF_POWER_SWITCH_DIN_RAIL_MODULE |
ICON_TYPE_GENERIC_THERMOSTAT |
ICON_TYPE_GENERIC_DOOR_LOCK_KEYPAD |
ICON_TYPE_GENERIC_ENTRY_CONTROL |
ICON_TYPE_SPECIFIC_ENTRY_CONTROL_RFID_TAG_READER_NO_BUTTON |
ICON_TYPE_GENERIC_WINDOW_COVERING_NO_POSITION_ENDPOINT |
ICON_TYPE_GENERIC_WINDOW_COVERING_ENDPOINT_AWARE |
ICON_TYPE_GENERIC_WINDOW_COVERING_POSITION_ENDPOINT_AWARE |
ICON_TYPE_GENERIC_REMOTE_CONTROL_AV |
ICON_TYPE_GENERIC_REMOTE_CONTROL_MULTI_PURPOSE |
ICON_TYPE_GENERIC_REMOTE_CONTROL_SIMPLE |
ICON_TYPE_SPECIFIC_REMOTE_CONTROL_SIMPLE_KEYFOB |
ICON_TYPE_GENERIC_WALL_CONTROLLER |
ICON_TYPE_GENERIC_CENTRAL_CONTROLLER |
ICON_TYPE_GENERIC_DISPLAY_SIMPLE |
ICON_TYPE_GENERIC_GATEWAY |
ICON_TYPE_GENERIC_SET_TOP_BOX |
ICON_TYPE_GENERIC_SUB_SYSTEM_CONTROLLER |
ICON_TYPE_GENERIC_TV |
ICON_TYPE_GENERIC_REPEATER |
ICON_TYPE_SPECIFIC_REPEATER_SLAVE |
ICON_TYPE_SPECIFIC_IR_REPEATER |
ICON_TYPE_GENERIC_POWER_STRIP |
ICON_TYPE_GENERIC_SIREN |
ICON_TYPE_GENERIC_SOUND_SWITCH |
ICON_TYPE_SPECIFIC_SOUND_SWITCH_CHIME |
ICON_TYPE_SPECIFIC_SENSOR_NOTIFICATION_PEST_CONTROL |
ICON_TYPE_SPECIFIC_ON_OFF_WALL_SWITCH_DOOR_BELL |
ICON_TYPE_SPECIFIC_SOUND_SWITCH_DOORBELL |
ICON_TYPE_SPECIFIC_ENTRY_CONTROL_KEYPAD_0_9 |
ICON_TYPE_SPECIFIC_ENTRY_CONTROL_KEYPAD_0_9_OK_CANCEL |
ICON_TYPE_SPECIFIC_ENTRY_CONTROL_KEYPAD_0_9_OK_CANCEL_HOME_STAY_AWAY |
ICON_TYPE_GENERIC_BARRIER |
Node info
Node description.
{
id = "1",
manufacturer_id = 1,
product_type = 1,
product_id = 1,
generic_type = "GENERIC_TYPE_SWITCH_MULTILEVEL",
basic_type = 1,
specific_type = "SPECIFIC_TYPE_NOT_USED",
security = { "accessControl", "authenticated", "unauthenticated", "s0" },
security_class_started = { "accessControl", "authenticated", "unauthenticated", "s0" },
is_reachable = true,
is_battery_powered = true,
icon_type = "ICON_TYPE_GENERIC_LIGHT_DIMMER_SWITCH",
}
field |
type |
description |
id |
int |
|
manufacturer_id |
int |
|
product_type |
int |
|
product_id |
int |
|
generic_type |
int |
|
basic_type |
int |
|
specific_type |
int |
|
security |
table |
|
security_class_started |
table |
|
is_reachable |
bool |
|
is_battery_powered |
bool |
|
icon_type |
int |
|
Entry lock schedules
Types of entry lock schedule
Week day entry lock schedule
{
weekDay = "monday",
startHour = 11,
startMinute = 20,
stopHour = 13,
stopMinute = 50
}
field |
type |
description |
weekDay |
string |
select one of week days |
startHour |
int |
|
startMinute |
int |
|
stopHour |
int |
|
stopMinute |
int |
|
Year day entry lock schedule
{
startYear = 2019,
startMonth = 3,
startDay = 1,
startHour = 18,
startMinute = 30,
stopYear = 2019,
stopMonth = 3,
stopDay = 2,
stopHour = 18,
stopMinute = 30,
}
field |
type |
description |
startYear |
int |
|
startMonth |
int |
from 1 to 12 |
startDay |
int |
from 1 |
startHour |
int |
from 0 to 23 |
startMinute |
int |
from 0 to 59 |
stopYear |
int |
|
stopMonth |
int |
from 1 to 12 |
stopDay |
int |
from 1 |
stopHour |
int |
from 0 to 23 |
stopMinute |
int |
from 0 to 59 |
Daily repeating entry lock schedule
{
weekDays = { "monday", "friday" },
startHour = 11,
startMinute = 20,
durationHour = 1,
durationMinute = 50
}
field |
type |
description |
weekDays |
array of strings |
select from week days |
startHour |
int |
|
startMinute |
int |
|
durationHour |
int |
|
durationMinute |
int |
|
Command classes
Default
Default command class structure
{
id = 50,
version = 1,
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
Associations
{
id = 50,
version = 1,
association_groups_count = 2
association_groups = {
{group_id = 1, group_nodes = [1, 2, 3]},
{group_id = 2, group_nodes = [1, 5, 6]},
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
association_groups_count |
int |
number of association groups |
association_groups |
table |
info about each association group |
Association group info
{
id = 50,
version = 1,
association_groups_count = 2
association_groups = {
{
group_id = 1,
group_name = "Lifeline",
profileMsb = 0,
profileLsb = 0,
commands = [{class_id = 71, command_id = 1}]
},
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
association_groups_count |
int |
number of association groups |
association_groups |
table |
info about each association group |
Binary sensor
{
id = 50,
version = 1,
sensor_types = {
1,
2,
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
sensor_types |
table |
array of supported sensors |
Central scene
{
id = 91,
version = 1,
buttons = {
{button_id = 1, button_attributes={"press_1_time", "press_2_times"}},
{button_id = 2, button_attributes={"held_down", "released"}},
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
buttons |
table |
array of supported buttons |
Color Switch
{
id = 51,
version = 1,
componentIds = {
wwhite,
red,
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
componentIds |
table |
array of supported color ids |
Meter
{
id = 50,
version = 1,
reset_supported = true,
type = "electric",
scales = {
"volt",
"ampere",
"kilo_watt_hour"
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
reset_supported |
bool |
is meter reset functionality supported |
type |
string |
type of metering physical unit. |
scales |
array of strings |
array of measurement units |
Possible types: "electric", "gas", "water", "heating", "cooling"
Multi channel associations
{
id = 50,
version = 1,
association_groups_count = 2,
association_groups = {
{group_id = 1, group_nodes = [{node_id = 1, endpoint_id = 0}, {node_id = 2, endpoint_id = 0}]},
{group_id = 2, group_nodes = [{node_id = 1, endpoint_id = 0}, {node_id = 3, endpoint_id = 0}]},
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
association_groups_count |
int |
number of association groups |
association_groups |
table |
info about each association group |
Sound switch
{
id = 50,
version = 1,
tones = {
{ tone_id = 1, duration = 5, tone_name = "01 Ding Dong" },
{ tone_id = 2, duration = 9, tone_name = "02 Ding Dong Tubular" },
{ tone_id = 3, duration = 10, tone_name = "03 Traditional Apartment Buzzer" },
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
tones |
table |
array of supported tones |
Thermostat mode
{
id = 64,
version = 1,
modes = {
0,
1,
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
modes |
table |
array of supported modes |
Thermostat fan mode
{
id = 68,
version = 1,
modes = {
0,
1,
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
modes |
table |
array of supported modes |
Thermostat setpoint
{
id = 67,
version = 1,
setpoints = {
{
type = 1,
min_value = 2,
min_scale = 0,
max_value = 35,
max_scale = 0
},
...
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
setpoints |
table |
array of supported setpoints |
type |
int |
type of setpoint |
min_value |
int |
minimum value for setpoint type |
min_scale |
int |
temperature scale of min_value |
max_value |
int |
maximum value for setpoint type |
max_scale |
int |
temperature scale of max_value |
User code
{
id = 99,
version = 1,
supported_users_count = 25,
capabilities = {
checksum_supported = true;
master_code_supported = true;
master_code_deactivation_supported = false;
supported_keys = "0123456789",
supported_keypad_modes = { "enabled", "disabled", "locked_out" }
supported_user_id_statuses = { "normal", "vacation", "privacy" };
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
supported_users_count |
int |
number of supported users (from 1 to N) |
capabilities |
table |
User code capabilities (Optional, Version 2 and more) |
Capabilities structure:
field |
type |
description |
checksum_supported |
bool |
checksum is hash of all user codes and statuses |
master_code_supported |
bool |
|
master_code_deactivation_supported |
bool |
can master code be deactivated via passing empty code |
supported_keys |
string |
set of supported keys |
supported_keypad_modes |
array of strings |
|
supported_user_id_statuses |
array of strings |
|
Schedule entry lock
{
id = 78,
version = 1,
week_day_slots = 0,
year_day_slots = 3,
daily_repeating_slots = 7
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
week_day_slots |
int |
number of supported week day slots |
year_day_slots |
int |
number of supported year day slots |
daily_repeating_slots |
int |
number of supported daily repeating slots |
Door lock
{
id = 78,
version = 1,
capabilities = {
inside_handle_ids = { 1 },
outside_handle_ids = { 1 },
door_lock_modes = {
"unsecured",
"unsecured_with_timeout",
"unsecured_for_inside",
"unsecured_for_inside_with_timeout",
"secured"
},
timed_operations_supported = true,
door_supported = true,
latch_supported = true,
latch_supported = false,
block_to_block_supported = false,
twist_assist_supported = true,
hold_and_release_supported = false
}
}
field |
type |
description |
id |
int |
identifier of command class |
version |
int |
version of command class |
capabilities |
table |
door lock capabilities (Optional, version 4 and more) |
Capabilities structure:
field |
type |
description |
inside_handle_ids |
array of int |
list of supported inside handle ids ( 1 .. 4 ) |
outside_handle_ids |
array of int |
list of supported outside handle ids ( 1 .. 4 ) |
door_lock_modes |
array of string |
list of supported door lock modes |
timed_operations_supported |
bool |
are timed operations supported (e.g. setting mode unsecured_with_timeout) |
door_supported |
bool |
is door report supported |
bolt_supported |
bool |
is bolt report supported |
latch_supported |
bool |
is latch report supported |
block_to_block_supported |
bool |
|
twist_assist_supported |
bool |
|
hold_and_release_supported |
bool |
|
Device setting file
File in JSON format
{
"0_0_0": {
"configurations": [
{
"channel_id": 0,
"number": 4,
"size": 1,
"value": 0
},
...
],
"associations": [
{
"channel_id": 0,
"group_id": 2
},
...
]
},
...
}
Field |
Type |
Required |
Description |
0_0_0 |
string |
+ |
An id of the device. Format: "<manufacture_id>_<product_type_id>_<device_id>" |
configurations |
array |
+ |
Array of configuration parameters |
configurations.channel_id |
number |
+ |
|
configurations.number |
number |
+ |
|
configurations.size |
number |
- |
Size in bytes (Default is 4) |
configurations.value |
number |
+ |
|
associations |
array |
+ |
Array of association groups |
associations.channel_id |
number |
- |
Root channel (0) by default |
associations.group_id |
number |
+ |
|
associations.target_channel_id |
number |
- |
Destination channel Id. Set 0 for cpecific devices. See description for more details |
How does firmware set association from device settings file?
Here is an algorithm on pseudo code:
if multichannel association CC is absent then
Using association CC
elseif field target_channel_id is absent then
Using multichannel association CC via mapping group to node
else
Using multichannel association CC via mapping group to node and channel
end
Note, firmware sets association ( via multichannel association CC or association CC ) for "Lifeline" group by default. It maps group to node. If your device supports only mapping to node+group, please set associations.target_channel_id to 0.
Door lock configuration
Door lock configuration tables
--versions 1,2,3
{
enabled_inside_handle_ids = { 1 },
enabled_outside_handle_ids = { },
lock_timeout = 30
}
--version 4
{
enabled_inside_handle_ids = { 1 },
enabled_outside_handle_ids = { },
lock_timeout = 30,
auto_relock_timeout = 50,
hold_and_release_timeout = 40,
twist_assist_enabled = true,
block_to_block_enabled = false
}
field |
type |
version |
description |
enabled_inside_handle_ids |
array of int |
1-3 |
list of enabled inside handle ids ( 1 .. 4 ) |
enabled_outside_handle_ids |
array of int |
1-3 |
list of enabled outside handle ids ( 1 .. 4 ) |
lock_timeout |
int |
1-3 |
lock timeout in seconds. It's activated after any timed operation. It's optional field ( absent value means disabled timed operations ). Max value is 15239 (60 * 0xFE - 1). |
auto_relock_timeout |
int |
4+ |
auto relock timeout in seconds. It's activated after setting any doorlock unsecured mode. Max value is 0xFFFF. |
hold_and_release_timeout |
int |
4+ |
hold and release timeout in seconds. Max value is 0xFFFF. |
twist_assist_enabled |
bool |
4+ |
|
block_to_block_enabled |
bool |
4+ |
|
Note, fields "required" are actual for corresponding cc version. E.g. it's possible to pass just inside_handle_ids and outside_handle_ids.
Provisioning info
Provisioning information for including devices.
{
node_id = 1,
name = "coffee maker",
room = "kitchen"
}
field |
type |
description |
node_id |
int |
Node ID in current Z-Wave network if this device has already been included |
name |
string |
Advertise the name assigned to a supporting node |
room |
string |
Id of preferred room |