[RELEASE] Matter Advanced Bridge (limited device support)

Gotcha, I've done that. Honestly I have no idea what I'm looking at, but here's the screenshots afterwards. I assume that means it won't work for displaying co2. Could this be changed if Switchbot releases a new firmware to include that functionality? Thanks again for your help and insight @kkossev

After clicking Get Info as described above :

Logs afterwards of the Hub Mini:

Device page after changing device type to "device":

Change the ‘device type’ of the parent device (the one that currently has the ‘Matter advanced Bridge’ device type driver assigned ).and click on the Get Info button there (your screenshot are from the virtual child device)

Yes

1 Like

Gotcha, screenshots after doing that :



1 Like

I'll contact switchbot and do my best to request this feature then, and cross my fingers. Thanks again!

1 Like

Some of the most frequently used clusters are in the matterLib.groovy file in this project:

@Field static final Map<Integer, String> MatterClusters = [
    0x001D  : 'Descriptor',                 // The Descriptor cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters
    0x001E  : 'Binding',                    // Meant to replace the support from the Zigbee Device Object (ZDO) for supportiprefriginatng the binding table.
    0x001F  : 'AccessControl',              // Exposes a data model view of a Node’s Access Control List (ACL), which codifies the rules used to manage and enforce Access Control for the Node’s endpoints and their associated cluster instances.
    0x0025  : 'Actions',                    // Provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose information, commands, events ...
    0x0028  : 'BasicInformation',           // Provides attributes and events for determining basic information about Nodes, which supports both Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number, which apply to the whole Node.
    0x0029  : 'OTASoftwareUpdateProvider',
    0x002A  : 'OTASoftwareUpdateRequestor',
    0x002B  : 'LocalizationConfiguration',  // Provides attributes for determining and configuring localization information
    0x002C  : 'TimeFormatLocalization',     // Provides attributes for determining and configuring time and date formatting information
    0x002D  : 'UnitLocalization',           // Provides attributes for determining and configuring the units
    0x002E  : 'PowerSourceConfiguration',   // Used to describe the configuration and capabilities of a Device’s power system
    0x002F  : 'PowerSource',                // Used to describe the configuration and capabilities of a physical power source that provides power to the Node
    0x0030  : 'GeneralCommissioning',       // Used to manage basic commissioning lifecycle
    0x0031  : 'NetworkCommissioning',       // Associates a Node with or manage a Node’s one or more network interfaces
    0x0032  : 'DiagnosticLogs',             // Provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics.
    0x0033  : 'GeneralDiagnostics',         // Provides a means to acquire standardized diagnostics metrics
    0x0034  : 'SoftwareDiagnostics',        // Provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrator in diagnosing potential problems
    0x0035  : 'ThreadNetworkDiagnostics',   // Provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrator in diagnosing potential problems
    0x0036  : 'WiFiNetworkDiagnostics',     // Provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrator in diagnosing potential
    0x0037  : 'EthernetNetworkDiagnostics', // Provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrator in diagnosing potential
    0x0038  : 'TimeSync',                   // Provides Attributes for reading a Node’s current time
    0x0039  : 'BridgedDeviceBasicInformation',  // Serves two purposes towards a Node communicating with a Bridge
    0x003C  : 'AdministratorCommissioning', // Used to trigger a Node to allow a new Administrator to commission it. It defines Attributes, Commands and Responses needed for this purpose.
    0x003E  : 'OperationalCredentials',     // Used to add or remove Node Operational credentials on a Commissionee or Node, as well as manage the associated Fabrics.
    0x003F  : 'GroupKeyManagement',         // Manages group keys for the node
    0x0040  : 'FixedLabel',                 // Provides a feature for the device to tag an endpoint with zero or more read only labels
    0x0041  : 'UserLabel',                  // Provides a feature to tag an endpoint with zero or more labels.
    0x0042  : 'ProxyConfiguration',         // Provides a means for a proxy-capable device to be told the set of Nodes it SHALL proxy
    0x0043  : 'ProxyDiscovery',             // Contains commands needed to do proxy discovery
    0x0044  : 'ValidProxies',               // Provides a means for a device to be told of the valid set of possible proxies that can proxy subscriptions on its behalf

    0x0003  : 'Identify',                   // Supports an endpoint identification state (e.g., flashing a light), that indicates to an observer (e.g., an installer) which of several nodes and/or endpoints it is.
    0x0004  : 'Groups',                     // Manages, per endpoint, the content of the node-wide Group Table that is part of the underlying interaction layer.
    0x0005  : 'Scenes',                     // Provides attributes and commands for setting up and recalling scenes.
    0x0006  : 'OnOff',                      // Attributes and commands for turning devices on and off.
    0x0008  : 'LevelControl',               // Provides an interface for controlling a characteristic of a device that can be set to a level, for example the brightness of a light, the degree of closure of a door, or the power output of a heater.
    0x001C  : 'LevelControlDerived',        // Derived cluster specifications are defined elsewhere.
    0x003B  : 'Switch',                     // Exposes interactions with a switch device, for the purpose of using those interactions by other devices
    0x0045  : 'BooleanState',               // Provides an interface to a boolean state.
    0x0050  : 'ModeSelect',                 // Provides an interface for controlling a characteristic of a device that can be set to one of several predefined values.
    0x0051  : 'LaundryWasherMode',          // Commands and attributes for controlling a laundry washer
    0x0052  : 'RefrigeratorAndTemperatureControlledCabinetMode',          // Commands and attributes for controlling a refrigerator or a temperature controlled cabinet
    0x0053  : 'LaundryWasherControls',      // Commands and attributes for the control of options on a device that does laundry washing
    0x0054  : 'RVCRunMode',                 // Commands and attributes for controlling the running mode of an RVC device.
    0x0055  : 'RVCCleanMode',               // Commands and attributes for controlling the cleaning mode of an RVC device.
    0x0056  : 'TemperatureControl',         // Commands and attributes for control of a temperature set point
    0x0057  : 'RefrigeratorAlarm',          // Alarm definitions for Refrigerator devices
    0x0059  : 'DishwasherMode',             // Commands and attributes for controlling a dishwasher
    0x005B  : 'AirQuality',                 // Provides an interface to air quality classification using distinct levels with human-readable labels.
    0x005C  : 'SmokeCOAlarm',               // Provides an interface for observing and managing the state of smoke and CO alarms
    0x005D  : 'DishwasherAlarm',            // Alarm definitions for Dishwasher devices
    0x0060  : 'OperationalState',           // Supports remotely monitoring and, where supported, changing the operational state of any device where a state machine is a part of the operation.
    0x0061  : 'RVCOperationalState',        // Commands and attributes for monitoring and controlling the operational state of an RVC device.
    0x0071  : 'HEPAFilterMonitoring',       // HEPA Filter
    0x0072  : 'ActivatedCarbonFilterMonitoring', // Activated Carbon Filter
    0x0090  : 'ElectricalPowerMeasurement', // This cluster provides a mechanism for querying data about electrical power as measured by the server.
    0x0091  : 'ElectricalEnergyMeasurement',    // Attributes and commands for measuring electrical energy
    0x0101  : 'DoorLock',                   // An interface to a generic way to secure a door
    0x0102  : 'WindowCovering',             // Commands and attributes for controlling a window covering
    0x0200  : 'PumpConfigurationAndControl',// An interface for configuring and controlling pumps.
    0x0201  : 'Thermostat',                 // An interface for configuring and controlling the functionalty of a thermostat
    0x0202  : 'FanControl',                 // An interface for controlling a fan in a heating / cooling system
    0x0204  : 'ThermostatUserInterfaceConfiguration',                 // An interface for configuring the user interface of a thermostat (which MAY be remote from the thermostat)
    0x0300  : 'ColorControl',               // Attributes and commands for controlling the color of a color capable light.
    0x0301  : 'BallastConfiguration',       // Attributes and commands for configuring a lighting ballast
    0x0400  : 'IlluminanceMeasurement',     // Attributes and commands for configuring the measurement of illuminance, and reporting illuminance measurements
    0x0402  : 'TemperatureMeasurement',     // Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements
    0x0403  : 'PressureMeasurement',        // Attributes and commands for configuring the measurement of pressure, and reporting pressure measurements
    0x0404  : 'FlowMeasurement',            // Attributes and commands for configuring the measurement of flow, and reporting flow rates
    0x0405  : 'RelativeHumidityMeasurement',// Supports configuring the measurement of relative humidity, and reporting relative humidity measurements of water in the air
    0x0406  : 'OccupancySensing',           // Occupancy sensing functionality, including configuration and provision of notifications of occupancy status
    0x0407  : 'LeafWetnessMeasurement',     // Percentage of water in the leaves of plants
    0x0408  : 'SoilMoistureMeasurement',    // Percentage of water in the soil
    0x040C  : 'CarbonMonoxideConcentrationMeasurement',
    0x040D  : 'CarbonDioxideConcentrationMeasurement',
    0x0413  : 'NitrogenDioxideConcentrationMeasurement',
    0x0415  : 'OzoneConcentrationMeasurement',
    0x042A  : 'PM25ConcentrationMeasurement',
    0x042B  : 'FormaldehydeConcentrationMeasurement',
    0x042C  : 'PM1ConcentrationMeasurement',
    0x042D  : 'PM10ConcentrationMeasurement',
    0x042E  : 'TotalVolatileOrganicCompoundsConcentrationMeasurement',
    0x042F  : 'RadonConcentrationMeasurement',
    0x0503  : 'WakeOnLAN',                  // interface for managing low power mode on a device that supports the Wake On LAN or Wake On Wireless LAN (WLAN) protocol
    0x0504  : 'Channel',                    // interface for controlling the current Channel on an endpoint.
    0x0505  : 'TargetNavigator',            // An interface for UX navigation within a set of targets on a Video Player device or Content App endpoint.
    0x0506  : 'MediaPlayback',              // interface for controlling Media Playback (PLAY, PAUSE, etc) on a Video Player device
    0x0507  : 'MediaInput',                 // interface for controlling the Input Selector on a Video Player device.
    0x0508  : 'LowPower',                   // interface for managing low power mode on a device.
    0x0509  : 'KeypadInput',                // interface for controlling a Video Player or a Content App using action commands such as UP, DOWN, and SELECT.
    0x050A  : 'ContentLauncher',            // interface for launching content on a Video Player device or a Content App.
    0x050B  : 'AudioOutput',                // interface for controlling the Output on a Video Player device.
    0x050E  : 'AccountLogin',               // interface for facilitating user account login on an application or a node.
    0x050C  : 'ApplicationLauncher',        // interface for launching content on a Video Player device.
    0x050D  : 'ApplicationBasic'            // information about a Content App running on a Video Player device which is represented as an endpoint
]

