Skip to content

Commit 8db0b18

Browse files
committed
CHAD-15951 & 15777: Native handler registration fixes for Matter Powermeter and Z-wave Temperaturemeasurement
- Fixed tests and other tests where we are now registering for switch native handlers
1 parent 39b5cbf commit 8db0b18

File tree

12 files changed

+144
-10
lines changed

12 files changed

+144
-10
lines changed

drivers/SmartThings/matter-switch/src/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,9 @@ local function active_power_handler(driver, device, ib, response)
12061206
local watt_value = ib.data.value / CONVERSION_CONST_MILLIWATT_TO_WATT
12071207
if ib.endpoint_id ~= 0 then
12081208
device:emit_event_for_endpoint(ib.endpoint_id, capabilities.powerMeter.power({ value = watt_value, unit = "W"}))
1209+
if type(device.register_native_capability_attr_handler) == "function" then
1210+
device:register_native_capability_attr_handler("powerMeter","power")
1211+
end
12091212
else
12101213
-- when energy management is defined in the root endpoint(0), replace it with the first switch endpoint and process it.
12111214
device:emit_event_for_endpoint(device:get_field(ENERGY_MANAGEMENT_ENDPOINT), capabilities.powerMeter.power({ value = watt_value, unit = "W"}))

drivers/SmartThings/matter-switch/src/test/test_electrical_sensor.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,14 @@ test.register_message_test(
238238
direction = "send",
239239
message = mock_device:generate_test_message("main", capabilities.powerMeter.power({value = 17.0, unit="W"}))
240240
},
241+
{
242+
channel = "devices",
243+
direction = "send",
244+
message = {
245+
"register_native_capability_attr_handler",
246+
{ device_uuid = mock_device.id, capability_id = "powerMeter", capability_attr_id = "power" }
247+
}
248+
}
241249
}
242250
)
243251

drivers/SmartThings/matter-thermostat/src/init.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,6 +1964,9 @@ local function active_power_handler(driver, device, ib, response)
19641964
if ib.data.value then
19651965
local watt_value = ib.data.value / 1000
19661966
device:emit_event_for_endpoint(ib.endpoint_id, capabilities.powerMeter.power({ value = watt_value, unit = "W" }))
1967+
if type(device.register_native_capability_attr_handler) == "function" then
1968+
device:register_native_capability_attr_handler("powerMeter","power")
1969+
end
19671970
end
19681971
end
19691972

drivers/SmartThings/matter-thermostat/src/test/test_matter_water_heater.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,14 @@ test.register_message_test(
268268
channel = "capability",
269269
direction = "send",
270270
message = mock_device:generate_test_message("main", capabilities.powerMeter.power({ value = 15.0, unit = "W" }))
271+
},
272+
{
273+
channel = "devices",
274+
direction = "send",
275+
message = {
276+
"register_native_capability_attr_handler",
277+
{ device_uuid = mock_device.id, capability_id = "powerMeter", capability_attr_id = "power" }
278+
}
271279
}
272280
}
273281
)

drivers/SmartThings/zwave-sensor/src/init.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,9 @@ local driver_template = {
170170
},
171171
}
172172

173-
defaults.register_for_default_handlers(driver_template, driver_template.supported_capabilities)
173+
defaults.register_for_default_handlers(driver_template,
174+
driver_template.supported_capabilities,
175+
{native_capability_attrs_enabled = true})
174176
--- @type st.zwave.Driver
175177
local sensor = ZwaveDriver("zwave_sensor", driver_template)
176178
sensor:run()

drivers/SmartThings/zwave-sensor/src/test/test_fibaro_door_window_sensor_1.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,14 @@ test.register_message_test(
255255
channel = "capability",
256256
direction = "send",
257257
message = mock_fibaro_door_window_sensor1:generate_test_message("main", capabilities.contactSensor.contact.open())
258+
},
259+
{
260+
channel = "devices",
261+
direction = "send",
262+
message = {
263+
"register_native_capability_attr_handler",
264+
{ device_uuid = mock_fibaro_door_window_sensor1.id, capability_id = "switch", capability_attr_id = "switch" }
265+
}
258266
}
259267
}
260268
)
@@ -271,6 +279,14 @@ test.register_message_test(
271279
channel = "capability",
272280
direction = "send",
273281
message = mock_fibaro_door_window_sensor1:generate_test_message("main", capabilities.contactSensor.contact.closed())
282+
},
283+
{
284+
channel = "devices",
285+
direction = "send",
286+
message = {
287+
"register_native_capability_attr_handler",
288+
{ device_uuid = mock_fibaro_door_window_sensor1.id, capability_id = "switch", capability_attr_id = "switch" }
289+
}
274290
}
275291
}
276292
)

drivers/SmartThings/zwave-sensor/src/test/test_fibaro_motion_sensor.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,14 @@ test.register_message_test(
126126
channel = "capability",
127127
direction = "send",
128128
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
129+
},
130+
{
131+
channel = "devices",
132+
direction = "send",
133+
message = {
134+
"register_native_capability_attr_handler",
135+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
136+
}
129137
}
130138
}
131139
)
@@ -276,6 +284,14 @@ test.register_message_test(
276284
channel = "capability",
277285
direction = "send",
278286
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
287+
},
288+
{
289+
channel = "devices",
290+
direction = "send",
291+
message = {
292+
"register_native_capability_attr_handler",
293+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
294+
}
279295
}
280296
}
281297
)

drivers/SmartThings/zwave-sensor/src/test/test_generic_sensor.lua

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,12 @@ test.register_message_test(
362362
{
363363
channel = "capability",
364364
direction = "send",
365-
message = mock_device:generate_test_message("main", capabilities.contactSensor.contact.closed())
365+
message = mock_device:generate_test_message("main", capabilities.waterSensor.water.dry())
366366
},
367367
{
368368
channel = "capability",
369369
direction = "send",
370-
message = mock_device:generate_test_message("main", capabilities.waterSensor.water.dry())
370+
message = mock_device:generate_test_message("main", capabilities.contactSensor.contact.closed())
371371
},
372372
{
373373
channel = "capability",
@@ -378,9 +378,16 @@ test.register_message_test(
378378
channel = "zwave",
379379
direction = "send",
380380
message = zw_test_utils.zwave_test_build_send_command(mock_device, Meter:Get({ scale = 2 }))
381+
},
382+
{
383+
channel = "devices",
384+
direction = "send",
385+
message = {
386+
"register_native_capability_attr_handler",
387+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
388+
}
381389
}
382-
},
383-
{ inner_block_ordering = "relaxed" }
390+
}
384391
)
385392

386393
test.register_message_test(
@@ -396,12 +403,12 @@ test.register_message_test(
396403
{
397404
channel = "capability",
398405
direction = "send",
399-
message = mock_device:generate_test_message("main", capabilities.contactSensor.contact.open())
406+
message = mock_device:generate_test_message("main", capabilities.waterSensor.water.wet())
400407
},
401408
{
402409
channel = "capability",
403410
direction = "send",
404-
message = mock_device:generate_test_message("main", capabilities.waterSensor.water.wet())
411+
message = mock_device:generate_test_message("main", capabilities.contactSensor.contact.open())
405412
},
406413
{
407414
channel = "capability",
@@ -412,9 +419,16 @@ test.register_message_test(
412419
channel = "zwave",
413420
direction = "send",
414421
message = zw_test_utils.zwave_test_build_send_command(mock_device, Meter:Get({ scale = 2 }))
422+
},
423+
{
424+
channel = "devices",
425+
direction = "send",
426+
message = {
427+
"register_native_capability_attr_handler",
428+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
429+
}
415430
}
416-
},
417-
{ inner_block_ordering = "relaxed" }
431+
}
418432
)
419433

420434
test.register_message_test(

drivers/SmartThings/zwave-sensor/src/test/test_zwave_motion_light_sensor.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ test.register_message_test(
8282
channel = "capability",
8383
direction = "send",
8484
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
85+
},
86+
{
87+
channel = "devices",
88+
direction = "send",
89+
message = {
90+
"register_native_capability_attr_handler",
91+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
92+
}
8593
}
8694
}
8795
)
@@ -212,6 +220,14 @@ test.register_message_test(
212220
channel = "capability",
213221
direction = "send",
214222
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
223+
},
224+
{
225+
channel = "devices",
226+
direction = "send",
227+
message = {
228+
"register_native_capability_attr_handler",
229+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
230+
}
215231
}
216232
}
217233
)

drivers/SmartThings/zwave-sensor/src/test/test_zwave_motion_temp_light_sensor.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ test.register_message_test(
7878
channel = "capability",
7979
direction = "send",
8080
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
81+
},
82+
{
83+
channel = "devices",
84+
direction = "send",
85+
message = {
86+
"register_native_capability_attr_handler",
87+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
88+
}
8189
}
8290
}
8391
)
@@ -189,6 +197,14 @@ test.register_message_test(
189197
channel = "capability",
190198
direction = "send",
191199
message = mock_device:generate_test_message("main", capabilities.motionSensor.motion.active())
200+
},
201+
{
202+
channel = "devices",
203+
direction = "send",
204+
message = {
205+
"register_native_capability_attr_handler",
206+
{ device_uuid = mock_device.id, capability_id = "switch", capability_attr_id = "switch" }
207+
}
192208
}
193209
}
194210
)

0 commit comments

Comments
 (0)