Skip to content

Commit 1c21ec5

Browse files
authored
Merge pull request #2615 from SmartThingsCommunity/add/aqs-modular-update-support
Matter Sensor: Allow modular profile updates in infoChanged
2 parents 55711d7 + 684579f commit 1c21ec5

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

drivers/SmartThings/matter-sensor/src/sub_drivers/air_quality_sensor/air_quality_sensor_utils/device_configuration.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ function DeviceConfiguration.match_profile(device)
7171
end
7272

7373
device:try_update_metadata({profile = profile_name, optional_component_capabilities = optional_supported_component_capabilities})
74+
device:set_field(fields.MODULAR_PROFILE_UPDATED, true)
7475

7576
-- earlier modular profile gating (min api v14, rpc 8) ensures we are running >= 0.57 FW.
7677
-- This gating specifies a workaround required only for 0.57 FW, which is not needed for 0.58 and higher.

drivers/SmartThings/matter-sensor/src/sub_drivers/air_quality_sensor/air_quality_sensor_utils/fields.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ local AirQualitySensorFields = {}
2626

2727
AirQualitySensorFields.AIR_QUALITY_SENSOR_DEVICE_TYPE_ID = 0x002C
2828

29+
AirQualitySensorFields.MODULAR_PROFILE_UPDATED = "__modular_profile_updated"
30+
2931
AirQualitySensorFields.SUPPORTED_COMPONENT_CAPABILITIES = "__supported_component_capabilities"
3032

3133
AirQualitySensorFields.units_required = {

drivers/SmartThings/matter-sensor/src/sub_drivers/air_quality_sensor/init.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,12 @@ function AirQualitySensorLifecycleHandlers.device_init(driver, device)
6666
end
6767

6868
function AirQualitySensorLifecycleHandlers.info_changed(driver, device, event, args)
69-
if device.profile.id ~= args.old_st_store.profile.id then
69+
if device.profile.id ~= args.old_st_store.profile.id or device:get_field(fields.MODULAR_PROFILE_UPDATED) then
7070
if device:get_field(fields.SUPPORTED_COMPONENT_CAPABILITIES) then
7171
--re-up subscription with new capabilities using the modular supports_capability override
7272
device:extend_device("supports_capability_by_id", aqs_utils.supports_capability_by_id_modular)
7373
end
74+
device:set_field(fields.MODULAR_PROFILE_UPDATED, nil)
7475
aqs_utils.set_supported_health_concern_values(device)
7576
device:subscribe()
7677
end

0 commit comments

Comments
 (0)