Skip to content

[matter] matter.js V0.16, Matter 1.4.2, OTA Update support#20070

Merged
lsiepel merged 3 commits intoopenhab:mainfrom
digitaldan:matter-matter.js-0.16
Mar 9, 2026
Merged

[matter] matter.js V0.16, Matter 1.4.2, OTA Update support#20070
lsiepel merged 3 commits intoopenhab:mainfrom
digitaldan:matter-matter.js-0.16

Conversation

@digitaldan
Copy link
Copy Markdown
Contributor

@digitaldan digitaldan commented Jan 14, 2026

I'm setting this as WIP for now, just posting for visibility for the time being as I work on this when i have a few moments.

This upgrades us to matter.js v0.16.10 which supports Matter 1.5 1.4.2.

This also introduces a fully working, end to end OTA update feature, allowing users to use the MainUi to trigger a device firmware update. It includes automatic checking of updates, setting a switch channel if a update is available, and uses the Thing status to display the update progress including a real-time progress indicator of the download process and update state. The README has more detailed information on this process.

Update available (also updates a channel if linked)
ota-update-available

Real-time download status

ota-update-downloading

@lolodomo
Copy link
Copy Markdown
Contributor

Is it really Matter 1.5 or just Matter 1.4.2?

matter-js/matter.js#2976

@digitaldan
Copy link
Copy Markdown
Contributor Author

No, you are right, its 1.4.2 not 1.5! I'll update.

@digitaldan digitaldan changed the title [matter] matter.js V0.16, Matter 1.5, OTA Update support [matter] matter.js V0.16, Matter 1.4.2, OTA Update support Jan 19, 2026
@openhab-bot
Copy link
Copy Markdown
Collaborator

This pull request has been mentioned on openHAB Community. There might be relevant details there:

https://community.openhab.org/t/matter-binding/164601/445

@lolodomo
Copy link
Copy Markdown
Contributor

lolodomo commented Feb 9, 2026

@digitaldan : a "mvn spotless:apply" is required to make your branch building properly.

@digitaldan
Copy link
Copy Markdown
Contributor Author

Thanks, I just have not circled back to it to take a look.

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
@digitaldan digitaldan force-pushed the matter-matter.js-0.16 branch from 88f6b79 to 3a09be2 Compare February 22, 2026 15:54
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
@digitaldan digitaldan marked this pull request as ready for review February 22, 2026 16:04
@digitaldan
Copy link
Copy Markdown
Contributor Author

digitaldan commented Feb 22, 2026

Ok, this is ready now. Please ignore the DTO changed files, these are auto generated, so not much to look at (and we have tests for everything we use).

the matter.js 0.16.10 branch contains a TON of fixes for device connectivity, the only real new feature here is the OTA capability that was missing in the library (its been part of the spec since the beginning).

I know there are a number of issues with devices users are having that this will fix, so I am going to recommend this as a back port for our next patch release, we should try and get this out as soon as we can to users.

Just to let you know Home assistant has switched over to use matter.js as well (and over a websocket like us) , The lead dev, Ingo, is now working full time now on this, so they have been getting a TON of feedback directly and not just from me anymore ;-). Which is why there are a lot of fixes in this release.

@lsiepel lsiepel added the enhancement An enhancement or new feature for an existing add-on label Mar 3, 2026
@lsiepel lsiepel requested a review from Copilot March 3, 2026 16:07
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades the Matter binding’s embedded server/runtime to matter.js v0.16.10 (Matter 1.4.2 support) and adds end-to-end OTA firmware update functionality exposed through openHAB Thing actions, channel(s), and status details.

Changes:

  • Upgrade matter.js packages and Node/npm toolchain; adjust build config (webpack) for Node-only bundling.
  • Add OTA update messaging/types (WS event), firmware update actions/status i18n keys, and an “update available” channel type.
  • Refactor codegen to move global cluster attributes into BaseCluster and update generated cluster DTOs accordingly; apply locale/charset correctness fixes.

Reviewed changes

