14
14
15
15
local test = require " integration_test"
16
16
local clusters = require " st.zigbee.zcl.clusters"
17
+ local ElectricalMeasurementCluster = clusters .ElectricalMeasurement
17
18
local OnOffCluster = clusters .OnOff
18
19
local LevelCluster = clusters .Level
19
20
local SimpleMeteringCluster = clusters .SimpleMetering
20
21
local capabilities = require " st.capabilities"
21
22
local t_utils = require " integration_test.utils"
23
+ local zigbee_test_utils = require " integration_test.zigbee_test_utils"
22
24
23
25
local mock_device = test .mock_device .build_test_zigbee_device ({
24
26
profile = t_utils .get_profile_definition (" switch-dimmer-power-energy.yml" ),
@@ -27,19 +29,119 @@ local mock_device = test.mock_device.build_test_zigbee_device({
27
29
id = 1 ,
28
30
manufacturer = " Jasco Products" ,
29
31
model = " 43082" ,
30
- server_clusters = { 0x0000 , 0x0003 , 0x0004 , 0x0005 , 0x0006 , 0x0008 , 0x0702 , 0x0B05 },
32
+ server_clusters = { 0x0000 , 0x0003 , 0x0004 , 0x0005 , 0x0006 , 0x0008 , 0x0702 , 0x0B04 },
31
33
client_clusters = { 0x000A , 0x0019 }
32
34
}
33
35
}
34
36
})
35
37
38
+ zigbee_test_utils .prepare_zigbee_env_info ()
39
+
36
40
local function test_init ()
37
41
mock_device :set_field (" _configuration_version" , 1 , {persist = true })
38
42
test .mock_device .add_test_device (mock_device )
39
43
end
40
44
41
45
test .set_test_init_function (test_init )
42
46
47
+ test .register_coroutine_test (
48
+ " lifecycle configure event should configure device" ,
49
+ function ()
50
+ test .socket .zigbee :__set_channel_ordering (" relaxed" )
51
+ test .socket .device_lifecycle :__queue_receive ({mock_device .id , " doConfigure" })
52
+ test .socket .zigbee :__expect_send ({
53
+ mock_device .id ,
54
+ zigbee_test_utils .build_bind_request (mock_device ,
55
+ zigbee_test_utils .mock_hub_eui ,
56
+ ElectricalMeasurementCluster .ID )
57
+ })
58
+ test .socket .zigbee :__expect_send ({
59
+ mock_device .id ,
60
+ zigbee_test_utils .build_bind_request (mock_device ,
61
+ zigbee_test_utils .mock_hub_eui ,
62
+ OnOffCluster .ID )
63
+ })
64
+ test .socket .zigbee :__expect_send ({
65
+ mock_device .id ,
66
+ zigbee_test_utils .build_bind_request (mock_device ,
67
+ zigbee_test_utils .mock_hub_eui ,
68
+ LevelCluster .ID )
69
+ })
70
+ test .socket .zigbee :__expect_send ({
71
+ mock_device .id ,
72
+ zigbee_test_utils .build_bind_request (mock_device ,
73
+ zigbee_test_utils .mock_hub_eui ,
74
+ SimpleMeteringCluster .ID )
75
+ })
76
+ test .socket .zigbee :__expect_send ({
77
+ mock_device .id ,
78
+ ElectricalMeasurementCluster .attributes .ActivePower :read (mock_device )
79
+ })
80
+ test .socket .zigbee :__expect_send ({
81
+ mock_device .id ,
82
+ ElectricalMeasurementCluster .attributes .ACPowerMultiplier :read (mock_device )
83
+ })
84
+ test .socket .zigbee :__expect_send ({
85
+ mock_device .id ,
86
+ ElectricalMeasurementCluster .attributes .ACPowerDivisor :read (mock_device )
87
+ })
88
+ test .socket .zigbee :__expect_send ({
89
+ mock_device .id ,
90
+ OnOffCluster .attributes .OnOff :read (mock_device )
91
+ })
92
+ test .socket .zigbee :__expect_send ({
93
+ mock_device .id ,
94
+ LevelCluster .attributes .CurrentLevel :read (mock_device )
95
+ })
96
+ test .socket .zigbee :__expect_send ({
97
+ mock_device .id ,
98
+ SimpleMeteringCluster .attributes .InstantaneousDemand :read (mock_device )
99
+ })
100
+ test .socket .zigbee :__expect_send ({
101
+ mock_device .id ,
102
+ SimpleMeteringCluster .attributes .CurrentSummationDelivered :read (mock_device )
103
+ })
104
+ test .socket .zigbee :__expect_send ({
105
+ mock_device .id ,
106
+ SimpleMeteringCluster .attributes .Multiplier :read (mock_device )
107
+ })
108
+ test .socket .zigbee :__expect_send ({
109
+ mock_device .id ,
110
+ SimpleMeteringCluster .attributes .Divisor :read (mock_device )
111
+ })
112
+ test .socket .zigbee :__expect_send ({
113
+ mock_device .id ,
114
+ ElectricalMeasurementCluster .attributes .ACPowerMultiplier :configure_reporting (mock_device , 1 , 43200 , 1 )
115
+ })
116
+ test .socket .zigbee :__expect_send ({
117
+ mock_device .id ,
118
+ ElectricalMeasurementCluster .attributes .ACPowerDivisor :configure_reporting (mock_device , 1 , 43200 , 1 )
119
+ })
120
+ test .socket .zigbee :__expect_send ({
121
+ mock_device .id ,
122
+ ElectricalMeasurementCluster .attributes .ActivePower :configure_reporting (mock_device , 5 , 3600 , 5 )
123
+ })
124
+ test .socket .zigbee :__expect_send ({
125
+ mock_device .id ,
126
+ OnOffCluster .attributes .OnOff :configure_reporting (mock_device , 0 , 300 )
127
+ })
128
+ test .socket .zigbee :__expect_send ({
129
+ mock_device .id ,
130
+ LevelCluster .attributes .CurrentLevel :configure_reporting (mock_device , 1 , 3600 , 1 )
131
+ })
132
+ test .socket .zigbee :__expect_send ({
133
+ mock_device .id ,
134
+ SimpleMeteringCluster .attributes .InstantaneousDemand :configure_reporting (mock_device , 5 , 3600 , 5 )
135
+ })
136
+ test .socket .zigbee :__expect_send ({
137
+ mock_device .id ,
138
+ SimpleMeteringCluster .attributes .CurrentSummationDelivered :configure_reporting (mock_device , 5 , 3600 , 1 )
139
+ })
140
+
141
+ mock_device :expect_metadata_update ({ provisioning_state = " PROVISIONED" })
142
+ end
143
+ )
144
+
43
145
test .register_message_test (
44
146
" Capability command On should be handled" ,
45
147
{
0 commit comments