zwave-js-server/API_SCHEMA.md

84 lines
3.5 KiB
Markdown

# API Schema
This document describes the changes that are introduced with each schema version.
## Schema 0
Base schema.
## Schema 1
- Device classes were previously exposed as their `string` representation. They are now exposed with both their `string` and `integer` representation.
- Command classes at the node level were previously exposed as their `string` representation. They are now exposed with both their `string` and `integer` representation.
## Schema 2
- `Buffer` values were previously exposed with a `ValueType` of `string`. They are now exposed with a `ValueType` of `Buffer`
# Schema 3
- Renamed `controller.removeNodeFromAllAssocations` to `controller.removeNodeFromAllAssociations` to fix a typo
- Numeric loglevels are converted to the corresponding string loglevel internally. driver.getLogConfig always returns the string loglevel regardless.
- `isFrequentListening` was changed to have the type `FLiRS = false | "250ms" | "1000ms"` (previously `boolean`) to indicate the wakeup frequency.
- `maxBaudRate` was renamed to `maxDataRate`, the type `Baudrate` was renamed to `DataRate`
- The property `supportedDataRates` was added to provide an array of supported data rates
- The `version` property was renamed to `protocolVersion` and had its type changed from `number` to the enum `ProtocolVersion` (the underlying values are still the same).
- The `isBeaming` property was renamed to `supportsBeaming` to better show its intent.
- The `supportsSecurity` property was split off from the `isSecure` property because they have a different meaning.
- The old `nodeType` and `roleType` properties were renamed to `zwavePlusNodeType` and `zwavePlusRoleType` to clarify that they refer to Z-Wave+.
- The node `notification` event 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 `deviceClass` property from `ZWaveNode` to its base class `Endpoint` and consider the endpoint's device class where necessary
# Schema 4
- Node `interviewStage` property was changed from type `number` to type `string`
# Schema 5
- Added `deviceDatabaseUrl` property to Node
- Removed `neighbors` property from Node. Use `controller.get_node_neighbors` instead.
---
> Missing schemas (6 - 32) will be added later
---
# Schema 33
- Fixed `node.set_raw_config_parameter_value` command to match Z-Wave JS types
- Added `endpoint.set_raw_config_parameter_value` command
- Added `driver.update_options` command
# Schema 34
- Added `rebuildRoutesProgress` to controller state dump
- Listen for clients using IPv6 in addition to IPv4 which was already supported
# Schema 35
- Adds Z-Wave Long Range support
- Added `supportsLongRange` to controller state dump
# Schema 36
- Added `maxLongRangePowerlevel`, `longRangeChannel`, and `supportsLongRangeAutoChannelSelection` to controller state dump
- Added commands for controller methods `getMaxLongRangePowerlevel`, `setMaxLongRangePowerlevel`, `getLongRangeChannel`, and `setLongRangeChannel`
- Removed deprecated `mandatoryControlledCCs` and `mandatorySupportedCCs` properties from device class dump
- Added commands for `node.createDump` and `driver.sendTestFrame`
# Schema 37
- Added command for `checkAssocation` controller method
- Updated payload for `inclusion started` controller event
# Schema 38
- Added controller `inclusion state changed` event
- Added `config_manager` commands
- Added `zniffer` commands
# Schema 39
- Added support for both overloads of `node.manuallyIdleNotificationValue`