Skip to content

Commit e7ab0e6

Browse files
committed
Add the ReadAttrbitue or refresh code for the initial state
1 parent bb70244 commit e7ab0e6

File tree

15 files changed

+100
-4
lines changed

15 files changed

+100
-4
lines changed

drivers/SmartThings/zigbee-illuminance-sensor/src/init.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ local capabilities = require "st.capabilities"
1616
local ZigbeeDriver = require "st.zigbee"
1717
local defaults = require "st.zigbee.defaults"
1818

19+
local do_configure = function(self, device)
20+
device:configure()
21+
device:refresh()
22+
end
23+
1924
local zigbee_illuminance_driver = {
2025
supported_capabilities = {
2126
capabilities.illuminanceMeasurement,
@@ -24,6 +29,9 @@ local zigbee_illuminance_driver = {
2429
sub_drivers = {
2530
require("aqara")
2631
},
32+
lifecycle_handlers = {
33+
doConfigure = do_configure,
34+
},
2735
health_check = false,
2836
}
2937

drivers/SmartThings/zigbee-illuminance-sensor/src/test/test_illuminance_sensor.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ test.register_coroutine_test(
107107
zigbee_test_utils.build_bind_request(mock_device, zigbee_test_utils.mock_hub_eui, PowerConfiguration.ID)
108108
}
109109
)
110+
test.socket.zigbee:__expect_send({ mock_device.id, IlluminanceMeasurement.attributes.MeasuredValue:read(mock_device) })
111+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
110112
end
111113
)
112114

drivers/SmartThings/zigbee-lock/src/init.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ local do_configure = function(self, device)
8080

8181
device:send(device_management.build_bind_request(device, Alarm.ID, self.environment_info.hub_zigbee_eui))
8282
device:send(Alarm.attributes.AlarmCount:configure_reporting(device, 0, 21600, 0))
83-
83+
device:send(LockCluster.attributes.LockState:read(device))
84+
device:send(PowerConfiguration.attributes.BatteryPercentageRemaining:read(device))
8485
-- Don't send a reload all codes if this is a part of migration
8586
if device.data.lockCodes == nil or device:get_field(lock_utils.MIGRATION_RELOAD_SKIPPED) == true then
8687
device.thread:call_with_delay(2, function(d)

drivers/SmartThings/zigbee-lock/src/lock-without-codes/init.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ end
5858

5959
local function do_configure(driver, device)
6060
device:configure()
61+
device:send(DoorLock.attributes.LockState:read(device))
62+
device:send(PowerConfiguration.attributes.BatteryPercentageRemaining:read(device))
6163
end
6264

6365
local function handle_lock_door(driver, device, zb_rx)

drivers/SmartThings/zigbee-lock/src/test/test_c2o_lock.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ test.register_coroutine_test(
8080
DoorLock.attributes.LockState:configure_reporting(mock_device, 0, 3600, 1)
8181
}
8282
)
83+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
84+
test.socket.zigbee:__expect_send({ mock_device.id, DoorLock.attributes.LockState:read(mock_device) })
8385
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
8486
end
8587
)

drivers/SmartThings/zigbee-lock/src/test/test_zigbee_lock.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ test.register_coroutine_test(
7979
0,
8080
21600,
8181
0) })
82+
test.socket.zigbee:__expect_send({ mock_device.id, DoorLock.attributes.LockState:read(mock_device) })
83+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
8284

8385
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
8486
test.wait_for_events()

drivers/SmartThings/zigbee-lock/src/test/test_zigbee_lock_code_migration.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ test.register_coroutine_test(
229229
0,
230230
21600,
231231
0) })
232-
232+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
233+
test.socket.zigbee:__expect_send({ mock_device.id, DoorLock.attributes.LockState:read(mock_device) })
233234
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
234235
-- Validate migration reload skipped datastore
235236
test.wait_for_events()

drivers/SmartThings/zigbee-lock/src/test/test_zigbee_yale.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ test.register_coroutine_test(
8888
0,
8989
21600,
9090
0) })
91-
91+
test.socket.zigbee:__expect_send({ mock_device.id, DoorLock.attributes.LockState:read(mock_device) })
92+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
9293
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
9394
test.wait_for_events()
9495

drivers/SmartThings/zigbee-switch/src/test/test_multi_switch_no_master.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,9 @@ test.register_coroutine_test(
469469
3
470470
):to_endpoint(3)
471471
})
472+
test.socket.zigbee:__expect_send({ mock_base_device.id, OnOff.attributes.OnOff:read(mock_base_device) })
473+
test.socket.zigbee:__expect_send({ mock_base_device.id, OnOff.attributes.OnOff:read(mock_base_device):to_endpoint(2) })
474+
test.socket.zigbee:__expect_send({ mock_base_device.id, OnOff.attributes.OnOff:read(mock_base_device):to_endpoint(3) })
472475
mock_base_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
473476
end
474477
)

drivers/SmartThings/zigbee-switch/src/test/test_zigbee_metering_plug_power_consumption_report.lua

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ local test = require "integration_test"
66
local clusters = require "st.zigbee.zcl.clusters"
77
local capabilities = require "st.capabilities"
88
local SimpleMetering = clusters.SimpleMetering
9+
local ElectricalMeasurement = clusters.ElectricalMeasurement
10+
local OnOff = clusters.OnOff
911
local zigbee_test_utils = require "integration_test.zigbee_test_utils"
1012
local t_utils = require "integration_test.utils"
1113

@@ -17,7 +19,7 @@ local mock_device = test.mock_device.build_test_zigbee_device(
1719
id = 1,
1820
manufacturer = "DAWON_DNS",
1921
model = "PM-B430-ZB",
20-
server_clusters = {}
22+
server_clusters = { 0x0000, 0x0002, 0x0003, 0x0006, 0x0702, 0x0B04 }
2123
}
2224
}
2325
}
@@ -81,4 +83,69 @@ test.register_message_test(
8183
}
8284
)
8385

86+
test.register_coroutine_test(
87+
"Configure should configure all necessary attributes and refresh device",
88+
function()
89+
test.socket.device_lifecycle:__queue_receive({ mock_device.id, "doConfigure" })
90+
test.socket.zigbee:__set_channel_ordering("relaxed")
91+
test.socket.zigbee:__expect_send({
92+
mock_device.id,
93+
zigbee_test_utils.build_bind_request(mock_device, zigbee_test_utils.mock_hub_eui, OnOff.ID)
94+
})
95+
test.socket.zigbee:__expect_send({
96+
mock_device.id,
97+
zigbee_test_utils.build_bind_request(mock_device, zigbee_test_utils.mock_hub_eui, ElectricalMeasurement.ID)
98+
})
99+
test.socket.zigbee:__expect_send({
100+
mock_device.id,
101+
zigbee_test_utils.build_bind_request(mock_device, zigbee_test_utils.mock_hub_eui, SimpleMetering.ID)
102+
})
103+
test.socket.zigbee:__expect_send(
104+
{
105+
mock_device.id,
106+
OnOff.attributes.OnOff:configure_reporting(mock_device, 0, 300, 1)
107+
}
108+
)
109+
test.socket.zigbee:__expect_send(
110+
{
111+
mock_device.id,
112+
ElectricalMeasurement.attributes.ACPowerMultiplier:configure_reporting(mock_device, 1, 43200, 1)
113+
}
114+
)
115+
test.socket.zigbee:__expect_send(
116+
{
117+
mock_device.id,
118+
ElectricalMeasurement.attributes.ACPowerDivisor:configure_reporting(mock_device, 1, 43200, 1)
119+
}
120+
)
121+
test.socket.zigbee:__expect_send(
122+
{
123+
mock_device.id,
124+
ElectricalMeasurement.attributes.ActivePower:configure_reporting(mock_device, 5, 3600, 5)
125+
}
126+
)
127+
test.socket.zigbee:__expect_send(
128+
{
129+
mock_device.id,
130+
SimpleMetering.attributes.InstantaneousDemand:configure_reporting(mock_device, 5, 3600, 5)
131+
}
132+
)
133+
test.socket.zigbee:__expect_send(
134+
{
135+
mock_device.id,
136+
SimpleMetering.attributes.CurrentSummationDelivered:configure_reporting(mock_device, 5, 3600, 1)
137+
}
138+
)
139+
140+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
141+
test.socket.zigbee:__expect_send({ mock_device.id, ElectricalMeasurement.attributes.ActivePower:read(mock_device) })
142+
test.socket.zigbee:__expect_send({ mock_device.id, ElectricalMeasurement.attributes.ACPowerDivisor:read(mock_device) })
143+
test.socket.zigbee:__expect_send({ mock_device.id, ElectricalMeasurement.attributes.ACPowerMultiplier:read(mock_device) })
144+
test.socket.zigbee:__expect_send({ mock_device.id, SimpleMetering.attributes.InstantaneousDemand:read(mock_device) })
145+
test.socket.zigbee:__expect_send({ mock_device.id, SimpleMetering.attributes.CurrentSummationDelivered:read(mock_device) })
146+
147+
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
148+
end
149+
)
150+
84151
test.run_registered_tests()

0 commit comments

Comments
 (0)