Copilot reviewed 167 out of 171 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
bundles/org.openhab.binding.matter/src/main/resources/OH-INF/thing/channels.xml Adds OTA “update available” channel type definition.
bundles/org.openhab.binding.matter/src/main/resources/OH-INF/i18n/matter.properties Adds OTA labels/descriptions, action strings, and Thing status details.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/util/ThreadDataset.java Charset/locale correctness for network name and hex formatting.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/util/MatterLabelUtils.java Locale-stable capitalization logic.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/handler/ControllerHandler.java Wires OTA “update available” WS events into firmware provider + node handler.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/ThreadNetworkDiagnosticsConverter.java Uses shared Gson instance via GenericConverter.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/ThreadBorderRouterManagementConverter.java Adjusts dataset parsing for new JSON structure; adds hex conversion helper.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/SwitchConverter.java Locale-stable event name handling; shared Gson usage.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/NetworkCommissioningConverter.java Uses shared Gson instance via GenericConverter.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/GenericConverter.java Introduces shared static GSON for converters.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/GeneralDiagnosticsConverter.java Uses shared Gson instance via GenericConverter.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/DoorLockConverter.java Removes outdated TODO comment about matter.js version.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/ConverterRegistry.java Registers OTA Software Update Requestor converter.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/MatterControllerClient.java Adds OTA query/start/cancel APIs; locale-stable QR prefix check.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/ws/OtaUpdateInfo.java Adds DTO for OTA update info.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/ws/OtaUpdateAvailableMessage.java Adds WS event DTO for OTA update available.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/WiFiNetworkManagementCluster.java Removes global attribute fields; minor doc fix.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/WaterTankLevelMonitoringCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/WaterHeaterModeCluster.java Removes global attribute fields; expands/updates documentation.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/WaterHeaterManagementCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/WakeOnLanCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ValveConfigurationAndControlCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/UserLabelCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/UnitLocalizationCluster.java Removes global attribute fields; adds supported temperature units attribute.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/TotalVolatileOrganicCompoundsConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/TimeFormatLocalizationCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ThreadNetworkDirectoryCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ThreadBorderRouterManagementCluster.java Removes global attribute fields; minor doc/typo update.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ThermostatUserInterfaceConfigurationCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/TemperatureMeasurementCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/TemperatureControlCluster.java Removes global attribute fields; adds/adjusts documentation.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/TargetNavigatorCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/SoftwareDiagnosticsCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/SmokeCoAlarmCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ScenesManagementCluster.java Removes global attribute fields; trims large spec excerpt; removes lastConfiguredBy.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RvcRunModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RvcCleanModeCluster.java Removes global attribute fields; adds VACUUM_THEN_MOP mode tag.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RelativeHumidityMeasurementCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RefrigeratorAndTemperatureControlledCabinetModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RefrigeratorAlarmCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/RadonConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/PressureMeasurementCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/PowerTopologyCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/PowerSourceConfigurationCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/Pm25ConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/Pm1ConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/Pm10ConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/OzoneConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/OtaSoftwareUpdateRequestorCluster.java Removes global attribute fields (moved to BaseCluster).
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/OtaSoftwareUpdateProviderCluster.java Removes global attribute fields (moved to BaseCluster).
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/OnOffCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/OccupancySensingCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/NitrogenDioxideConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ModeSelectCluster.java Removes global attribute fields; documentation updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/MicrowaveOvenModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/MicrowaveOvenControlCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/MediaInputCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/LowPowerCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/LocalizationConfigurationCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/LaundryWasherControlsCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/LaundryDryerControlsCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/KeypadInputCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/IlluminanceMeasurementCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/IdentifyCluster.java Removes global attribute fields; documentation expanded.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/HepaFilterMonitoringCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/GroupsCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/GeneralDiagnosticsCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/FormaldehydeConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/FlowMeasurementCluster.java Removes global attribute fields; documentation correction for units.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/FixedLabelCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/EnergyPreferenceCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/EnergyEvseModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ElectricalEnergyMeasurementCluster.java Removes global attribute fields; adds MeasurementTypeEnum; documentation updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/EcosystemInformationCluster.java Removes global attribute fields; introduces local DeviceTypeStruct and uses it in device directory.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/DishwasherModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/DishwasherAlarmCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/DiagnosticLogsCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/DeviceEnergyManagementModeCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/DescriptorCluster.java Removes global attribute fields; adds endpointUniqueId attribute + docs.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ContentLauncherCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ContentControlCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ContentAppObserverCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/CommissionerControlCluster.java Removes global attribute fields; renames clientNodeID to clientNodeId.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ClusterRegistry.java Adjusts cluster ID mappings (removals/additions).
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ChannelCluster.java Removes global attribute fields; expands documentation.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/CarbonMonoxideConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/CarbonDioxideConcentrationMeasurementCluster.java Removes global attribute fields; documentation fixes/typo corrections.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/BooleanStateCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/BindingCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/AudioOutputCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ApplicationLauncherCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ApplicationBasicCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/AirQualityCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/AdministratorCommissioningCluster.java Removes global attribute fields; documentation update.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/ActivatedCarbonFilterMonitoringCluster.java Removes global attribute fields.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/AccountLoginCluster.java Removes global attribute fields; documentation formatting updates.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/NodeJSRuntimeManager.java Locale/charset correctness for platform detection and process output reading.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/MatterWebsocketService.java Charset correctness while processing server output streams.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/MatterWebsocketClient.java Adds OTA “updateAvailable” event handling; improves OctetString deserialization.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/MatterClientListener.java Adds OTA update available callback to client listener interface.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/bridge/devices/ModeSelectDevice.java Locale-stable uppercasing; command mapping stability.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/bridge/MatterBridge.java Implements no-op handler for new OTA update event type.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/MatterHandlerFactory.java Injects MatterFirmwareProvider and passes it into controller handler.
bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/MatterBindingConstants.java Adds OTA channel/action/status constants and OTA i18n keys.
bundles/org.openhab.binding.matter/pom.xml Upgrades Node/npm versions used by frontend-maven-plugin.
bundles/org.openhab.binding.matter/matter-server/webpack.config.js Adds Bun-module excludes/ignores for Node-targeted bundling.
bundles/org.openhab.binding.matter/matter-server/src/client/namespaces/Clusters.ts Updates import path for SupportedAttributeClient per matter.js changes.
bundles/org.openhab.binding.matter/matter-server/src/bridge/behaviors/CustomThermostatServer.ts Refactors thermostat defaults into mode-specific sets (but leaves DEFAULTS empty).
bundles/org.openhab.binding.matter/matter-server/src/bridge/behaviors/CustomFanControlServer.ts Adjusts initialize override signature and call.
bundles/org.openhab.binding.matter/matter-server/src/bridge/DeviceNode.ts Changes storage reset behavior and fabric removal behavior.
bundles/org.openhab.binding.matter/matter-server/src/MessageTypes.ts Adds UpdateAvailable event type and UpdateAvailableEvent payload shape.
bundles/org.openhab.binding.matter/matter-server/package.json Upgrades matter.js deps to v0.16.10.
bundles/org.openhab.binding.matter/code-gen/src/templates/base-cluster.java.hbs Adds global cluster attributes/constants generation into BaseCluster.
bundles/org.openhab.binding.matter/code-gen/src/app.ts Filters global cluster attributes from per-cluster generation; passes globals to BaseCluster template.
bundles/org.openhab.binding.matter/code-gen/package.json Upgrades codegen’s @matter/main dependency to v0.16.10.
Files not reviewed (2)
  • bundles/org.openhab.binding.matter/code-gen/package-lock.json: Language not supported
  • bundles/org.openhab.binding.matter/matter-server/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)

bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/client/dto/cluster/gen/CommissionerControlCluster.java:1

  • Renaming the field from clientNodeID to clientNodeId can break Gson JSON (de)serialization if the upstream payload still uses clientNodeID (common for “ID” abbreviations). To keep wire compatibility, either keep the original field name or annotate the new field with @SerializedName("clientNodeID") (and optionally an alternate) so both spellings deserialize correctly.
    bundles/org.openhab.binding.matter/src/main/java/org/openhab/binding/matter/internal/controller/devices/converter/ThreadBorderRouterManagementConverter.java:1
  • Using String.format inside a loop is relatively expensive and creates many temporary objects. Consider formatting bytes using a small lookup table / manual hex conversion, and if you keep String.format, at least use the locale-stable overload (e.g., String.format(Locale.ROOT, ...)) to avoid locale-sensitive behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

@lsiepel lsiepel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, seems like a very usefull update!

Comment thread bundles/org.openhab.binding.matter/README.md
Comment thread bundles/org.openhab.binding.matter/README.md
@lsiepel
Copy link
Copy Markdown
Contributor

lsiepel commented Mar 6, 2026

@digitaldan would be nice to finish this as it probably allows me to enable the markdown lint check by #19010

@lolodomo
Copy link
Copy Markdown
Contributor

lolodomo commented Mar 7, 2026

@digitaldan : is it normal to get a status "Unknown" for firmware?
image

Here is the result when I use the action to check if firmware update is available:
image

After running the action, the firmware status remains unchanged, that is "Unknown".

@digitaldan
Copy link
Copy Markdown
Contributor Author

@lsiepel I'll take a look today, unfortunately i have not been able to work on OH related stuff for the last 2 weeks.

@lolodomo I take it you are running a nightly version of the Main UI? Chris added in firmware support there recently , and i do support the openHAB firmware framework in addition to having a thing action to check, I'll look into if this is a problem with my implementation, or if its an issue with the main ui.

@lolodomo
Copy link
Copy Markdown
Contributor

lolodomo commented Mar 7, 2026

I am running a recent snapshot, 5202.

@lsiepel
Copy link
Copy Markdown
Contributor

lsiepel commented Mar 8, 2026

We want to wait for the firmware issue, or can we fix that later ?

Signed-off-by: Dan Cunningham <dan@digitaldan.com>
@digitaldan
Copy link
Copy Markdown
Contributor Author

@lsiepel Lets go ahead and merge if you are good, i'll look at the firmware update status this week and if needed open another PR (either here, main ui, etc..) Thanks!

@lsiepel lsiepel merged commit 8f94091 into openhab:main Mar 9, 2026
2 checks passed
@lsiepel lsiepel added this to the 5.2 milestone Mar 9, 2026
@jlaur jlaur mentioned this pull request Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement An enhancement or new feature for an existing add-on

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants