From b737c06d271382120186e16a55114834f3994891 Mon Sep 17 00:00:00 2001 From: Alec Lorimer Date: Thu, 17 Jul 2025 13:34:21 -0500 Subject: [PATCH] CHAD-15777: temperatureMeasurement:temperature registering for native handlers for zwave and zigbee --- drivers/SmartThings/matter-sensor/src/init.lua | 3 +++ drivers/SmartThings/matter-switch/src/init.lua | 3 +++ drivers/SmartThings/zigbee-thermostat/src/init.lua | 4 +++- .../SmartThings/zwave-sensor/src/fibaro-flood-sensor/init.lua | 3 +++ drivers/SmartThings/zwave-thermostat/src/init.lua | 4 +++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/SmartThings/matter-sensor/src/init.lua b/drivers/SmartThings/matter-sensor/src/init.lua index 2495fc1c9e..2cb782c068 100644 --- a/drivers/SmartThings/matter-sensor/src/init.lua +++ b/drivers/SmartThings/matter-sensor/src/init.lua @@ -233,6 +233,9 @@ local function temperature_attr_handler(driver, device, ib, response) local temp = measured_value / 100.0 local unit = "C" device:emit_event_for_endpoint(ib.endpoint_id, capabilities.temperatureMeasurement.temperature({value = temp, unit = unit})) + if type(device.register_native_capability_attr_handler) == "function" then + device:register_native_capability_attr_handler("temperatureMeasurement", "temperature") + end end end diff --git a/drivers/SmartThings/matter-switch/src/init.lua b/drivers/SmartThings/matter-switch/src/init.lua index c4e9d6dceb..5334fcd21c 100644 --- a/drivers/SmartThings/matter-switch/src/init.lua +++ b/drivers/SmartThings/matter-switch/src/init.lua @@ -1328,6 +1328,9 @@ local function temperature_attr_handler(driver, device, ib, response) local temp = measured_value / 100.0 local unit = "C" device:emit_event_for_endpoint(ib.endpoint_id, capabilities.temperatureMeasurement.temperature({value = temp, unit = unit})) + if type(device.register_native_capability_attr_handler) == "function" then + device:register_native_capability_attr_handler("temperatureMeasurement", "temperature") + end end end diff --git a/drivers/SmartThings/zigbee-thermostat/src/init.lua b/drivers/SmartThings/zigbee-thermostat/src/init.lua index 0a5e82350e..38daff35f1 100644 --- a/drivers/SmartThings/zigbee-thermostat/src/init.lua +++ b/drivers/SmartThings/zigbee-thermostat/src/init.lua @@ -379,6 +379,8 @@ local zigbee_thermostat_driver = { health_check = false, } -defaults.register_for_default_handlers(zigbee_thermostat_driver, zigbee_thermostat_driver.supported_capabilities) +defaults.register_for_default_handlers( + zigbee_thermostat_driver, zigbee_thermostat_driver.supported_capabilities, + {native_capability_attrs_enabled = true}) local thermostat = ZigbeeDriver("zigbee-thermostat", zigbee_thermostat_driver) thermostat:run() diff --git a/drivers/SmartThings/zwave-sensor/src/fibaro-flood-sensor/init.lua b/drivers/SmartThings/zwave-sensor/src/fibaro-flood-sensor/init.lua index a407322212..f92a417199 100644 --- a/drivers/SmartThings/zwave-sensor/src/fibaro-flood-sensor/init.lua +++ b/drivers/SmartThings/zwave-sensor/src/fibaro-flood-sensor/init.lua @@ -78,6 +78,9 @@ local function sensor_multilevel_report_handler(self, device, cmd) local scale = 'C' if (cmd.args.scale == SensorMultilevel.scale.temperature.FAHRENHEIT) then scale = 'F' end device:emit_event(capabilities.temperatureMeasurement.temperature({value = cmd.args.sensor_value, unit = scale})) + if type(device.register_native_capability_attr_handler) == "function" then + device:register_native_capability_attr_handler("temperatureMeasurement","temperature") + end end end diff --git a/drivers/SmartThings/zwave-thermostat/src/init.lua b/drivers/SmartThings/zwave-thermostat/src/init.lua index 8943aa7629..fce15ca3c2 100755 --- a/drivers/SmartThings/zwave-thermostat/src/init.lua +++ b/drivers/SmartThings/zwave-thermostat/src/init.lua @@ -127,7 +127,9 @@ local driver_template = { } } -defaults.register_for_default_handlers(driver_template, driver_template.supported_capabilities) +defaults.register_for_default_handlers( + driver_template, driver_template.supported_capabilities, + {native_capability_attrs_enabled = true}) --- @type st.zwave.Driver local thermostat = ZwaveDriver("zwave_thermostat", driver_template) thermostat:run()