You can see a full list of the Matter Clusters by searching for "Cluster Requirements" keyword inside the Matter Device Library Specifications :

The newer versions can be obtained filling in the form on the CSA site

2 Likes

If you want everything working consider to add a Home Assistant to your setup. Thanks to HA + HADB many Switchbot devices including CO2 sensor working perfectly fine for years. And yes, all integrations are 100% local.

3 Likes

Interesting I'll check that out, switchbot seems to make a lot of other devices I could find uses for. Thanks for the info!

Just a quick note.
On the latest beta I get this now on a reboot:

Var not init with a valid value when first seen?

1 Like

Hello,
I am using the SwitchBot Hub 2, but the Curtain status is not reporting correctly. > When the curtain is fully open, the app still shows it as 'Opening', and when it's closed, it displays 'Closing'. The switch status is also incorrect.


1 Like

@dnickel I have pushed a new Beta version 1.7.5 '2026/02/11 7:18 AM' for update via HPM, thank you for reporting this!

@kwon2288 can you also update to the latest Beta version, please check this post on how to configure the Hubitat Package Manager to install Beta versions. If version 1.7.5 is working OK, I will push it as a release version too.

1 Like

I've updated to the beta version, but the issue still persists.

Was the SwitchBot Hub2 curtain / blinds controller working OK with the previous MAB versions, or this is the first time you tried it?

