Skip to content

Commit 05cce9c

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

File tree

9 files changed

+88
-1
lines changed

9 files changed

+88
-1
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-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()

drivers/SmartThings/zigbee-switch/src/zigbee-metering-plug-power-consumption-report/init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ end
2424

2525
local do_configure = function(self, device)
2626
device:configure()
27+
device:refresh()
2728
end
2829

2930
local device_init = function(self, device)

drivers/SmartThings/zigbee-window-treatment/src/axis/init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ local do_configure = function(self, device)
110110
device:send(WindowCovering.attributes.CurrentPositionLiftPercentage:configure_reporting(device, 1, 3600, 1))
111111
device:send(device_management.build_bind_request(device, PowerConfiguration.ID, self.environment_info.hub_zigbee_eui))
112112
device:send(PowerConfiguration.attributes.BatteryPercentageRemaining:configure_reporting(device, 1, 3600, 1))
113+
device:refresh()
113114
end
114115

115116
local device_added = function(self, device)

drivers/SmartThings/zigbee-window-treatment/src/feibit/init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ end
6161
local do_configure = function(self, device)
6262
device:send(device_management.build_bind_request(device, Level.ID, self.environment_info.hub_zigbee_eui))
6363
device:send(Level.attributes.CurrentLevel:configure_reporting(device, 1, 3600, 1))
64+
device:refresh()
6465
end
6566

6667
local feibit_handler = {

drivers/SmartThings/zigbee-window-treatment/src/test/test_zigbee_window_treatment_axis.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,8 @@ test.register_coroutine_test(
637637
zigbee_test_utils.mock_hub_eui,
638638
PowerConfiguration.ID)
639639
})
640+
test.socket.zigbee:__expect_send({ mock_device.id, PowerConfiguration.attributes.BatteryPercentageRemaining:read(mock_device) })
641+
test.socket.zigbee:__expect_send({ mock_device.id, WindowCovering.attributes.CurrentPositionLiftPercentage:read(mock_device) })
640642
end
641643
)
642644

drivers/SmartThings/zigbee-window-treatment/src/test/test_zigbee_window_treatment_feibit.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ local capabilities = require "st.capabilities"
2020
local t_utils = require "integration_test.utils"
2121

2222
local Level = clusters.Level
23+
local WindowCovering = clusters.WindowCovering
2324

2425
local mock_device = test.mock_device.build_test_zigbee_device(
2526
{ profile = t_utils.get_profile_definition("window-treatment-profile.yml"),
@@ -396,6 +397,7 @@ test.register_coroutine_test(
396397
zigbee_test_utils.mock_hub_eui,
397398
Level.ID)
398399
})
400+
test.socket.zigbee:__expect_send({ mock_device.id, WindowCovering.attributes.CurrentPositionLiftPercentage:read(mock_device) })
399401
mock_device:expect_metadata_update({ provisioning_state = "PROVISIONED" })
400402
end
401403
)

0 commit comments

Comments
 (0)