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.
- [matterbridge]: Fixed nodeLabel in childbridge mode
- [matterbridge]: Fixed MeasurementClusters
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Fixed crash in childbridge mode
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matter.js]: Added -mdnsinterface command line parameter to limit the MdnsBroadcaster to a single interface (e.g. matterbridge -bridge -mdnsinterface eth0). Matterbridge will validate the given interface and log a message if the interface is not available and will use all available interfaces.
- [dependencies]: Update dependencies.
- [dependencies]: Update eslint to 9.6.0.
- [dependencies]: Update matter.js to 0.9.3.
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Unified the http server port for the frontend and the WebSockerServer.
- [matterbridge]: Unified the https server port for the frontend and the WebSockerServer.
- [certificates]: The certificates for https connections are imported from the directory ~/.matterbridge/certs with these names: cert.pem, key.pem and ca.pem (optional). Use the -ssl command line parameter to activate https for both frontend and WebSocketServer.
- [matterbridge]: Fixed exports
- [matterbridgeDevice]: Fixed ElectricalEnergyMeasurement and ElectricalPowerMeasurement
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridgeDevice]: Added createDefaultLatchingSwitchClusterServer and getDefaultLatchingSwitchClusterServer for (https://github.com/Luligu/matterbridge-shelly)
- [frontend]: Added interfaceName
- [package]: Updated to eslint 9.5.0 and adopted the flat config
- [package]: Updated to use prettier and jest with the flat config
- [matterbridge]: Updated dependencies
- [matterbridgeDevice]: Updated ColorControl commandHandlers for improved compatibility with (https://github.com/Luligu/matterbridge-shelly)
- [matterbridge]: The "plugin disable" and "plugin remove" methods now also remove the registered devices from the bridge
- [matterbridge]: The "plugin add" method now loads, starts, and configures the plugin
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Fixed exports
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Updated dependencies
- [matterbridge]: When a plugin is in an error state, the bridge does not start to avoid causing the controllers to delete the registered devices and lose the configuration (e.g. room and automations).
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
New plugin
Matterbridge shelly allows you to expose Shelly Gen 1, Gen 2, and Gen 3 devices to Matter.
Features:
- Shellies are automatically discovered using mDNS.
- Discovered shellies are stored in local storage for quick loading on startup.
- In this first release, the components exposed are lights (with brightness), switches, rollers and power meters (with EveHistory electrical measurements).
- Shellies are controlled locally, eliminating the need for cloud or MQTT (which can be disabled).
- Shelly Gen 1 devices are controlled using the CoIoT protocol (see the note below).
- Shelly Gen 2 and Gen 3 devices are controlled using WebSocket.
- The Matter device takes the name configured in the Shelly device's web page.
- A 10-minute timer checks if the device has reported in that time.
- [matterbridgeDevice]: Added all clusters for airQualitySensor: CarbonMonoxideConcentrationMeasurement, CarbonDioxideConcentrationMeasurement, NitrogenDioxideConcentrationMeasurement, OzoneConcentrationMeasurement, FormaldehydeConcentrationMeasurement, Pm1ConcentrationMeasurement, Pm25ConcentrationMeasurement, Pm10ConcentrationMeasurement, RadonConcentrationMeasurement,
- [matterbridge]: Updated dependencies
- [matter.js]: Updated matter.js to 0.9.2
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Updated dependencies
- [matterbridge]: Refactor the loading of schemas, now they load from the plugin directory.
- [matterbridge]: Moved getPluginVersion to the start also for disabled plugins.
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
This release is all about Matter 1.3
If you are wondering whether the controllers already support Matter 1.3, the answer is unfortunately no.
SmartThings and Home Automation support:
- airQualitySensor (Matter 1.2)
Home Automation supports (probably only like BooleanState cluster):
- waterFreezeDetector (Matter 1.3)
- waterLeakDetector (Matter 1.3)
- rainSensor (Matter 1.3)
- [matterbridge]: Updated dependencies
- [matterbridge]: Default config and schema for the new plugin matterbridge-shelly (will be published after this release)
- [matterbridgeDevice]: Added waterFreezeDetector, waterLeakDetector, rainSensor, smokeCoAlarm, electricalSensor and deviceEnergyManagement device types as conformance to Matter 1.3
- [matterbridgeDevice]: Added all clusters needed for the above Matter 1.3 device types
- [matterbridgeDevice]: Added FanControl cluster (rev. 2) helper methods for the Fan device type
- [matterbridge]: Added parameter -matterlogger [debug | info | notice | warn | error | fatal] to set the matter.js Logger separately from the Matterbridge log
- [frontend]: Added logger level settings to reflect -matterlogger [debug | info | notice | warn | error | fatal]
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Updated dependencies
- [matterbridge]: Default config and schema for the new plugin matterbridge-shelly
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Updated dependencies
- [matterbridge]: Removed error stack from log error for npm get versions
- [matterbridge]: Fixed the error that caused -add plugin to fail at the first run of matterbridge
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matter.js]: Update to @project-chip/matter-node.js v. 0.9.1
- [matterbridge]: Updated dependencies
- [matterbridge]: Log level of Plugin already configured is now info
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
Now the plugins load and start before the controller connects. A special thank to Tamer Salah (https://github.com/tammeryousef1006) for his help testing all controllers.
- [matterbridge]: In bridge mode the plugins are loaded and started immediately
- [matterbridge]: In child bridge mode the plugins are loaded and started immediately
- [matterbridge]: Updated dependencies
- [frontend]: Fixed the error badge in the registered plugins window
- [frontend]: Added tooltip to the plugin update badge in the registered plugins window
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridgeDevice]: bridgedNode and powerSource device types as conformance to Matter 1.3
- [matterbridge]: Fixed /api/settings error after resetting commissioning server
- [matterbridge]: Added error message and clean shutdown when WebSocketServer or ExpressServer ports are already in use
- [frontend]: Added a dropdown menu in Add Remove plugin to select the plugins
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Fixed the issue causing the commissioning reset for all fabrics when only one is removed. (Apple uses 2 fabrics: Home app and Key chain).
- [matterbridge]: Preliminary integration for the new matterbridge-shelly plugin (still not published)
- [matterbridge]: Updated dependencies
- [matterbridge]: Moved eslint to @typescript-eslint/strict and @typescript-eslint/stylistic
- [frontend]: Fetch data in Home page every minute
- [device]: Added new method addClusterServerFromList
- [device]: Added ModeSelectClusterServer (only for testing)
- [matterbridge]: Added fabric info in the log on startup
- [matterbridge]: Added vendorId for Alexa
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matter.js]: Update to @project-chip/matter-node.js v. 0.9.0
- [frontend]: Frontend updated to 1.0.0.
- [frontend]: Added check version interval.
- [frontend]: Added help and version information icons for plugins.
- [frontend]: Added version information for Matterbridge (Click on the version badge).
- [frontend]: Added help badge for Matterbridge.
- [frontend]: Added version information badge for Matterbridge.
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [frontend]: Added sponsor link in Header.
- [frontend]: Added sponsor link in the plugin list.
- [frontend]: Fixed the case when the latest version of Matterbridge or a plugin is not available.
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [frontend]: Frontend updated to 0.9.0.
- [frontend]: Added Plugin config editor
- [frontend]: Added tool column to registered plugins with QRCode, Config, Remove and Enable/Disable
- [frontend]: Removed Shutdown button when Matterbridge runs as a service or with docker
- [frontend]: Added Error state to registered plugins
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [frontend]: Added plugin version check (you can update from the badge)
- [frontend]: Added tooltip to plugin name showing plugin path
- [matterbridge]: The plugin config file is no more saved on shutdown.
- [matterbridge]: Added plugin version check
- [frontend]: When you install a plugin now it is also added
- [frontend]: Added current and latest release to the badge in the Header section (you can update from the badge)
- [docker]: Added the docker image:dev on the docker hub with architectures: linux/amd64, linux/arm64, linux/arm/v7
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [frontend]: Added the device child enpoints to the table in the Devices page
- [docker]: Added architectures to the docker image on the docker hub: linux/amd64, linux/arm64
- [frontend]: Frontend updated to 0.8.9.
- [frontend]: Added error in the logger level on the Settings page.
- [frontend]: Added unregister all devices in the Settings page. Matterbridge will shutdown to allow unregistering.
- [frontend]: Added reset in the Settings page. Matterbridge will shutdown to allow the reset.
- [frontend]: Added factoryreset in the Settings page. Matterbridge will shutdown to allow the factoryreset.
![Buy me a coffee](/Luligu/matterbridge/raw/main/yellow-button.png)
- [matterbridge]: Added user to system information.
- [frontend]: Persist the filter selection (debug level and search criteria) in the Logs route.
- [frontend]: Added on the header the version and two badges for bridgeMode and restartMode.
- [frontend]: Frontend updated to 0.8.8.
- [docker]: Added support for docker (BETA). The Matterbridge image is published on the docker hub.
- [docker]: See the guidelines on https://github.com/Luligu/matterbridge?tab=readme-ov-file#Run-the-Docker-container-and-start-it.
- [docker compose]: See the guidelines on https://github.com/Luligu/matterbridge?tab=readme-ov-file#Run-with-docker-compose.
- [matterbridge]: Fixed the case when a plugin throws errors.
- Matterbridge Somfy Tahoma https://github.com/Luligu/matterbridge-somfy-tahoma
- [extension]: Finalized implementation of zigbee2MQTT internal extension v. 1.0.0.
- [Matterbridge]: Added call to set reachability at start.
- [Matterbridge]: Added call to set reachability at start.
- [frontend]: Added filter for log level and search criteria in the Logs page.
- [frontend]: Added colors to the logs in the Home page and in the Logs page.
- [frontend]: Frontend updated to 0.8.7.
- [logs]: Fixed wss for some browser that didn't connect to wss.
- [matter.js]: Update to @project-chip/matter-node.js v. 0.8.1
- [frontend]: Added logs in the Home page and in the Log page.
- [frontend]: Frontend got updated to 0.8.6.
- [frontend]: Added log for update and plugin install.
- [extension]: Started implementation of zigbee2MQTT internal extension.
- [spawn]: Fixed under windows.
- [matterbridge]: The default frontend port is now 8283!.
- [matterbridge.service]: Updated matterbridge.service instructions to fix restart when Matterbridge runs as a daemon with systemctl.
- [frontend]: Added manual pairing code. Allows to pair Matterbridge without using the phone.
- [MatterbridgeDevice]: Added api to create child endpoints (see matterbridge-example-dynamic-platform).
- [MatterbridgeDevice]: Added FlowMeasurement cluster.
- [matterbridge]: Added -factoryreset parameter to factory reset Matterbridge (see the readme.md for more explanations).
- [matterbridge]: Added -reset parameter to reset the commissioning of Matterbridge (bridge mode).
- [matterbridge]: Added -reset [plugin] parameter to reset the commissioning of a plugin (childbridge mode).
- [matterbridge]: Added -port [port] parameter to set the starting port for the commissioning servers (both bridge and childbridge modes).
- [matterbridge.service]: Updated matterbridge.service instructions that fix network start issue with systemctl on Linux.
- [frontend]: Added sudo to the spawned command to execute update and install from frontend (for Linux this may be necessary).
- [childbridge mode]: Fixed a syncronize issue on the start.
- [frontend]: Added update Matterbridge (spawn the command: 'npm -install -g matterbridge'). The console inherit the the spawned process running so you can check.
- [frontend]: Added install plugin (spawn the command: 'npm -install -g plugin-name'). The console inherit the the spawned process running so you can check.
- [frontend]: Added shutdown button.
- [frontend]: Added login with password (default no password). Change the password in the Settings page of frontend.
- [frontend]: Frontend got updated to 0.8.5.
- [Matterbridge]: Added configuration and guidelines in the readme to run Matterbridge like a daemon with systemctl on Linux machine.
- [matter.js]: Updated the code to matter.js release 0.80.0.
- [MatterbridgeDevice]: Added DoorLock and Thermostat clusters.
- [Matterbridge]: Enable plugin now start the plugin (no need to restart in bridge mode).
- [Matterbridge]: Disable plugin now shutdown the plugin (no need to restart).
- [MatterbridgeDevice]: Added Cluster DoorLock and command handler.
- [frontend]: Remove plugin from frontend.
- [frontend]: Add plugin from frontend.
- [workflow]: All packages now have a workflow on GitHub.
- [frontend]: Frontend got updated to 0.8.4.
- [frontend]: Fixed the restart needed message.
- [matterbridge]: Fixed the delay of loading from the cli.
- [matterbridge]: Fixed the count of devices removed.
- [plugin default entry point]: export default function initializePlugin(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig)
- [platform constructor]: constructor(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig)
- [platform]: Added async loadPluginConfig() and async savePluginConfig() to store plugin config.
- [platform]: Added: config: PlatformConfig (JSON) property to platforms to store plugin config.
- [dependencies]: Updated dependencies.
- [frontend]: Frontend got updated to 0.8.3.
- [matterbridge]: added unregisterAllDevices() to the platforms
- [matterbridge]: added unregisterDevice(device: MatterbridgeDevice) to the platforms
- [frontend]: Enable and disable plugin are now available. Restart Matteerbridge after.
- [frontend]: Frontend got updated to 0.8.2.
- [frontend]: Selecting a plugin in the home page show the corresponding QR code.
- [frontend]: Settings page now controll the global logger level.
- [frontend]: Restart from the header is available.
- [frontend]: Frontend got updated to 0.8.1.
- [cli]: Resolve the plugin name from absolute or relative path or from globally installed modules (see the help).
- [frontend]: Added some fancy stuff still not visible.
- [install]: Fixed the error caused when the controllers disconnect and connect again.
- [install]: Fixed the install error (thanks https://github.com/khaidakin).
- [async]: Plugins are loaded started configured fully asyncronously.
- [frontend]: Added configured button.
- [debug]: Added public property enableDebug to Matterbridge.
- [debug]: Added parameter -debug to the command line.
- [plugin]: Fixed the plugin.paired and plugin.commissioned in bridge mode.
- [routes]: Fixed the plugin devices route.
- [bridge]: Fixed the BasicInformationCluster in bridge mode.
- [cli]: Updated the loading from cli.
- [onMatterStarted]: onMatterStarted() is called after matter server started.
- [onConfigure]: onConfigure() is called after the platform controller is commissioned.
- [dependencies]: Updated dependencies.
- [Plugin route]: Fixed the plugin device route in frontend.
- [async]: All code is asyncronous where it makes sense.
- [JSDoc]: Added JSDoc to the code.
- [event]: Removed all event code.