Skip to content

Commit 7fc35dc

Browse files
committed
ZLL: use native / default handlers
1 parent eb5199c commit 7fc35dc

File tree

6 files changed

+108
-46
lines changed

6 files changed

+108
-46
lines changed

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

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ local test = require "integration_test"
1616
local capabilities = require "st.capabilities"
1717
local clusters = require "st.zigbee.zcl.clusters"
1818
local t_utils = require "integration_test.utils"
19+
local version = require "version"
1920
local zigbee_test_utils = require "integration_test.zigbee_test_utils"
2021

2122
local OnOff = clusters.OnOff
@@ -116,15 +117,18 @@ test.register_coroutine_test(
116117
test.socket.zigbee:__set_channel_ordering("relaxed")
117118
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
118119
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "on", args = {} } })
120+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "on") end
119121

120122
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.On(mock_device) })
121123

122-
test.wait_for_events()
123-
test.mock_time.advance_time(2)
124+
if version.api <= 15 then
125+
test.wait_for_events()
126+
test.mock_time.advance_time(2)
124127

125-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
126-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
127-
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
128+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
129+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
130+
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
131+
end
128132
end
129133
)
130134

@@ -134,15 +138,18 @@ test.register_coroutine_test(
134138
test.socket.zigbee:__set_channel_ordering("relaxed")
135139
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
136140
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "off", args = {} } })
141+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "off") end
137142

138143
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.Off(mock_device) })
139144

140-
test.wait_for_events()
141-
test.mock_time.advance_time(2)
145+
if version.api <= 15 then
146+
test.wait_for_events()
147+
test.mock_time.advance_time(2)
142148

143-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
144-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
145-
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
149+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
150+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
151+
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
152+
end
146153
end
147154
)
148155

@@ -152,15 +159,18 @@ test.register_coroutine_test(
152159
test.socket.zigbee:__set_channel_ordering("relaxed")
153160
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
154161
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switchLevel", component = "main", command = "setLevel", args = { 57 } } })
162+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switchLevel", "setLevel") end
155163

156164
test.socket.zigbee:__expect_send({ mock_device.id, Level.server.commands.MoveToLevelWithOnOff(mock_device, 144, 0xFFFF) })
157165

158-
test.wait_for_events()
159-
test.mock_time.advance_time(2)
166+
if version.api <= 15 then
167+
test.wait_for_events()
168+
test.mock_time.advance_time(2)
160169

161-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
162-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
163-
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
170+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
171+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
172+
test.socket.zigbee:__expect_send({ mock_device.id, IASZone.attributes.ZoneStatus:read(mock_device) })
173+
end
164174
end
165175
)
166176

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

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
local test = require "integration_test"
1616
local clusters = require "st.zigbee.zcl.clusters"
1717
local t_utils = require "integration_test.utils"
18+
local version = require "version"
1819
local zigbee_test_utils = require "integration_test.zigbee_test_utils"
1920

2021
local OnOff = clusters.OnOff
@@ -83,6 +84,7 @@ test.register_coroutine_test(
8384
test.socket.zigbee:__set_channel_ordering("relaxed")
8485
test.timer.__create_and_queue_test_time_advance_timer(1, "oneshot")
8586
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "on", args = {} } })
87+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "on") end
8688
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.On(mock_device)})
8789
test.wait_for_events()
8890
test.mock_time.advance_time(2)
@@ -98,12 +100,17 @@ test.register_coroutine_test(
98100
test.socket.zigbee:__set_channel_ordering("relaxed")
99101
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
100102
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "off", args = {} } })
103+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "off") end
104+
101105
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.Off(mock_device)})
102106
test.wait_for_events()
103107
test.mock_time.advance_time(2)
104108
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
105-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
106-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
109+
110+
if version.api <= 15 then
111+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
112+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
113+
end
107114
end
108115
)
109116

@@ -113,12 +120,13 @@ test.register_coroutine_test(
113120
test.socket.zigbee:__set_channel_ordering("relaxed")
114121
test.timer.__create_and_queue_test_time_advance_timer(1, "oneshot")
115122
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switchLevel", component = "main", command = "setLevel", args = {50} } })
123+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switchLevel", "setLevel") end
116124
test.socket.zigbee:__expect_send({ mock_device.id, Level.commands.MoveToLevelWithOnOff(mock_device, math.floor(50 / 100.0 * 254), 0xFFFF)})
117125
test.wait_for_events()
118126
test.mock_time.advance_time(2)
119-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
127+
if version.api <= 15 then test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) }) end
120128
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
121-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
129+
if version.api <= 15 then test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) }) end
122130
end
123131
)
124132

@@ -128,12 +136,15 @@ test.register_coroutine_test(
128136
test.socket.zigbee:__set_channel_ordering("relaxed")
129137
test.timer.__create_and_queue_test_time_advance_timer(1, "oneshot")
130138
test.socket.capability:__queue_receive({ mock_device.id, { capability = "colorTemperature", component = "main", command = "setColorTemperature", args = {200} } })
139+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("colorTemperature", "setColorTemperature") end
131140
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.On(mock_device)})
132141
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.commands.MoveToColorTemperature(mock_device, 5000, 0x0000)})
133142
test.wait_for_events()
134143
test.mock_time.advance_time(2)
135-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
136-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
144+
if version.api <= 15 then
145+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
146+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
147+
end
137148
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
138149
end
139150
)

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

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
local test = require "integration_test"
1616
local clusters = require "st.zigbee.zcl.clusters"
1717
local t_utils = require "integration_test.utils"
18+
local version = require "version"
1819
local zigbee_test_utils = require "integration_test.zigbee_test_utils"
1920

