Skip to content

Commit 8eb6246

Browse files
authored
Merge pull request #2249 from SmartThingsCommunity/bugfix/BUG2-4791
zigbee-contact: Remove incorrect device events from init handler
2 parents 5826ed4 + 9eb40ea commit 8eb6246

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

drivers/SmartThings/zigbee-contact/src/aqara/init.lua

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,6 @@ local function device_init(driver, device)
5555
device:add_configured_attribute(attribute)
5656
device:add_monitored_attribute(attribute)
5757
end
58-
59-
device:emit_event(capabilities.batteryLevel.type("CR1632"))
60-
device:emit_event(capabilities.batteryLevel.quantity(1))
61-
device:emit_event(capabilities.batteryLevel.battery("normal"))
62-
device:emit_event(capabilities.contactSensor.contact.open())
6358
end
6459

6560
local function do_configure(self, device)
@@ -68,6 +63,13 @@ local function do_configure(self, device)
6863
PRIVATE_CLUSTER_ID, PRIVATE_ATTRIBUTE_ID, MFG_CODE, data_types.Uint8, 0x01))
6964
end
7065

66+
local function added_handler(driver, device)
67+
device:emit_event(capabilities.batteryLevel.type("CR1632"))
68+
device:emit_event(capabilities.batteryLevel.quantity(1))
69+
device:emit_event(capabilities.batteryLevel.battery("normal"))
70+
device:emit_event(capabilities.contactSensor.contact.open())
71+
end
72+
7173
local function contact_status_handler(self, device, value, zb_rx)
7274
if value.value == 1 or value.value == true then
7375
device:emit_event(capabilities.contactSensor.contact.open())
@@ -126,7 +128,8 @@ local aqara_contact_handler = {
126128
},
127129
lifecycle_handlers = {
128130
init = device_init,
129-
doConfigure = do_configure
131+
doConfigure = do_configure,
132+
added = added_handler,
130133
},
131134
can_handle = is_aqara_products
132135
}

drivers/SmartThings/zigbee-contact/src/test/test_aqara_contact_sensor.lua

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,6 @@ zigbee_test_utils.prepare_zigbee_env_info()
4747

4848
local function test_init()
4949
test.mock_device.add_test_device(mock_device)
50-
test.socket.capability:__expect_send(mock_device:generate_test_message("main", capabilities.batteryLevel.type("CR1632")))
51-
test.socket.capability:__expect_send(mock_device:generate_test_message("main", capabilities.batteryLevel.quantity(1)))
52-
test.socket.capability:__expect_send(mock_device:generate_test_message("main",
53-
capabilities.batteryLevel.battery("normal")))
54-
test.socket.capability:__expect_send(mock_device:generate_test_message("main",
55-
capabilities.contactSensor.contact.open()))
5650
end
5751

5852
test.set_test_init_function(test_init)
@@ -84,6 +78,19 @@ test.register_coroutine_test(
8478
end
8579
)
8680

81+
test.register_coroutine_test(
82+
"added lifecycle handler",
83+
function()
84+
test.socket.device_lifecycle:__queue_receive({ mock_device.id, "added" })
85+
test.socket.capability:__expect_send(mock_device:generate_test_message("main", capabilities.batteryLevel.type("CR1632")))
86+
test.socket.capability:__expect_send(mock_device:generate_test_message("main", capabilities.batteryLevel.quantity(1)))
87+
test.socket.capability:__expect_send(mock_device:generate_test_message("main",
88+
capabilities.batteryLevel.battery("normal")))
89+
test.socket.capability:__expect_send(mock_device:generate_test_message("main",
90+
capabilities.contactSensor.contact.open()))
91+
end
92+
)
93+
8794
test.register_coroutine_test(
8895
"heartbeat battery events - normal status",
8996
function()

0 commit comments

Comments
 (0)