This document describes the changes that are introduced with each schema version.
Base schema.
- Device classes were previously exposed as their
stringrepresentation. They are now exposed with both theirstringandintegerrepresentation. - Command classes at the node level were previously exposed as their
stringrepresentation. They are now exposed with both theirstringandintegerrepresentation.
Buffervalues were previously exposed with aValueTypeofstring. They are now exposed with aValueTypeofBuffer
- Renamed
controller.removeNodeFromAllAssocationstocontroller.removeNodeFromAllAssociationsto fix a typo - Numeric loglevels are converted to the corresponding string loglevel internally. driver.getLogConfig always returns the string loglevel regardless.
isFrequentListeningwas changed to have the typeFLiRS = false | "250ms" | "1000ms"(previouslyboolean) to indicate the wakeup frequency.maxBaudRatewas renamed tomaxDataRate, the typeBaudratewas renamed toDataRate- The property
supportedDataRateswas added to provide an array of supported data rates - The
versionproperty was renamed toprotocolVersionand had its type changed fromnumberto the enumProtocolVersion(the underlying values are still the same). - The
isBeamingproperty was renamed tosupportsBeamingto better show its intent. - The
supportsSecurityproperty was split off from theisSecureproperty because they have a different meaning. - The old
nodeTypeandroleTypeproperties were renamed tozwavePlusNodeTypeandzwavePlusRoleTypeto clarify that they refer to Z-Wave+. - The node
notificationevent was reworked and decoupled from the Notification CC. The event callback now indicates which CC raised the event and its arguments are moved into a single object parameter. - Moved the
deviceClassproperty fromZWaveNodeto its base classEndpointand consider the endpoint's device class where necessary
- Node
interviewStageproperty was changed from typenumberto typestring - Added
drivercommand namespace (driver.get_config,driver.update_log_config,driver.get_log_config,driver.enable_statistics,driver.disable_statistics,driver.is_statistics_enabled,driver.start_listening_logs,driver.stop_listening_logs) - Added
driverstate (logConfig,statisticsEnabled) to the state dump - Added
node.refresh_valuesandnode.refresh_cc_valuescommands - Added
interview startednode event - Added
interview stage completednode event (withstageNameargument) - Added
loggingdriver event (emitted whendriver.start_listening_logsis active)
- Added
deviceDatabaseUrlproperty to Node - Removed
neighborsproperty from Node. Usecontroller.get_node_neighborsinstead. - Added
controller.get_node_neighborscommand - Added
broadcast_nodeandmulticast_groupcommand namespaces - Added
node.begin_firmware_updateandnode.pingcommands
- Added
driver.set_preferred_scalescommand - Added
driver.check_for_config_updatesanddriver.install_config_updatecommands - Added
optionsparameter tonode.set_valuecommand (SetValueAPIOptions) - Added optional
endpointparameter tocontroller.get_association_groups,controller.get_associations,controller.is_association_allowed,controller.add_associations, andcontroller.remove_associationscommands - Changed
Associationtype toAssociationAddressin association commands - Added
isHealNetworkActiveproperty to controller state dump - Added
valueChangeOptionsproperty to value metadata and configuration metadata
- Added
endpoint.invoke_cc_apicommand - Added
endpoint.supports_cc_apicommand - Added
statisticsproperty (NodeStatistics) toNodeState - Added
statisticsproperty (ControllerStatistics) to controller state dump - Added
statistics updatedcontroller event - Added
statistics updatednode event
- Added
node.has_security_classcommand - Added
node.get_highest_security_classcommand - Added
node.get_firmware_update_capabilitiescommand - Added
controller.grant_security_classescommand - Added
controller.validate_dsk_and_enter_pincommand - Added controller events:
grant security classes,validate dsk and enter pin,inclusion aborted - Updated
controller.begin_inclusionandcontroller.replace_failed_nodeto support S2 inclusion options - Added
result(InclusionResult) tonode addedcontroller event payload - Added
broadcast_node.invoke_cc_apiandbroadcast_node.supports_cc_apicommands - Added
multicast_group.invoke_cc_apiandmulticast_group.supports_cc_apicommands - Added
optionsparameter (SetValueAPIOptions) tobroadcast_node.set_valueandmulticast_group.set_valuecommands
- Bumped
zwave-jsto^8.3.1(no server API changes)
- Added
replacedboolean tonode removedcontroller event - Added
highestSecurityClassproperty toNodeState - Added server message compression support
- Added
controller.provision_smart_start_nodecommand - Added
controller.unprovision_smart_start_nodecommand - Added
controller.get_provisioning_entrycommand - Added
controller.get_provisioning_entriescommand - Added
utils.parse_qr_code_stringcommand - Updated
controller.begin_inclusionto support QR code string provisioning - Updated
controller.begin_exclusionwithunprovisionparameter - Added
broadcast_node.get_defined_value_idsandmulticast_group.get_defined_value_idscommands
- Added
controller.supports_featurecommand - Server now enables
emitValueUpdateAfterSetValuedriver option by default
- Added
node.test_powerlevelcommand - Added
node.check_lifeline_healthcommand - Added
node.check_route_healthcommand - Added optional
optionsparameter tonode.refresh_infocommand - Added node events:
test powerlevel progress,check lifeline health progress,check route health progress
- Added
node.get_valuecommand - Added
node.get_endpoint_countcommand - Added
node.interview_cccommand - Added
controller.backup_nvm_raw,controller.restore_nvm,controller.set_rf_region,controller.get_rf_region,controller.set_powerlevel,controller.get_powerlevel, andcontroller.get_statecommands - Added
node.get_state,node.set_name,node.set_location, andnode.set_keep_awakecommands - Added
isControllerNodeandkeepAwakeproperties toNodeState - Added
inclusionStateproperty and full controller state dump toControllerState - Added controller events:
nvm backup progress,nvm convert progress,nvm restore progress(emitted during NVM backup/restore operations)
- Added
commandClassesproperty toEndpointstate dump (array ofCommandClassStatewithid,name,version, andisSecure) - Moved
commandClassesfromNodestate toEndpointstate
- Added
driver.enable_error_reportingcommand - Added
controller.get_known_lifeline_routescommand - Changed controller state: replaced
libraryVersionandserialApiVersionwithsdkVersionandfirmwareVersion - Added optional
filterparameter todriver.start_listening_logscommand - Added DNS-SD/mDNS service discovery support
- Changed
controller.begin_exclusion:unprovisionparameter now acceptsboolean | "inactive"(previously justboolean) - Changed
controller.get_provisioning_entry: parameter changed fromdsk(string) todskOrNodeId(string | number) - Added
installedVersiontodriver.check_for_config_updatesresponse
- Added
node.get_firmware_update_progresscommand - Added
targetparameter tonode.begin_firmware_updatecommand - Added
node.wait_for_wakeupcommand
- Added controller
node foundevent - Added
nodeproperty tonode foundevent containingFoundNodeStatewithnodeId,deviceClass, andstatus
- Added
controller.get_any_firmware_update_progresscommand
- Added
controller.is_any_ota_firmware_update_in_progresscommand - Added
controller.get_available_firmware_updatescommand - Added
controller.begin_ota_firmware_updatecommand - Added
node.is_firmware_update_in_progresscommand - Added
node.get_firmware_update_capabilities_cachedcommand - Refactored firmware update progress tracking to use built-in zwave-js methods
- Added
eventTypeLabelproperty tonotificationnode event for Multilevel Switch CC and Entry Control CC - Added
dataTypeLabelproperty tonotificationnode event for Entry Control CC
- Added
node.interviewcommand - Added
strategyparameter tocontroller.begin_exclusioncommand (ExclusionStrategy) - Added
apiKeyparameter tocontroller.get_available_firmware_updatescommand - Changed controller state: replaced
isSlave,isSecondary, andisStaticUpdateControllerwithisPrimary,isSUC, andnodeType - Removed
statusproperty fromFoundNodeState(was alwaysNodeStatus.Unknownfor schema < 22)
- Added
supportedCCsandcontrolledCCsproperties toFoundNodeState - Added
initializeserver command (alternative toset_api_schema, also acceptsadditionalUserAgentComponentsparameter) - Added
endpoint.supports_cc,endpoint.controls_cc,endpoint.is_cc_secure,endpoint.get_cc_version, andendpoint.get_node_unsafecommands
- Added
node.update_firmwarecommand supporting multiple firmware files in a single request - Added
controller.firmware_update_otacommand supporting multiple firmware updates - Added
includePrereleasesparameter tocontroller.get_available_firmware_updatescommand - Changed
firmware update progressnode event payload from{sentFragments, totalFragments}to{progress}object - Changed
firmware update finishednode event payload from{status, waitTime}to{result}object - Changed
node.begin_firmware_updatereturn type from empty{}to{ success: boolean } - Changed
controller.begin_ota_firmware_updatereturn type from empty{}to{ success: boolean }
- Added
driver.soft_resetcommand - Added
driver.try_soft_resetcommand - Added
driver.hard_resetcommand - Added
controller.firmware_update_otwcommand - Added
utils.try_parse_dsk_from_qr_code_stringcommand - Added
rfRegionproperty toControllerState - Added controller events:
firmware update progress,firmware update finished
- Added
controller.is_firmware_update_in_progresscommand - Added
endpointLabelproperty toEndpointstate dump
- Added
statefulandsecretproperties to value metadata - Added
node.get_value_timestampcommand - Added
driver.shutdowncommand
- Added
node.manually_idle_notification_valuecommand - Added
node.set_date_and_timecommand
- Changed
node removedcontroller event:replacedproperty changed toreasonproperty (RemoveNodeReason) - Changed
controller.begin_exclusionto acceptExclusionOptionsobject parameter (in addition to legacyunprovisionparameter for backwards compatibility) - Removed
nameandinfoproperties fromConfigurationMetadataState - Changed
node.set_valuereturn type from{ success: boolean }to{ result: SetValueResult } - Changed firmware update command return types from
{ success: boolean }to{ result }objects
- Added
lastSeenproperty toNodeState
- Added
node.get_date_and_timecommand - Added
node.is_health_check_in_progresscommand - Added
node.abort_health_checkcommand - Added
node.set_default_volumecommand - Added
node.set_default_transition_durationcommand - Added
node.has_device_config_changedcommand - Added
statusproperty (ControllerStatus) toControllerState - Added
defaultVolumeanddefaultTransitionDurationproperties toNodeState - Added
lastResultproperty tocheck lifeline health progressandcheck route health progressnode events - Added controller
status changedevent - Added controller
identifyevent - Added
start_listening_logsandstop_listening_logsas top-level server commands
- Replaced
controller.heal_nodewithcontroller.rebuild_node_routes - Replaced
controller.begin_healing_networkwithcontroller.begin_rebuilding_routes(addedoptionsparameter) - Replaced
controller.stop_healing_networkwithcontroller.stop_rebuilding_routes - Renamed controller events
heal network progresstorebuild routes progressandheal network donetorebuild routes done - Removed
isHealNetworkActiveproperty fromControllerState, replaced withisRebuildingRoutes - Changed
controller.firmware_update_otacommand:updatesparameter replaced withupdateInfo - Deprecated
controller.begin_ota_firmware_updatecommand - Changed
notificationnode event to includeendpointIndexproperty - Added
messageproperty to error responses andzwaveErrorCodeNameto Z-Wave error responses
- Fixed
node.set_raw_config_parameter_valuecommand to match Z-Wave JS types (addedbitMaskandvalueFormatparameters, madevalueSizeoptional, return type changed from{}to{ result?: SupervisionResult }) - Added
endpoint.set_raw_config_parameter_valuecommand - Added
driver.update_optionscommand
- Added
rebuildRoutesProgressto controller state dump - Listen for clients using IPv6 in addition to IPv4 which was already supported
- Adds Z-Wave Long Range support
- Added
supportsLongRangeto controller state dump - Added
protocolproperty toNodeState
- Added
maxLongRangePowerlevel,longRangeChannel, andsupportsLongRangeAutoChannelSelectionto controller state dump - Added commands for controller methods
getMaxLongRangePowerlevel,setMaxLongRangePowerlevel,getLongRangeChannel, andsetLongRangeChannel - Removed deprecated
mandatoryControlledCCsandmandatorySupportedCCsproperties from device class dump - Added commands for
node.createDumpanddriver.sendTestFrame
- Added command for
checkAssociationcontroller method - Updated payload for
inclusion startedcontroller event (sendsstrategyinstead ofsecureboolean) - Removed
noBulkSupportfromConfigurationMetadataStatedump
- Added controller
inclusion state changedevent - Added
config_managercommands (config_manager.lookup_device) - Added
zniffercommands - Added
utilscommands:utils.num2hex,utils.format_id,utils.buffer2hex,utils.get_enum_member_name,utils.rssi_to_string
- Added support for both overloads of
node.manuallyIdleNotificationValue - Added
node.get_raw_config_parameter_valueandendpoint.get_raw_config_parameter_valuecommands
- Added
endpoint.try_get_nodecommand - Added
driver readydriver event - Added
controller.cancel_secure_bootstrap_s2command
- Changed
sourceof thefirmware update progressandfirmware update finishedevents fromcontrollertodriver - Added
driver.firmware_update_otwanddriver.is_otw_firmware_update_in_progresscommands - Added
node.get_supported_notification_eventscommand
- Added
sdkVersionproperty toNodeState - Added optional
migrateOptionsparameter tocontroller.restore_nvmcommand
- Added
controller.toggle_rfcommand
- Added another overload to the
driver.firmware_update_otwcommand
- Fixed JSON serialization of
Mapobjects in responses (affectscontroller.get_known_lifeline_routesand other Map-returning commands) - Added
node info receivednode event
- Added
allowedproperty to numeric value metadata and configuration metadata - Added
purposeproperty to configuration metadata
- Added driver state properties:
ready,allNodesReady,configVersion - Added node state properties:
canSleep,supportsWakeUpOnDemand,hardwareVersion,hasSUCReturnRoute,manufacturer,dsk - Added controller state properties:
isSIS,maxPayloadSize,maxPayloadSizeLR,zwaveApiVersion,zwaveChipType - Added driver events:
all nodes ready,error,bootloader ready - Added controller events:
network found,network joined,network left,joining network failed,leaving network failed - Added driver commands:
soft_reset_and_restart,enter_bootloader,leave_bootloader,get_supported_cc_version,get_safe_cc_version,update_user_agent,enable_frequent_rssi_monitoring,disable_frequent_rssi_monitoring - Automatic ZIP extraction for firmware update commands
- Added new controller commands for associations, diagnostics, firmware updates, network join/leave, NVM operations, RF region queries, and routing
- Added
controller.restore_nvm_rawcommand for raw NVM restoration without format conversion - Added
controller.get_all_associationswith nested map return type (nodeId -> endpoint -> groupId -> addresses) - Added node commands:
check_link_reliability,is_link_reliability_check_in_progress,abort_link_reliability_check - Added node event:
check link reliability progress - Added controller events:
joining network show dsk,joining network done - Added endpoint commands:
get_ccs,may_support_basic_cc,was_cc_removed_via_config - Added broadcast node Long Range support via
longRangeflag onbroadcast_nodecommands - Added zniffer Long Range commands:
get_lr_regions,get_current_lr_channel_config,get_supported_lr_channel_configs,set_lr_channel_config - Added zniffer command:
load_capture_from_buffer - Added utility commands:
guess_firmware_file_format,try_unzip_firmware_file,extract_firmware