2021
local OnOff = clusters.OnOff
2122
local Level = clusters.Level
23+
local ColorControl = clusters.ColorControl
2224

2325
local mock_device = test.mock_device.build_test_zigbee_device(
2426
{ profile = t_utils.get_profile_definition("on-off-level.yml"),
@@ -121,6 +123,7 @@ test.register_coroutine_test(
121123
test.socket.zigbee:__set_channel_ordering("relaxed")
122124
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
123125
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "on", args = {} } })
126+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "on") end
124127

125128
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.On(mock_device) })
126129

@@ -129,6 +132,9 @@ test.register_coroutine_test(
129132

130133
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
131134
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
135+
if version.api > 15 then
136+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
137+
end
132138
end
133139
)
134140

@@ -138,14 +144,17 @@ test.register_coroutine_test(
138144
test.socket.zigbee:__set_channel_ordering("relaxed")
139145
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
140146
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "off", args = {} } })
147+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "off") end
141148

142149
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.Off(mock_device) })
143150

144151
test.wait_for_events()
145152
test.mock_time.advance_time(2)
146153

147154
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
148-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
155+
if version.api <= 15 then
156+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
157+
end
149158
end
150159
)
151160

@@ -155,13 +164,16 @@ test.register_coroutine_test(
155164
test.socket.zigbee:__set_channel_ordering("relaxed")
156165
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
157166
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switchLevel", component = "main", command = "setLevel", args = { 57 } } })
167+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switchLevel", "setLevel") end
158168

159169
test.socket.zigbee:__expect_send({ mock_device.id, Level.server.commands.MoveToLevelWithOnOff(mock_device, 144, 0xFFFF) })
160170

161171
test.wait_for_events()
162172
test.mock_time.advance_time(2)
163173

164-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
174+
if version.api <= 15 then
175+
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
176+
end
165177
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
166178
end
167179
)

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

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ local test = require "integration_test"
1616
local capabilities = require "st.capabilities"
1717
local clusters = require "st.zigbee.zcl.clusters"
1818
local t_utils = require "integration_test.utils"
19+
local version = require "version"
1920
local zigbee_test_utils = require "integration_test.zigbee_test_utils"
2021

2122
local OnOff = clusters.OnOff
@@ -149,6 +150,7 @@ test.register_coroutine_test(
149150
test.socket.zigbee:__set_channel_ordering("relaxed")
150151
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
151152
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "on", args = {} } })
153+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "on") end
152154

153155
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.On(mock_device) })
154156

@@ -157,8 +159,12 @@ test.register_coroutine_test(
157159

158160
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
159161
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
160-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
161-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
162+
if version.api <= 15 then
163+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
164+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
165+
else
166+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.ColorTemperatureMireds:read(mock_device) })
167+
end
162168
end
163169
)
164170

@@ -168,16 +174,19 @@ test.register_coroutine_test(
168174
test.socket.zigbee:__set_channel_ordering("relaxed")
169175
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
170176
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switch", component = "main", command = "off", args = {} } })
177+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switch", "off") end
171178

172179
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.commands.Off(mock_device) })
173180

174181
test.wait_for_events()
175182
test.mock_time.advance_time(2)
176183

177184
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
178-
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
179-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
180-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
185+
if version.api <= 15 then
186+
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
187+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
188+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
189+
end
181190
end
182191
)
183192

@@ -187,16 +196,19 @@ test.register_coroutine_test(
187196
test.socket.zigbee:__set_channel_ordering("relaxed")
188197
test.timer.__create_and_queue_test_time_advance_timer(2, "oneshot")
189198
test.socket.capability:__queue_receive({ mock_device.id, { capability = "switchLevel", component = "main", command = "setLevel", args = { 57 } } })
199+
if version.api > 15 then mock_device:expect_native_cmd_handler_registration("switchLevel", "setLevel") end
190200

191201
test.socket.zigbee:__expect_send({ mock_device.id, Level.server.commands.MoveToLevelWithOnOff(mock_device, 144, 0xFFFF) })
192202

193203
test.wait_for_events()
194204
test.mock_time.advance_time(2)
195205

196-
test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) })
206+
if version.api <= 15 then test.socket.zigbee:__expect_send({ mock_device.id, OnOff.attributes.OnOff:read(mock_device) }) end
197207
test.socket.zigbee:__expect_send({ mock_device.id, Level.attributes.CurrentLevel:read(mock_device) })
198-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
199-
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
208+
if version.api <= 15 then
209+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentX:read(mock_device) })
210+
test.socket.zigbee:__expect_send({ mock_device.id, ColorControl.attributes.CurrentY:read(mock_device) })
211+
end
200212
end
201213
)
202214

0 commit comments

Comments
 (0)