I don't have these devices to test myself. Hopefully, someone else using the same devices can chime in.

Update: I reproduced the problem with a Tuya motor, the fix is coming in the next Beta version update.

It worked fine before. But at some point, this issue started occurring.

1 Like

Thank you @kwon2288 for the bug reprot and for the test, this bug is now fixed in the MAB package version '1.7.6' '2026/02/12 12:00 PM. I have also added a new 'GetInfo' button, which provides some more information about your blinds device.

image

Matter Advanced Bridge package version 1.7.7 '2026/02/14 10:42 AM' is pushed for an update via HPM (Release branch). There are many improvements and bug fixes related to using the Hubitat newParse:true method.

If you are using the MAB with buttons, locks, CO2, or Power&Energy reporting plugs, make sure the "Use new parse(Map) handler" option is turned on:

Here is an example of Shelly 1PM Gen4 power/energy reporting via Matter :
image


3 Likes

I recently noticed an issue: the latest HPM update for MAB attempts to update the C8-Pro HE to the same version. HPM shows "Updates Available" regardless of the update, and repeatedly updates the up-to-date version to the same up-to-date version. See the attached screenshot:

2 Likes

I was just going to post the identical image.
1.7.7 —-> 1.7.7

I DO have Beta updates enabled for MAB.

2 Likes

