UNPKG

matterbridge

Version:
1,201 lines (826 loc) 80.2 kB
# <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge changelog All notable changes to this project will be documented in this file. If you like this project and find it useful, please consider giving it a star on GitHub at https://github.com/Luligu/matterbridge and sponsoring it. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="120"> </a> ## [3.2.0] - 2025-08-01 ### Breaking Changes Removed node 18 support. Please install Node.js 22 LTS. Don't use Node.js Current but always the Node.js LTS. Node.js 23, like all odd-numbered versions, is not supported. ### Added - [update]: Added a Snackbar message for available updates from npm. It differs for latest and dev versions. The update check, as always, is performed at restart (1 minute after) and each 12 hours. It can be triggered manually from the frontend. - [update]: First steps of update and log important messages from GitHub. - [build]: Added workflow_dispatch trigger and enhance dependency management in CI. - [build]: Added macOS 15 to the CI matrix for Node.js builds. - [frontend]: Bump version 2.7.2. - [frontend]: Added the plugin name on the QR/Fabrics when in childbridge mode. Changed operational mode to one click only. ### Changed - [package]: Updated dependencies. - [matter.js]: Bumped `matter.js` to 0.15.2 (https://github.com/project-chip/matter.js/discussions/2203). Great job matter.js! - [node.js]: Removed node 18 support. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.8] - 2025-07-28 ### Added - [Jest]: Total coverage 100%. - [certification]: Improved certification management in pairing.json. Added pemToBuffer function for converting PEM strings to Uint8Array. - [certification]: Improved certification management in pairing.json. Added extractPrivateKeyRaw function for extrating the raw part of PEM private key to Uint8Array. - [workflow]: Update permissions and change GitHub token for Docker build triggers. - [update]: Added support for retrieving and logging plugin development versions. - [frontend]: Improved test units on Frontend class (total coverage 100%). - [frontend]: Bump version 2.7.1. - [frontend]: Added Changelog button that appears in the frontend when a new version is installed and the frontend needs to be updated (page refresh). - [frontend]: Added restart plugin in childbridge mode. - [frontend]: Added update to stable and update to dev banner. The update to new appears only if you are on the dev and there is a new dev version. - [frontend]: Added update to stable and update to dev banner for plugins. The update to new dev appears only if you are on the dev and there is a new dev version. - [frontend]: Added new menu item for manual update check. ### Changed - [package]: Updated dependencies. ### Fixed - [switch]: Added conditional handling for momentary switch events in MatterbridgeEndpoint for single press only switches. - [advertise]: Changed the message advertise stopped to work also in childbridge mode. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.7] - 2025-07-25 ### Added - [docker]: Added trigger of Build Docker Image latest from publish.yml. - [docker]: Added trigger of Build Docker Image dev from publish-dev-daily.yml. - [docker]: Added on demand trigger for Build Docker Image latest from other plugins workflows. - [docker]: Added on demand trigger for Build Docker Image dev from other plugins workflows. - [mdns]: Added bin mb_mdns. - [coap]: Added bin mb_coap. - [operationalState]: Improved documentation on createDefaultOperationalStateClusterServer() and added the optional attribute countdownTime. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/363). - [momentarySwitch]: Added createDefaultMomentarySwitchClusterServer(). It creates a single click only switch. It is supported by the Home app. - [fixedLabels]: Improved documentation and added character length check. - [userLabels]: Improved documentation and added character length check. - [certification]: Improved certification management in pairing.json with new properties. ### Changed - [package]: Updated dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.6] - 2025-07-22 ### Added - [reset]: Improved "Reset all devices" command in the frontend. It will shutdown all the plugins and recreate the devices with new state and enpoint numbers even if the device is not selected. - [enpoint]: Enhanced HEPA and Activated Carbon Filter Monitoring Cluster Server methods with additional features and improved default parameters. - [enpoint]: Added resetCondition MAtter command for HEPA and Activated Carbon Filter Monitoring Cluster Server. - [dishwasher]: Added Dishwasher class and Jest test. It is not supported by the Home app. - [extractorHood]: Added ExtractorHood class and Jest test. It is not supported by the Home app. - [fan]: Added the createCompleteFanControlClusterServer() cluster helper that create a fan device with all the features. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/362). - [docker]: Added logging configuration instructions to [docker setup](README-DOCKER.md). ### Changed - [package]: Updated dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.5] - 2025-07-19 ### Added - [error]: Added error logging functions and corresponding tests. - [matterbridge]: Improved test units on Matterbridge class (total coverage 99%). - [rvc] Add RVC SupportedMaps Attribute from ServiceArea cluster. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/355). ### Changed - [matterbridge]: Refactored initialization of DeviceManager and PluginManager. - [pluginManager]: Refactored PluginManager removing unused install/uninstall methods. - [pluginManager]: Added loading of default plugin config when a plugin is added the first time. It must be a file in the package root named '[PLUGIN-NAME].config.json'. - [readme-dev]: Added [documentation](README-DEV.md) for default plugin config and schema files. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.4] - 2025-07-16 ### Added - [frontend]: Added support for p12 certificates. Add cert.p12 and cert.pass in the '.matterbridge/cert' directory. If both .p12 and cert.pem are present, only the .p12 will be used. See the README.md for more info. - [frontend]: Added support for p12 certificates with mTLS: both the server and the client must present the correct certificate. Add the parameter '-mtls'. See the README.md for more info. - [frontend]: Improved test units on Frontend class (total coverage 98%). ### Changed - [package]: Updated dependencies. - [network]: Refactor network logging to improve clarity and update logging format. ### Fixed - [bin]: Updated matterbridge bin. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.3] - 2025-07-14 ### Added - [endpoint]: Improved jsdoc description on endpoint helpers. - [endpoint]: Added createDefaultMomentarySwitchClusterServer() cluster helper. ### Changed - [package]: Updated dependencies. - [vendorId]: Added Shortcut Labs Flic (0x1488). - [server]: Refactored serverNode event handlers and types. - [matterbridge]: Removed duplicated properties. ### Fixed - [shutdown]: Fixed error messages from frontend when Matterbridge is shutting down. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.2] - 2025-07-06 ### Development Breaking Changes - [exports]: The single devices (i.e. Rvc, Evse etc...) are only exported from `matterbridge/devices`. Please update your imports to use the new export path. Refer to the [documentation](README-DEV.md) for details on imports. - [MatterbridgeEndpoint]: Added the mode property: `server` will make the device indipendent from its plugin. It has its own server node: QRCode, Fabrics and Sessions are visible in the Devices section of the Home page. This is a workaround for the Rvc Apple issue. With mode=server the Rvc (like any other device) can be paired directly to the controller like a native not bridged Matter device. Refer to the [documentation](README-DEV.md) for details on using mode. - [RoboticVacuumCleaner]: The signature of the constructor has changed to add the mode property. Mode `server` will make the device indipendent from its plugin. It has its own server node: QRCode, Fabrics and Sessions are visible in the Devices section of the Home page. This is a workaround for the Rvc Apple issue. With mode=server the Rvc (like any other device) can be paired directly to the controller like a native not bridged Matter device. Refer to the [documentation](README-DEV.md) for details on using mode. ### Added - [test]: Improved test units on Frontend class (coverage 97%). ### Changed - [package]: Updated dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.1] - 2025-07-04 ### Development Breaking Changes - [exports]: The single devices (i.e. Rvc, Evse etc...) are only exported from `matterbridge/devices`. Please update your imports to use the new export path. Refer to the [documentation](README-DEV.md) for details on imports. - [MatterbridgeEndpoint]: Added the mode property: `server` will make the device indipendent from its plugin. It has its own server node: QRCode, Fabrics and Sessions are visible in the Devices section of the Home page. This is a workaround for the Rvc Apple issue. With mode=server the Rvc (like any other device) can be paired directly to the controller like a native not bridged Matter device. ### Added - [LaundryDryer]: Added LaundryDryer (not supported by the Home app) class and Jest test. - [DeviceEnergyManagement]: Added MatterbridgeDeviceEnergyManagementServer with power adjustment methods. - [SolarPower]: Added SolarPower class and Jest test (working on Home Assistant and SmartThings). Thanks Ludovic BOUÉ. - [BatteryStorage]: Added BatteryStorage class and Jest test (working on Home Assistant and SmartThings). Thanks Ludovic BOUÉ. - [HeatPump]: Added HeatPump class and Jest test (working on Home Assistant and SmartThings). - [test]: Improved test units on Frontend class and all Matterbridge classes (coverage 93%). ### Changed - [package]: Updated dependencies. - [matter.js]: Bumped `matter.js` to 0.15.1 (https://github.com/project-chip/matter.js/discussions/2220). Great job matter.js! - [frontend]: Added all esa devices. - [frontend]: New default values: devices on the home page and icon view on the devices page. - [imports]: Added dynamic imports to Matterbridge and Frontend classes. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.1.0] - 2025-06-28 ### Added - [DevContainer]: Added support for the [**Matterbridge Dev Container**](https://github.com/Luligu/matterbridge/blob/dev/README-DEV.md#matterbridge-dev-container) with an optimized named volume for `node_modules`. - [DevContainer]: Added support for the [**Matterbridge Plugin Dev Container**](https://github.com/Luligu/matterbridge/blob/dev/README-DEV.md#matterbridge-plugin-dev-container) with an optimized named volume for `matterbridge` and `node_modules`. - [GitHub]: Added GitHub issue templates for bug reports and feature requests. - [Systemd]: Added a systemd service example file for Matterbridge in the systemd directory. - [ESLint]: Refactored ESLint configuration for TypeScript and improved plugin integration. - [ESLint]: Added the plugins `eslint-plugin-promise`, `eslint-plugin-jsdoc`, and `@vitest/eslint-plugin`. - [Vitest]: Added `Vitest` for TypeScript project testing. It will replace Jest, which does not work correctly with ESM module mocks. - [JSDoc]: Added missing JSDoc comments, including `@param` and `@returns` tags. - [MatterbridgeEndpoint]: Add MatterbridgeEndpoint mode='server'. It allows to advertise a single device like an autonomous device with its server node to be paired. The device is not bridged (alpha stage). - [MatterbridgeEndpoint]: Add MatterbridgeEndpoint mode='matter'. It allows to add a single device to the Matterbridge server node next to the aggregator. The device is not bridged (alpha stage). - [storage]: Improved error handling of corrupted storage. - [test]: Improved test units on Matterbridge classes (coverage 91%). ### Changed - [package]: Updated package to Automator v. 2.0.0. - [package]: Updated dependencies. - [storage]: Bumped `node-storage-manager` to 2.0.0. - [logger]: Bumped `node-ansi-logger` to 3.1.1. - [matter.js]: Bumped `matter.js` to 0.15.0 (https://github.com/project-chip/matter.js/discussions/2203). Great job matter.js! <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.7] - 2025-06-21 ### Breaking Changes - [devices]: The single devices (i.e. Rvc, Evse etc...) are exported from matterbridge/devices. Please update your imports to use the new export path. Refer to the [documentation](README-DEV.md) for details on imports. ### Added - [template]: Added the [Matterbridge Plugin Template](https://github.com/Luligu/matterbridge-plugin-template). It supports Dev Container and Vitest. - [platform]: Add getDevices() method to retrieve the registered devices in MatterbridgePlatform. ### Changed - [package]: Updated dependencies. - [package]: Downgrade jest to 29.7.0. - [energy]: Added parameter for cumulativeEnergyExported to the helper. For solar power device. - [platform]: Removed long deprecated methods: validateEntityBlackList and validateDeviceWhiteBlackList. Use validateDevice and validateEntity. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.6] - 2025-06-13 ### Added - [tests] Update Jest test coverage on addBridgedEndpoint and removeBridgedEndpoint. - [fan]: Added createMultiSpeedFanControlClusterServer cluster helper with MultiSpeed feature. - [fan]: Added all parameters to the fan cluster helpers. - [valve]: Added logic in MatterbridgeValveConfigurationAndControlServer. - [command]: Added cluster property to commandHandler data object. - [mb-service]: Added a link to [mb-service](https://github.com/michaelahern/mb-service) package by [Michael Ahern](https://github.com/michaelahern). It runs matterbridge as a service in macOS. ### Changed - [package]: Updated dependencies. - [fan]: The default fan has no more the MultiSpeed feature. - [behaviors]: Bump Matterbridge Behaviors to 1.3.0 - [evse]: Updated class and behavior to 1.1.0. - [waterHeater]: Updated class and behavior to 1.1.0. - [rvc]: Updated class and behavior to 1.1.0. - [laundryWasher]: Updated class and behavior to 1.1.0. ### Fixed - [evse]: Fixed jsdoc on Evse. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.5] - 2025-06-07 ### Added - [cli]: Added takeHeapSnapshot() and triggerGarbageCollection() for internal testing. - [LaundryWasher]: Added Evse class and Jest test. Thanks Ludovic BOUÉ. - [LaundryWasher]: Added LaundryWasher class and Jest test. - [WaterHeater]: Added WaterHeater class and Jest test. Thanks Ludovic BOUÉ. - [nginx]: Added new example configurations for [nginx](README-NGINX.md). ### Changed - [package]: Updated dependencies. - [matter.js]: Update to 0.14.0-alpha.0-20250528-d6d12ae65. - [matter.js]: Update to 0.14.0. Great job matter.js! ### Fixed - [selectAreas]: Fixed MatterbridgeServiceAreaServer.selectAreas. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.4] - 2025-05-26 ### Added - [jsdoc]: Improved jsdoc for cluster helpers. - [cover]: Added createDefaultLiftTiltWindowCoveringClusterServer() that create a window covering cluser with both lift and tilt features (supported by Apple Home). ### Changed - [legacy]: Removed legacy matter.js EndpointServer and logEndpoint that will be removed in matter.js 0.14.0. For developers: if you need to log the endpoint the call is Logger.get('LogEndpoint').info(endpoint). - [package]: Updated dependencies. - [package]: Updated multer package to 2.0.0. ### Fixed - [virtualDevice]: Fixed possible vulnerability in the length of the nodeLabel. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.3] - 2025-05-19 ### New plugins [Dyson robot](https://github.com/thoukydides/matterbridge-dyson-robot) A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices. to the Matter smart home ecosystem via their local MQTT APIs. [Aeg robot](https://github.com/thoukydides/matterbridge-aeg-robot) AEG RX 9 / Electrolux Pure i9 robot vacuum plugin for Matterbridge. ### Added - [virtual]: Added virtual devices configuration mode in the Matterbridge Settings: 'Disabled', 'Light', 'Outlet', 'Switch', 'Mounted_switch'. Switch is not supported by Alexa. Mounted Switch is not supported by Apple. - [deviceTypes]: Added evse, waterHeater, solarPower, batteryStorage and heatPump device type. - [waterHeater]: Added WaterHeater class to create a Water Heater Device Type in one line of code (thanks https://github.com/lboue). - [subscribe]: Added a third parameter context (provisional implementation: when "context.offline === true" then this is a change coming from the device). ### Changed - [package]: Updated dependencies. - [export]: Removed long deprecated Matter exports from matterbridge. Use matterbridge/matter. - [matterbridge]: Refactored initialize() and cleanup() methods. - [matterbridge]: Updated -help informations. - [rvc]: Added the parameters in the RoboticVacuumCleaner class constructor. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.2] - 2025-05-14 ### Added - [virtual] Added virtual devices Restart Matterbridge and Update Matterbridge and full Jest tests (can be disabled adding -novirtual to the command line). - [virtual] Added virtual devices Reboot Matterbridge for Shelly board and full Jest tests (can be disabled adding -novirtual to the command line). - [shelly] Refactor shelly api and added full Jest test. ### Changed - [package]: Updated dependencies. - [utils]: Refactor utils functions. - [utils]: Updated Jest tests on utils functions. - [devices]: Added RoboticVacuumCleaner class to create the Robotic Vacuum Cleaner device type in one line of code. ### Fixed - [frontend]: Fixed refresh of start/stop sharing. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.1] - 2025-05-06 ### Added - [docker]: The builder for the **docker** image with tag **latest** will run each day at 00:00 UTC if there are new releases. Inside the image matterbridge and all plugins with the latest release (as published on npm) are already loaded. You can just pull the new image and matterbridge with all plugins will be updated to the latest. - [docker]: The builder for the **docker** image with tag **dev** will run each day at 00:00 UTC if there are new commits. Inside the image matterbridge and all plugins with the dev release (as pushed on GitHub) are already loaded. You can just pull the new image and matterbridge with all plugins will be updated to the latest dev. It is possible that the devs are outdated by some published latests. - [npm]: The dev of matterbridge is published with tag **dev** on **npm** each day at 00:00 UTC if there is a new commit. It is possible that the dev is outdated by a published latest. - [frontend]: Added closeSnackbarMessage() to remove the notification with timeout = 0. - [frontend]: Moved all plugin actions from express to web socket. - [frontend]: Moved all settings from express to web socket. - [endpoint]: Added OperationalState cluster helper and behavior. - [behaviors]: Added Jest test on MatterbridgeBehaviors. - [docker]: Further optimized the dockerfile for the image with tag latest. ### Changed - [package]: Updated dependencies. - [docker]: Updated the [Docker configurations](README-DOCKER.md). - [frontend]: Changing configuration for a plugin now only lock configuration on that plugin. - [frontend]: Optimized rendering of Devices and Plugins panels. - [frontend]: Frontend v.2.6.4. ### Fixed - [BasicInformation]: Fixed vulnerability in BasicInformation and BridgedDeviceBasicInformation cluster initialization attributes. - [frontend]: Fixed refresh and postfix for select in HomeDevices. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [3.0.0] - 2025-04-29 ## Breaking changes This release brings Matter 1.4. New device types: - onOffMountedSwitch: Mounted On/Off Control (an onOff switch without client cluster!). - dimmableMountedSwitch: Mounted Dimmable Load Control (a dimmer switch without client cluster!). Modified clusters: - OccupancySensing cluster. ### Added - [addEndpoint]: Added an error handler with deep stack on aggregatorNode.add() and serverNode.add() calls. - [endpoint]: Added createOffOnlyOnOffClusterServer(). - [endpoint]: Added createBaseFanControlClusterServer(). - [endpoint]: Added createDefaultHepaFilterMonitoringClusterServer(). - [endpoint]: Added createDefaultActivatedCarbonFilterMonitoringClusterServer(). - [endpoint]: Added createDefaultThermostatUserInterfaceConfigurationClusterServer(). - [deviceTypes]: Added Robotic device type (please read https://github.com/Luligu/matterbridge/discussions/264). - [deviceTypes]: Added Appliances device types (please read https://github.com/Luligu/matterbridge/discussions/264). - [frontend]: Added the matterbridge aggregator serialNumber in the QRDiv. - [frontend]: Added Power column in the Devices panel of the Home page. - [frontend]: Added support for appliances and robot in IconView. - [parameter]: Added getIntArrayParameter and getStringArrayParameter. - [frontend]: Added the view menu to load the logs directly in the browser. - [docker]: Optimized the dockerfiles and reduced the image size by 30%. ### Changed - [package]: Updated package. - [package]: Updated express to v5.1.0. - [package]: Updated dependencies. - [frontend]: Frontend v.2.6.3. - [frontend]: Changed icons with mdiIcons in IconView. - [package]: Added tsconfig.jest.json with "isolatedModules": true for ts-jest. - [deviceTypes]: Updated device types to Matter 1.4. - [clusters]: Updated cluster helpers to Matter 1.4. - [matter.js]: Update to 0.13.0-alpha.0-20250405-7fc7db48. - [matter.js]: Update to 0.13.0-alpha.0-20250408-c916c7e8. - [matter.js]: Update to 0.13.0-alpha.0-20250412-5fad64e7b. - [matter.js]: Update to 0.13.0-alpha.0-20250413-d5a27700d. - [matter.js]: Update to 0.13.0-alpha.0-20250415-475996bb5. - [matter.js]: Update to 0.13.0-alpha.0-20250418-8cfc0b832. - [matter.js]: Update to 0.13.0-alpha.0-20250420-9f45e4f77. - [matter.js]: Update to 0.13.0-alpha.0-20250422-0d27f26be. - [matter.js]: Update to 0.13.0-alpha.0-20250423-8917d1d1d. - [matter.js]: Update to 0.13.0-alpha.0-20250424-4760af1f3. - [matter.js]: Update to 0.13.0-alpha.0-20250425-94b33ff98. - [matter.js]: Update to 0.13.0-alpha.0-20250427-e7df8aa45. - [matter.js]: Update to 0.13.0. - [help]: Updated cli help screen. - [logger]: Improved frontend logger cleaning. ### Fixed - [doorLock]: Fixed supportedOperatingModes inverted bitmap (Thanks Apollon). - [DevicesIcon]: Fixed rendering of leak freeze and rain sensors. - [QRCode]: Fixed rendering of QRCode panel when advertising stops. - [matterbridge]: Fixed wrong message when advertising stops and the node has been paired. - [frontend]: Fixed download logs that broke with express v5.1.0. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.9] - 2025-04-18 ### Added - [deviceTypes]: Added extendedColorLight device type. ### Changed - [package]: Update dependencies. ### Fixed - [QRCode]: Fixed update when the server node is no more advertising. - [frontend]: Fixed wrong notification when the server node has been paired. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.8] - 2025-04-10 ### Added - [platform]: Added stack to error messages. - [endpoint]: Added createLevelControlClusterServer() - [endpoint]: Added createLevelTvocMeasurementClusterServer() - [frontend]: Added a restart button on the QRCode panel when the advertising for a not paired node is expired. ### Changed - [package]: Update dependencies. - [package]: Use node:https. - [endpoint]: Modified createOnOffClusterServer(). ### Fixed - [homepage]: Fixed warning log for homepage property in package.json. - [DevicesIcon]: Fixed rendering of rain, freeze and leak sensors. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.7] - 2025-04-06 ### Added - [package]: Process author, homepage, repository, funding, README.md and CHANGELOG.md for third-party plugins. If the default implementation doesn't fit, it is possible to add a custom property "help" and "changelog" to the package.json. - [frontend]: Added a link the plugin homepage (click on the plugin name or on the plugin description). ### Changed - [frontend]: Frontend v.2.6.1. - [package]: Update dependencies. ### Fixed - [author]: Fixed case when author is an object in the package.json. - [platform]: Fix getSelectDevices and getSelectEntities on node < 22. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.6] - 2025-04-01 ### Added - [matterbridge]: New plugin matterbridge-webhooks. - [ipv4address]: The ipv4address entered by the user on the command line or on the frontend is validated on startup. If the value is not correct an error message is logged and the parameter is discarded. - [ipv6address]: The ipv6address entered by the user on the command line or on the frontend is validated on startup. If the value is not correct an error message is logged and the parameter is discarded. - [shelly-board]: For Shelly board only: added Network configuration reset and Factory reset. ### Changed - [commissionig]: If the bridge is not paired, when the advertising stops (after 15 minutes from start) the QR code is hidden and a notification is displayed. - [package]: Update dependencies. - [package]: Update matter.js to 0.12.6. ### Fixed - [ipv6address]: The ipv6address can be entered in the frontend with the scopeid. On Windows the format is ipv6%scopeid (i.e. fe80::5a71:b2f6:7bc8:d00b%8). On Linux the format is ipv6%interfaceName (i.e. fe80::5a71:b2f6:7bc8:d00b%eth0) - [onOff]: The onOff cluster created from createOnOffClusterServer() is now correct (no Lighting feature). <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.5] - 2025-03-19 ### Added - [frontend]: Frontend v.2.6.0. - [frontend]: The Devices panel on the Home page selects and unselects using the device serial or device name (it reads the plugin schema). - [frontend]: Added download of plugins storage to the Download menu. - [frontend]: Added download of plugins config to the Download menu. - [frontend]: Added the possibility to show an action button in the config editor. - [frontend]: Added the possibility to show an action button with input in the config editor. ### Changed - [package]: Update dependencies. - [frontend]: The select list panel in the config editor now shows as primary the device name and secondary the device serial. - [frontend]: Removed @rjsf/mui and use @rjsf/core (this allows to update to the latest react and @mui packages). - [frontend]: Updated @emotion @fontsource/roboto @mdi @mui @rjsf qrcode.react react-router notistack packages. ### Fixed - [frontend]: Fixed case where more then one plugin has select in the Home page Devices panel. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.4] - 2025-03-10 ### Added - [frontend]: Frontend v.2.5.2. - [frontend]: Added push updates for reachability in the Home page Devices panel. ### Changed - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.3] - 2025-03-05 ### Added - [frontend]: Frontend v.2.5.1. ### Changed - [matterbridge]: Timeout on shelly board. ### Fixed - [matterbridge]: False error notification on configure plugin. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.2] - 2025-03-05 ### Added - [frontend]: Frontend v.2.5.0. - [frontend]: Added in the Header the primary color for update and restart icons when they are needed. - [frontend]: Added in the HomeDevices a message when restart is needed and removed the Snackbar. - [frontend]: Added in Install plugins the possibility to install a plugin from a tarball. ### Changed - [frontend]: Optimized rendering of the main components. - [frontend]: The config editor cannot be opened a second time before the restart. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.1] - 2025-03-02 ### Added - [frontend]: Frontend v.2.5.0. - [frontend]: Added in the Settings the option to hide Install plugins and Plugins in the Home page. - [frontend]: Added in the Settings the option to have Logs or Devices as the bottom panel in the Home page. ### Changed - [frontend]: Refactor Home page and added HomeDevices and HomePlugins react components. - [frontend]: Persist in localStorage the Auto scroll setting. - [frontend]: Added @mdi package for icons. - [package]: Update matter.js to 0.12.5. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.2.0] - 2025-02-27 ### Added - [docker]: Added health check directly in the docker image. No need to change configuration of docker compose. - [platform]: Saving in the storage the selects for faster loading of plugins. - [icon]: Added matterbridge svg icon (thanks: https://github.com/robvanoostenrijk https://github.com/stuntguy3000). - [pluginManager]: Refactor PluginManager to optimize memory and load time. - [frontend]: Frontend v.2.4.6. Please refresh the frontend page after the update. - [frontend]: Added processUptime to SystemInfo. - [frontend]: Added Share fabrics and Stop sharing to the menu. This allows to pair other controllers without the need to share from the first controller. - [frontend]: Added subscriptions to QRDiv. - [frontend]: Added autoScroll option for the logs. Default is enabled. - [utils]: Optimized memory and loading time. - [shelly]: Added all shelly api to be used when matterbridge is running on the shelly matterbridge board. ### Changed - [package]: Update matter.js to 0.12.4 - [matterbridge]: The check for available updates now runs at restart and each 24 hours after. ### Fixed - [matterbridge]: Check endpoint state in /api/devices. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.5] - 2025-02-11 ### Added - [frontend]: Frontend v.2.4.1. - [frontend]: Optimized rendering of all pages. - [frontend]: Added cpuUsed, rss and heapUsed to SystemInformation. - [frontend]: Added UiProvider. - [frontend]: Added wssSendCpuUpdate, wssSendMemoryUpdate and wssSendSnackbarMessage. - [docker]: Added health check to docker images. See README-DOCKER.md with the updated configuration. ### Changed - [matterbridge]: Calls getNpmPackageVersion() instead of npm to get latest version to optimize memory and cpu usage. - [matterbridge]: Memory optimization on MatterbridgeEndpoint. ### Fixed - [matterbridge]: Refactor shutdown sequences for reset and factory reset. - [matterbridge]: Refactor reset devices adding a wait of 1 sec to allow matter to deliver all messages before shutting down. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.4] - 2025-02-07 ### Added - [frontend]: Added memorycheck before cleanup. - [platform]: Added a check for not latin characters. - [platform]: Added a check for already registered device names. ### Changed - [package]: Update matter.js to 0.12.3. - [matter.js]: Since matter.js storage cannot properly encode non latin names, they are encoded before passing them to matter.js. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.3] - 2025-02-04 ### Added - [matter.js]: Added temporary solution to prevent serverNode.close() not returning. ### Changed - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.2] - 2025-02-03 ### Added - [frontend]: Added rss and heap to SystemInformation. - [memorydump]: Added cpu to memoryDump. - [memorydump]: Added memoryinterval to memoryDump. - [memorydump]: Added memorytimeout to memoryDump. ### Fixed - [frontend]: Fixed update matterbridge. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.1] - 2025-02-02 ### Fixed - [matter.js]: Fix close server nodes. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.1.0] - 2025-02-02 ### Added - [matterbridge]: Added MatterbridgeModeSelectServer. - [matterbridge]: Added MatterbridgeSwitchServer. - [frontend]: Added api/advertise to turn on matter advertising in bridge mode. - [frontend]: Frontend v.2.4.0. - [matterbridge]: Added deep memory scan details. ### Changed - [package]: Removed legacy imports. - [package]: Update dependencies. - [package]: Update matter.js to 0.12.0. - [package]: Update matter.js to 0.12.1. - [package]: Update matter.js to 0.12.2. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [2.0.0] - 2025-01-20 ### Added - [behavior]: Added MatterbridgeValveConfigurationAndControlServer behavior with open close command. - [matterbridge]: Added /memory endpoint for debugging memory use. ### Changed - [legacy]: Removed MatterbridgeDevice and MatterbridgeEdge classes. - [factoryreset]: Now it deletes also the backup files and backup directories. - [mattebridge]: Restyled the Matterbridge class and created the Frontend class that manages the frontend express and websocket api calls. - [frontend]: Frontend v.2.3.12. - [iconView]: Improved render for energySensor adding voltage, current and power. - [iconView]: Improved render for PowerSource adding battery voltage. - [jest]: Refactor all tests for edge. - [frontend]: WebSocketProvider added a startTimeout of 300 sec. to start ping. - [frontend]: WebSocketProvider changed pingIntervalSeconds to 60 sec. and offlineTimeoutSeconds to 50 sec. - [frontend]: Search on select is no more case sensitive. - [matterbridge]: Deferred memory intensive tasks after initialization. - [package]: Optimized all imports from matter.js. - [package]: Update dependencies. ### Fixed - [sessions]: Fixed the case when Active session was not reporting correctly. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.7.3] - 2025-01-11 ### Added - [platform]: Added selectDevice list to deviceFeatureBlackList to get the device names from a list in the config editor. ### Changed - [frontend]: Frontend v.2.3.11 - [package]: Workflows use node 22.x. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.7.2] - 2025-01-11 ### Added - [platform]: Added selectEntity to get the entity names from a list in the config editor. - [websocket]: Added api /api/select/entities. - [frontend]: Added the possibility to reorder the items in the config editor lists. - [frontend]: Added custom error messages for ErrorListTemplate and FieldErrorTemplate in react-jsonschema-form for validation in the config editor. - [frontend]: Added filter by device name and serial number to Devices page. - [frontend]: Added Icon view to the Devices page (beta). - [frontend]: Added the possibility to select the entities/components from a list in the config editor. - [matterbridge]: Added /health endpoint for watchdog. ### Changed - [frontend]: Frontend v.2.3.10 - [package]: Update dependencies. ### Fixed - [edge]: Fixed ValveConfigurationAndControlServer behavior. - [frontend]: Fixed restart that was not working correctly in Ingress. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.7.1] - 2025-01-07 ### Added - [platform]: Added selectDevice to get the device names from a list in the config editor. - [websocket]: Added api /api/select. - [frontend]: Added configUrl to Devices page. - [frontend]: Added config button to Devices page. - [frontend]: Added id and deviceTypes to Devices page. ### Changed - [websocket]: Added params to /api/clusters. - [frontend]: Frontend v.2.3.3 ### Fixed - [frontend]: Fixed WebSocketProvider online. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.7.0] - 2025-01-04 ### Added - [edge]: Added guide [README-EDGE.md](README-EDGE.md). - [storage]: Added conversion from old matter storage to the new api format with fabrics, resumptionRecords, network, commissioning, operationalCredentials, acl and parts number. The conversion is triggered every time you shutdown or restart matterbridge till the new storage has been used with matterbridge edge. - [storage]: Added conversion for child endpoint numbers. - [storage]: Added conversion for childbridge mode. - [package]: Update README.md and README-SERVICE.md to include instructions for using SSL on port 443. - [platform]: Added checkEndpointNumbers() to detect endpoint numbers changes. - [frontend]: Frontend v.2.3.0 - [frontend]: Added dark and light mode to the frontend. Dark mode is now the default mode. It is possible to change the mode in Settings, Matterbridge settings. - [frontend]: Custom rfjsreact-jsonschema-form for the config editor. - [frontend]: Added columns configuration to Devices. - [frontend]: Added clear logs button in Logs. - [unregister]: Added unregister for Matterbridge edge. - [reset]: Added reset for Matterbridge edge. - [factoryreset]: Added factoryreset for Matterbridge edge. - [websocket]: Added /api/clusters and removed all fetch calls from frontend. ### Changed - [edge]: Fixes to edge mode. - [package]: Update dependencies. ### Fixed - [frontend]: Fixed device/cluster api that was not working in Ingress. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.7] - 2024-12-15 ### Breaking Changes In this release some device types and the OnOff, LevelControl and ColorControl have been updated to be fully compliant with Matter 1.3 specifications. It is possible that some controllers see them as new devices or need time to read the new clusters. It can be useful after the upgrade to power off the controller, wait a few minutes and power it on again. ### Added - [readme]: Update README to clarify Node.js installation instructions and emphasize LTS version. - [deviceTypes]: Add airPurifier definition. - [deviceTypes]: Add pumpDevice definition. - [clusters]: Add PumpConfigurationAndControl cluster. - [clusters]: Add ValveConfigurationAndControl cluster. ### Changed - [Docker]: Add matterbridge-hass to Dockerfile for latest and main builds. - [edge]: Various fixes to edge mode. - [package]: Update dependencies. ### Fixed - [Device]: Fix addChildDeviceType methods to include debug parameter in MatterbridgeDevice instantiation. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.6] - 2024-12-12 ### Added - [frontend]: Added the possibility to install a specific version or the dev of any plugin (i.e. you can install matterbridge-hass@dev or matterbridge-hass@0.0.3). It is also possible to use the install plugin to install a specific version of matterbridge (i.e. you can install matterbridge@dev or matterbridge@1.6.5) - [frontend]: Added the possibility to set the matter discriminator for commissioning (you can always override passing **-discriminator [DISCRIMINATOR]** on the command line). - [frontend]: Added the possibility to set the matter passcode for commissioning (you can always override passing **-passcode [PASSCODE]** on the command line). - [frontend]: Added the possibility to set the matter port for commissioning (you can always override passing **-port [PORT]** on the command line). - [deviceTypes]: Added the device type airConditioner (not supported by the Apple Home). - [docker]: Added matterbridge-hass to docker dev. - [platform]: Added validateDeviceWhiteBlackList and validateEntityBlackList to be used consistently by all plugins. - [/api/devices]: Added productUrl and configUrl. ### Changed - [package]: Update matter.js to 0.11.9-alpha.0-20241206-22f23333. - [package]: Update matter.js to 0.11.9-alpha.0-20241207-b604cfa44 - [package]: Update matter.js to 0.11.9-alpha.0-20241209-06a8040e1 - [package]: Update matter.js to 0.11.9 - [plugin]: Removed check on package types since we are moving to production plugins. - [package]: Set required node version to 18, 20 and 22. - [package]: Update dependencies. - [onOff]: Set default to OnOff.Feature.Lighting. - [levelControl]: Set default to LevelControl.Feature.Lighting. - [colorControl]: Set default cluster helpers to have ColorTemperature. - [lightSensor]: Refactor lightSensor removing Group optional cluster server. - [jest]: Update Jest tests. ### Fixed - [device]: Fix typos in Device and Endpoint. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.5] - 2024-12-02 ### Changed - [matter.js]: Update to matter.js 0.11.8. - [frontend]: Added matterbridge-hass to the plugin list. - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.4] - 2024-11-29 ### Changed - [matter.js]: Update to matter.js 0.11.7. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.3] - 2024-11-27 ### Changed - [matterbridge]: Changed default minLevel to 0 in LevelControlCluster utility methods. ### Fixed - [matter.js]: Temporary fix the crash of matter.js on close when using command line parameters. - [matter.js]: Update to matter.js 0.11.6. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.2] - 2024-11-25 ### Added - [matter.js]: Almost completed the phase 2 of migration to edge (matter.js new API). - [nginx]: Added the route /matterbridge/ to be used with nginx proxy server [README-NGINX.md](README-NGINX.md). - [config]: Config and schema are loaded before loading the plugin to allow to configure the plugin even when it throws error on load. - [config]: Added version to the config. - [frontend]: Added badge "edge" when running in edge mode. - [matterbridge]: Added addTagList method. - [matterbridge]: Added minLevel, maxLevel and onLevel to LevelControlCluster utility methods. ### Changed - [matter.js]: Update to matter.js 0.11.2. - [matter.js]: Update to matter.js 0.11.3. - [matter.js]: Update to matter.js 0.11.4. - [matter.js]: Update to matter.js 0.11.5. - [matter.js]: Update to the new matter.js packages @matter/main and @mater/nodejs. - [PluginManager]: On first load the plugin type is AnyPlatform. - [package]: Update dependencies. - [frontend]: Update package dependencies. - [frontend]: Update QRCode package and QRCode level to M. - [frontend]: Added font roboto. - [matterbridge]: Removed BasicInformationCluster from Aggregator. ### Fixed - [energySensor]: Fixed wrong types on ElectricalEnergyMeasurementCluster ElectricalPowerMeasurementCluster. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.1] - 2024-11-02 ### Added - [matterbridge]: Added automatic recovery for matterbridge node storage when it gets corrupted for a power outage or hardware failure. Unattended setups can automatically recover restoring the previous automatic backup. - [matterbridge]: Added automatic recovery for matter storage when it gets corrupted for a power outage or hardware failure. Unattended setups can automatically recover restoring the previous automatic backup. - [matterbridge]: Added parameter "-norestore" to avoid to restore automatically. In this case you need to manually restore the storages from a full backup made from the frontend. ### Changed - [loggers]: Logging on file keeps the logger level of the logger (matterbridge and matter logs). - [matterbridge]: Added more api to WebSocket for the Matterbridge cockpit dashboard (Shelly gateway). - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.6.0] - 2024-10-28 ### Added - [matterbridge]: Added WebSocket for the Matetrbridge cockpit dashboard (Shelly gateway). ### Changed - [discord]: Discord group link: https://discord.gg/QX58CDe6hd. - [matterbridge]: Completed phase 1 of transition to edge (matter.js new API). - [matterbridgeDevice]: Refactor Thermostat cluster method to accept minHeatSetpointLimit, maxHeatSetpointLimit, minCoolSetpointLimit and maxCoolSetpointLimit. - [config]: The plugins config is rewritten only after onStart and no more after onConfigure (after the plugin starts is possible to change the plugins config and it will not be rewritten after the plugin configuration). - [matterbridgeDevice]: Removed deprecated methods of ColorControl cluster. - [package]: Removed EveHistory (it will be used only by single plugins). - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.5.10] - 2024-10-01 ### Changed - [matterbridge]: Added '--omit=dev' to all install commands to save space and time on low powered devices. - [matterbridge]: Integrated the DeviceManager class and removed the old array. - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.5.9] - 2024-09-23 ### Fixed - [ingress]: Fixed download routes with Ingress from the ha addon. The add-on https://github.com/Luligu/matterbridge-home-assistant-addon has been updated to v. 1.0.4. ### Changed - [package]: Update matter-node.js to 0.10.6. - [package]: Update matter-history to 1.1.16. - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.5.8] - 2024-09-21 ### Added - [readme]: Added podman guidelines to the README.md - [readme]: Added instructions for setting permanent journalctl settings in service mode to prevent journal to grow - [readme]: Added instructions for removing sudo password for npm install in service mode - [readme]: Refactor systemd instructions for Matterbridge service - [readme]: Added link to install matterbridge like ha addon https://github.com/Luligu/matterbridge-home-assistant-addon ### Changed - [package]: Update matter-node.js to 0.10.5. - [package]: Update matter-history to 1.1.15. - [package]: Update dependencies. - [matterbridge]: Reset session informations when the controllers are not connected. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.5.7] - 2024-09-17 ### Added - [matterbridge]: Added the [Official Matterbridge Home Assistant Add-on](https://github.com/Luligu/matterbridge-home-assistant-addon) ### Changed - [electricalSensor]: Refactor the getDefaultElectricalEnergyMeasurementClusterServer and getDefaultElectricalPowerMeasurementClusterServer - [package]: Update matter-node.js to 0.10.3. - [package]: Update matter-history to 1.1.14. - [package]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"> <img src="bmc-button.svg" alt="Buy me a coffee" width="80"> </a> ## [1.5.6] - 2024-09-13 ### Added - [matterbridge]: Updated to support ingress (will be released soon in the [Official Matterbridge Home Assistant Add-on](https://github.com/Luligu/matterbridge-home-assistant-addon)). - [frontend]: Updated to support ingress. ### Changed - [pa