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