That is why. It is doing that because beta updates are on. I have one hub with the beta update on and it does that. The two with it off does not do that.

1 Like

I have updated to version 1.7.7 and turned on the Use new parse handler on the Aqara M3 hub. I am still getting a three-minute delay from the time I press the Aqara mini switch to the light turns on. That is if it ever turns on. This button continues to be the only device I have problems with using the MAB.

1 Like

Addressing this issue with the Aqara mini switch is on my list, but I must first remove the obsolete custom parsers. Supporting both the old and new parsers at the same time has made the code difficult to maintain. The new Beta versions 1.8.x will only function with the newParse: true setting.

I acknowledge the problem; maybe I am doing something wrong with the configuration of the new beta versions. This is something new for me. Everything was fine until the release version and the beta version became the same number.

@csteele do you see any errors in my packageManifest ? Can both the release and the Beta version numbers be the same?

1.7.7. was the latest Beta. I consider it stable, so I copied the same driver version to the main branch :

{
 "packageName":"Matter Advanced Bridge",
 "author":"Krassimir Kossev",
 "version":"1.7.7",
 "betaVersion": "1.7.7",
 "minimumHEVersion":"2.3.8.119",
 "dateReleased":"2026-02-15",
 "releaseNotes":"1.7.7 2026-02-14 - newParse:true Matter message parsing improvements; Buttons, CO2, WindowCovering, Power/Energy Measurement improvements; improved diagnostic (UpTime & RebootCount)\n1.6.0  2026-01-18 - A major refactoring of the Door Lock driver (PIN codes and Users are NOT working yet!); optimized subsciption management; water leak sensors (deviceType 0x0043) automatic detection\n1.5.4  2026-01-08 - added discoveryTimeoutScale; added 'Matter Generic Component Button' driver\n1.5.3  2025-06-28 - added custom decodeTLVToHex() and decodeTLV() as a workaround for the Hubitat bug with TLV decoding\n1.5.2  2025-05-23 - added 'Matter Custom Component Signal'\n1.5.1  2025-04-07 - RMSVoltage and RMSCurrent fix\n1.5.0  2025-04-06 - added 'Matter Custom Component Power Energy'\n1.4.1  2025-01-12 - restored the commands descriptions\n1.4.0  2024-12-26 - HE Platform 2.4.0.x compatibility update\n1.3.1  2024-11-12 - bugfix: nullpointer exception in discoverAllStateMachine()\n1.3.0  2024-10-10 - adding 'Matter Generic Component Air Purifier' (W.I.P.) : cluster 005B 'AirQuality'\n1.2.2  2024-10-11 -  added 'Matter Generic Component SwitchBot Button' by @ymerj\n1.2.1  2024-10-05 - thermostatSetpoint attribute is also updated; Matter Events basic decoding (buttons and Locks are still NOT working!); thermostat driver automatic assignment bug fix; checking both 'maxHeatSetpointLimit' and 'absMaxHeatSetpointLimit' when setting the thermostatSetpoint; thermostatOperatingState is updated (digital); thermostat on() and of() commands bug fix;\n1.2.0  2024-10-03 - [2.3.9.186] platform: cleanSubscribe; decoded events for child devices w/o the attribute defined are sent anyway; added Matter Thermostats.\n1.1.3  2024-08-09 - fixed sendSubsribeList() typo;\n1.1.2  2024-07-31  - skipped General Diagnostics cluster 0x0033 discovery - Aqara M3 firmware 4.1.7_0013 returns error reading attribute 0x0000\n1.1.1  2024-07-23 kkossev  - (dev.branch) Added Switch capability to the Matter Door Lock component driver.\n1.1.0  2024-07-20 - merged pull request from dds82 (added Matter_Generic_Component_Door_Lock); added Identify command; reduced battery attribute subscriptions;\n1.0.0 - Initial public release",
 "betaReleaseNotes": "1.7.7  2026-02-14 - bugfix: Power/Energy processing exceptions; 'Matter Custom Component Power Energy' getInfo() method; newParse is true by default\n1.7.6  2026-02-12 - bugfix: WindowCovering processing exceptions; 'Matter Generic Component Window Shade' getInfo() method;\n1.7.5 2026-02-11 - (dev.branch) processing the new callbackType:WriteAttributes and callbackType:SubscribeResult;\n1.7.3  2026-01-30 - (dev.branch) newParse=true by default; bugfixes: RGB&CT bulbs level parsing;\n1.7.2. '2026/01/29 11:59 PM' : (dev. branch) bugfixes: contact/water/motion/lock state parsing issue; child device pings; Patch for Zemismart M1 battery percentage reporting issue;\n1.7.1 2026-01-26 - (dev. branch) reduced debug/warn logging; Best Name auto-label for all child devices @iEnam\n1.7.0  2026-01-25 - (dev. branch) DEVICE_TYPE = 'MATTER_BRIDGE' bug fix in initialize(); added ALPSTUGA Air Quality Monitor support - CarbonDioxideConcentrationMeasurement; improved BasicInformation (0x0028) decoding; added ping() delta calculcation; added cleanSubscribe Min/MaxInterval preferences; added new parse(Map) toggle (experimental, WIP); added matterCommonLib.groovy library for common functions;",
 "communityLink":"https://community.hubitat.com/t/project-zemismart-m1-matter-bridge-for-tuya-zigbee-devices-matter/127009",
 "bundles": [
  {
     "id":"9fa7a4c9-8f3f-4e70-a841-5565e982b35b",
     "name":"Matter Advanced Bridge",
     "location":"https://github.com/kkossev/Hubitat---Matter-Advanced-Bridge/raw/main/MatterAdvancedBridge.zip",
     "betaLocation":"https://github.com/kkossev/Hubitat---Matter-Advanced-Bridge/raw/development/MatterAdvancedBridge.zip",
     "required":true
  }
  ]
}
3 Likes