zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
80 lines (48 loc) • 2.39 kB
Markdown
[](https://nodei.co/npm/zigbee-herdsman-converters/)
# zigbee-herdsman-converters
Collection of device converters to be used with zigbee-herdsman.
## Contributing
See [Zigbee2MQTT how to support new devices](https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html).
### Creating a pull request
#### Github codespaces
You can use Github codespaces to create pull requests with a fully setup editor, right from your web browser:
- https://docs.github.com/en/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository
- https://docs.github.com/en/codespaces/developing-in-a-codespace/using-github-codespaces-for-pull-requests
#### Locally
Install the prerequisites:
```sh
npm install -g pnpm
pnpm install --frozen-lockfile
```
#### Submitting your pull request
Before you submit a pull request, you should run the following commands to ensure your changes will pass the tests:
```sh
pnpm run check --fix
pnpm run build
pnpm test
```
If any of those commands finish with an error your PR won't pass the tests and will likely be rejected.
## Breaking changes
23.0.0
- A `Publish` now has to be passed to toZigbee converters (#8875)
22.0.0
- `addDefinition` has been renamed to `addExternalDefinition`
- An import of `zigbee-herdsman-converters` does not expose all `definitions` anymore. Use this instead:
```js
(await import('zigbee-herdsman-converters/devices/index')).default.forEach((baseDefinition) => {
const d = zhc.prepareDefinition(baseDefinition);
});
```
21.0.0
- Various breaking changes, see [CHANGELOG.md](https://github.com/Koenkk/zigbee-herdsman-converters/blob/v21.0.0/CHANGELOG.md#-breaking-changes).
20.0.0
- A toZigbee converter is now allowed to not define any `key`, in this case the converter should be used for any key.
19.0.0
- Legacy extend was removed
18.0.0
- After converting a message with a fromZigbee converter, `postProcessConvertedFromZigbeeMessage` should be called now (for applying calibration/precision)
17.0.0
- Various methods in `index.ts` are now async and return a `Promise`
15.0.0
- OTA `isUpdateAvailable` now returns an object instead of a boolean (e.g. `{available: true, currentFileVersion: 120, otaFileVersion: 125}`)
- OTA `updateToLatest` now returns a number (`fileVersion` of the new OTA) instead of a void