[matter] matter.js V0.16, Matter 1.4.2, OTA Update support#20070
[matter] matter.js V0.16, Matter 1.4.2, OTA Update support#20070lsiepel merged 3 commits intoopenhab:mainfrom
Conversation
|
Is it really Matter 1.5 or just Matter 1.4.2? |
|
No, you are right, its 1.4.2 not 1.5! I'll update. |
|
This pull request has been mentioned on openHAB Community. There might be relevant details there: |
|
@digitaldan : a "mvn spotless:apply" is required to make your branch building properly. |
|
Thanks, I just have not circled back to it to take a look. |
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
88f6b79 to
3a09be2
Compare
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
|
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. |
There was a problem hiding this comment.
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
BaseClusterand 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
clientNodeIDtoclientNodeIdcan break Gson JSON (de)serialization if the upstream payload still usesclientNodeID(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.formatinside a loop is relatively expensive and creates many temporary objects. Consider formatting bytes using a small lookup table / manual hex conversion, and if you keepString.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.
lsiepel
left a comment
There was a problem hiding this comment.
Thanks, seems like a very usefull update!
|
@digitaldan would be nice to finish this as it probably allows me to enable the markdown lint check by #19010 |
|
@digitaldan : is it normal to get a status "Unknown" for firmware? Here is the result when I use the action to check if firmware update is available: After running the action, the firmware status remains unchanged, that is "Unknown". |
|
@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. |
|
I am running a recent snapshot, 5202. |
|
We want to wait for the firmware issue, or can we fix that later ? |
Signed-off-by: Dan Cunningham <dan@digitaldan.com>
|
@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! |


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.51.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)

Real-time download status