Skip to content

Commit dc596ff

Browse files
raman325claude
andauthored
docs: complete API_SCHEMA.md with all schema version history (#1515)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a8dcc6b commit dc596ff

1 file changed

Lines changed: 229 additions & 8 deletions

File tree

API_SCHEMA.md

Lines changed: 229 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,236 @@ Base schema.
3232
## Schema 4
3333

3434
- Node `interviewStage` property was changed from type `number` to type `string`
35+
- Added `driver` command 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`)
36+
- Added `driver` state (`logConfig`, `statisticsEnabled`) to the state dump
37+
- Added `node.refresh_values` and `node.refresh_cc_values` commands
38+
- Added `interview started` node event
39+
- Added `interview stage completed` node event (with `stageName` argument)
40+
- Added `logging` driver event (emitted when `driver.start_listening_logs` is active)
3541

3642
## Schema 5
3743

3844
- Added `deviceDatabaseUrl` property to Node
3945
- Removed `neighbors` property from Node. Use `controller.get_node_neighbors` instead.
46+
- Added `controller.get_node_neighbors` command
47+
- Added `broadcast_node` and `multicast_group` command namespaces
48+
- Added `node.begin_firmware_update` and `node.ping` commands
4049

41-
---
50+
## Schema 6
4251

43-
> Missing schemas (6 - 32) will be added later
52+
- Added `driver.set_preferred_scales` command
53+
- Added `driver.check_for_config_updates` and `driver.install_config_update` commands
54+
- Added `options` parameter to `node.set_value` command (`SetValueAPIOptions`)
55+
- Added optional `endpoint` parameter to `controller.get_association_groups`, `controller.get_associations`, `controller.is_association_allowed`, `controller.add_associations`, and `controller.remove_associations` commands
56+
- Changed `Association` type to `AssociationAddress` in association commands
57+
- Added `isHealNetworkActive` property to controller state dump
58+
- Added `valueChangeOptions` property to value metadata and configuration metadata
4459

45-
---
60+
## Schema 7
61+
62+
- Added `endpoint.invoke_cc_api` command
63+
- Added `endpoint.supports_cc_api` command
64+
- Added `statistics` property (`NodeStatistics`) to `NodeState`
65+
- Added `statistics` property (`ControllerStatistics`) to controller state dump
66+
- Added `statistics updated` controller event
67+
- Added `statistics updated` node event
68+
69+
## Schema 8
70+
71+
- Added `node.has_security_class` command
72+
- Added `node.get_highest_security_class` command
73+
- Added `node.get_firmware_update_capabilities` command
74+
- Added `controller.grant_security_classes` command
75+
- Added `controller.validate_dsk_and_enter_pin` command
76+
- Added controller events: `grant security classes`, `validate dsk and enter pin`, `inclusion aborted`
77+
- Updated `controller.begin_inclusion` and `controller.replace_failed_node` to support S2 inclusion options
78+
- Added `result` (`InclusionResult`) to `node added` controller event payload
79+
- Added `broadcast_node.invoke_cc_api` and `broadcast_node.supports_cc_api` commands
80+
- Added `multicast_group.invoke_cc_api` and `multicast_group.supports_cc_api` commands
81+
- Added `options` parameter (`SetValueAPIOptions`) to `broadcast_node.set_value` and `multicast_group.set_value` commands
82+
83+
## Schema 9
84+
85+
- Bumped `zwave-js` to `^8.3.1` (no server API changes)
86+
87+
## Schema 10
88+
89+
- Added `replaced` boolean to `node removed` controller event
90+
- Added `highestSecurityClass` property to `NodeState`
91+
- Added server message compression support
92+
93+
## Schema 11
94+
95+
- Added `controller.provision_smart_start_node` command
96+
- Added `controller.unprovision_smart_start_node` command
97+
- Added `controller.get_provisioning_entry` command
98+
- Added `controller.get_provisioning_entries` command
99+
- Added `utils.parse_qr_code_string` command
100+
- Updated `controller.begin_inclusion` to support QR code string provisioning
101+
- Updated `controller.begin_exclusion` with `unprovision` parameter
102+
- Added `broadcast_node.get_defined_value_ids` and `multicast_group.get_defined_value_ids` commands
103+
104+
## Schema 12
105+
106+
- Added `controller.supports_feature` command
107+
- Server now enables `emitValueUpdateAfterSetValue` driver option by default
108+
109+
## Schema 13
110+
111+
- Added `node.test_powerlevel` command
112+
- Added `node.check_lifeline_health` command
113+
- Added `node.check_route_health` command
114+
- Added optional `options` parameter to `node.refresh_info` command
115+
- Added node events: `test powerlevel progress`, `check lifeline health progress`, `check route health progress`
116+
117+
## Schema 14
118+
119+
- Added `node.get_value` command
120+
- Added `node.get_endpoint_count` command
121+
- Added `node.interview_cc` command
122+
- Added `controller.backup_nvm_raw`, `controller.restore_nvm`, `controller.set_rf_region`, `controller.get_rf_region`, `controller.set_powerlevel`, `controller.get_powerlevel`, and `controller.get_state` commands
123+
- Added `node.get_state`, `node.set_name`, `node.set_location`, and `node.set_keep_awake` commands
124+
- Added `isControllerNode` and `keepAwake` properties to `NodeState`
125+
- Added `inclusionState` property and full controller state dump to `ControllerState`
126+
- Added controller events: `nvm backup progress`, `nvm convert progress`, `nvm restore progress` (emitted during NVM backup/restore operations)
127+
128+
## Schema 15
129+
130+
- Added `commandClasses` property to `Endpoint` state dump (array of `CommandClassState` with `id`, `name`, `version`, and `isSecure`)
131+
- Moved `commandClasses` from `Node` state to `Endpoint` state
132+
133+
## Schema 16
134+
135+
- Added `driver.enable_error_reporting` command
136+
- Added `controller.get_known_lifeline_routes` command
137+
- Changed controller state: replaced `libraryVersion` and `serialApiVersion` with `sdkVersion` and `firmwareVersion`
138+
- Added optional `filter` parameter to `driver.start_listening_logs` command
139+
- Added DNS-SD/mDNS service discovery support
140+
141+
## Schema 17
142+
143+
- Changed `controller.begin_exclusion`: `unprovision` parameter now accepts `boolean | "inactive"` (previously just `boolean`)
144+
- Changed `controller.get_provisioning_entry`: parameter changed from `dsk` (string) to `dskOrNodeId` (string | number)
145+
- Added `installedVersion` to `driver.check_for_config_updates` response
146+
147+
## Schema 18
148+
149+
- Added `node.get_firmware_update_progress` command
150+
- Added `target` parameter to `node.begin_firmware_update` command
151+
- Added `node.wait_for_wakeup` command
152+
153+
## Schema 19
154+
155+
- Added controller `node found` event
156+
- Added `node` property to `node found` event containing `FoundNodeState` with `nodeId`, `deviceClass`, and `status`
157+
158+
## Schema 20
159+
160+
- Added `controller.get_any_firmware_update_progress` command
161+
162+
## Schema 21
163+
164+
- Added `controller.is_any_ota_firmware_update_in_progress` command
165+
- Added `controller.get_available_firmware_updates` command
166+
- Added `controller.begin_ota_firmware_update` command
167+
- Added `node.is_firmware_update_in_progress` command
168+
- Added `node.get_firmware_update_capabilities_cached` command
169+
- Refactored firmware update progress tracking to use built-in zwave-js methods
170+
- Added `eventTypeLabel` property to `notification` node event for Multilevel Switch CC and Entry Control CC
171+
- Added `dataTypeLabel` property to `notification` node event for Entry Control CC
172+
173+
## Schema 22
174+
175+
- Added `node.interview` command
176+
- Added `strategy` parameter to `controller.begin_exclusion` command (`ExclusionStrategy`)
177+
- Added `apiKey` parameter to `controller.get_available_firmware_updates` command
178+
- Changed controller state: replaced `isSlave`, `isSecondary`, and `isStaticUpdateController` with `isPrimary`, `isSUC`, and `nodeType`
179+
- Removed `status` property from `FoundNodeState` (was always `NodeStatus.Unknown` for schema < 22)
180+
181+
## Schema 23
182+
183+
- Added `supportedCCs` and `controlledCCs` properties to `FoundNodeState`
184+
- Added `initialize` server command (alternative to `set_api_schema`, also accepts `additionalUserAgentComponents` parameter)
185+
- Added `endpoint.supports_cc`, `endpoint.controls_cc`, `endpoint.is_cc_secure`, `endpoint.get_cc_version`, and `endpoint.get_node_unsafe` commands
186+
187+
## Schema 24
188+
189+
- Added `node.update_firmware` command supporting multiple firmware files in a single request
190+
- Added `controller.firmware_update_ota` command supporting multiple firmware updates
191+
- Added `includePrereleases` parameter to `controller.get_available_firmware_updates` command
192+
- Changed `firmware update progress` node event payload from `{sentFragments, totalFragments}` to `{progress}` object
193+
- Changed `firmware update finished` node event payload from `{status, waitTime}` to `{result}` object
194+
- Changed `node.begin_firmware_update` return type from empty `{}` to `{ success: boolean }`
195+
- Changed `controller.begin_ota_firmware_update` return type from empty `{}` to `{ success: boolean }`
196+
197+
## Schema 25
198+
199+
- Added `driver.soft_reset` command
200+
- Added `driver.try_soft_reset` command
201+
- Added `driver.hard_reset` command
202+
- Added `controller.firmware_update_otw` command
203+
- Added `utils.try_parse_dsk_from_qr_code_string` command
204+
- Added `rfRegion` property to `ControllerState`
205+
- Added controller events: `firmware update progress`, `firmware update finished`
206+
207+
## Schema 26
208+
209+
- Added `controller.is_firmware_update_in_progress` command
210+
- Added `endpointLabel` property to `Endpoint` state dump
211+
212+
## Schema 27
213+
214+
- Added `stateful` and `secret` properties to value metadata
215+
- Added `node.get_value_timestamp` command
216+
- Added `driver.shutdown` command
217+
218+
## Schema 28
219+
220+
- Added `node.manually_idle_notification_value` command
221+
- Added `node.set_date_and_time` command
222+
223+
## Schema 29
224+
225+
- Changed `node removed` controller event: `replaced` property changed to `reason` property (`RemoveNodeReason`)
226+
- Changed `controller.begin_exclusion` to accept `ExclusionOptions` object parameter (in addition to legacy `unprovision` parameter for backwards compatibility)
227+
- Removed `name` and `info` properties from `ConfigurationMetadataState`
228+
- Changed `node.set_value` return type from `{ success: boolean }` to `{ result: SetValueResult }`
229+
- Changed firmware update command return types from `{ success: boolean }` to `{ result }` objects
230+
231+
## Schema 30
232+
233+
- Added `lastSeen` property to `NodeState`
234+
235+
## Schema 31
236+
237+
- Added `node.get_date_and_time` command
238+
- Added `node.is_health_check_in_progress` command
239+
- Added `node.abort_health_check` command
240+
- Added `node.set_default_volume` command
241+
- Added `node.set_default_transition_duration` command
242+
- Added `node.has_device_config_changed` command
243+
- Added `status` property (`ControllerStatus`) to `ControllerState`
244+
- Added `defaultVolume` and `defaultTransitionDuration` properties to `NodeState`
245+
- Added `lastResult` property to `check lifeline health progress` and `check route health progress` node events
246+
- Added controller `status changed` event
247+
- Added controller `identify` event
248+
- Added `start_listening_logs` and `stop_listening_logs` as top-level server commands
249+
250+
## Schema 32
251+
252+
- Replaced `controller.heal_node` with `controller.rebuild_node_routes`
253+
- Replaced `controller.begin_healing_network` with `controller.begin_rebuilding_routes` (added `options` parameter)
254+
- Replaced `controller.stop_healing_network` with `controller.stop_rebuilding_routes`
255+
- Renamed controller events `heal network progress` to `rebuild routes progress` and `heal network done` to `rebuild routes done`
256+
- Removed `isHealNetworkActive` property from `ControllerState`, replaced with `isRebuildingRoutes`
257+
- Changed `controller.firmware_update_ota` command: `updates` parameter replaced with `updateInfo`
258+
- Deprecated `controller.begin_ota_firmware_update` command
259+
- Changed `notification` node event to include `endpointIndex` property
260+
- Added `message` property to error responses and `zwaveErrorCodeName` to Z-Wave error responses
46261

47262
## Schema 33
48263

49-
- Fixed `node.set_raw_config_parameter_value` command to match Z-Wave JS types
264+
- Fixed `node.set_raw_config_parameter_value` command to match Z-Wave JS types (added `bitMask` and `valueFormat` parameters, made `valueSize` optional, return type changed from `{}` to `{ result?: SupervisionResult }`)
50265
- Added `endpoint.set_raw_config_parameter_value` command
51266
- Added `driver.update_options` command
52267

@@ -59,6 +274,7 @@ Base schema.
59274

60275
- Adds Z-Wave Long Range support
61276
- Added `supportsLongRange` to controller state dump
277+
- Added `protocol` property to `NodeState`
62278

63279
## Schema 36
64280

@@ -69,14 +285,16 @@ Base schema.
69285

70286
## Schema 37
71287

72-
- Added command for `checkAssocation` controller method
73-
- Updated payload for `inclusion started` controller event
288+
- Added command for `checkAssociation` controller method
289+
- Updated payload for `inclusion started` controller event (sends `strategy` instead of `secure` boolean)
290+
- Removed `noBulkSupport` from `ConfigurationMetadataState` dump
74291

75292
## Schema 38
76293

77294
- Added controller `inclusion state changed` event
78-
- Added `config_manager` commands
295+
- Added `config_manager` commands (`config_manager.lookup_device`)
79296
- Added `zniffer` commands
297+
- Added `utils` commands: `utils.num2hex`, `utils.format_id`, `utils.buffer2hex`, `utils.get_enum_member_name`, `utils.rssi_to_string`
80298

81299
## Schema 39
82300

@@ -86,7 +304,8 @@ Base schema.
86304
## Schema 40
87305

88306
- Added `endpoint.try_get_node` command
89-
- Added `controller.cancelSecureBootstrapS2` command
307+
- Added `driver ready` driver event
308+
- Added `controller.cancel_secure_bootstrap_s2` command
90309

91310
## Schema 41
92311

@@ -97,6 +316,7 @@ Base schema.
97316
## Schema 42
98317

99318
- Added `sdkVersion` property to `NodeState`
319+
- Added optional `migrateOptions` parameter to `controller.restore_nvm` command
100320

101321
## Schema 43
102322

@@ -109,6 +329,7 @@ Base schema.
109329
## Schema 45
110330

111331
- Fixed JSON serialization of `Map` objects in responses (affects `controller.get_known_lifeline_routes` and other Map-returning commands)
332+
- Added `node info received` node event
112333

113334
## Schema 46
114335

0 commit comments

Comments
 (0)