Skip to content

Commit f549eae

Browse files
committed
Adapt test 2.3 to check for events
1 parent 382fb34 commit f549eae

File tree

2 files changed

+56
-9
lines changed

2 files changed

+56
-9
lines changed

examples/all-clusters-app/all-clusters-common/src/WhmDelegateImpl.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,6 @@ bool WaterHeaterManagementDelegate::HasWaterTemperatureReachedTarget() const
371371
{
372372
uint16_t targetTemperature = GetActiveTargetWaterTemperature();
373373

374-
VerifyOrReturnValue(mWaterTemperature >= targetTemperature, false);
375-
376374
if (mBoostState == BoostStateEnum::kActive)
377375
{
378376
if (mBoostTargetTemperatureReached && mBoostTargetReheat.HasValue())
@@ -395,6 +393,15 @@ bool WaterHeaterManagementDelegate::HasWaterTemperatureReachedTarget() const
395393
// If tank percentage is supported AND the targetPercentage.HasValue() then use target percentage to heat up.
396394
VerifyOrReturnValue(mTankPercentage >= mBoostTargetPercentage.Value(), false);
397395
}
396+
else
397+
{
398+
VerifyOrReturnValue(mWaterTemperature >= targetTemperature, false);
399+
}
400+
}
401+
else
402+
{
403+
// Just relying on mWaterTemperature to determine whether the temperature is at the target temperature
404+
VerifyOrReturnValue(mWaterTemperature >= targetTemperature, false);
398405
}
399406

400407
// Must have reached the right temperature

src/python_testing/TC_EWATERHTR_2_3.py

+47-7
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import logging
3131

3232
import chip.clusters as Clusters
33-
from matter_testing_support import MatterBaseTest, TestStep, async_test_body, default_matter_test_main
33+
from matter_testing_support import EventChangeCallback, MatterBaseTest, TestStep, async_test_body, default_matter_test_main
3434
from mobly import asserts
3535
from TC_EWATERHTRBase import EWATERHTRBase
3636

@@ -145,6 +145,12 @@ async def test_TC_EWATERHTR_2_3(self):
145145
self.step("1")
146146
# Commission DUT - already done
147147

148+
# Subscribe to Events and when they are sent push them to a queue for checking later
149+
events_callback = EventChangeCallback(Clusters.WaterHeaterManagement)
150+
await events_callback.start(self.default_controller,
151+
self.dut_node_id,
152+
self.matter_test_config.endpoint)
153+
148154
self.step("2")
149155
await self.check_test_event_triggers_enabled()
150156

@@ -175,6 +181,16 @@ async def test_TC_EWATERHTR_2_3(self):
175181
self.step("4b")
176182
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
177183

184+
################################################################################
185+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
186+
asserts.assert_equal(event_data.boostInfo.duration, 600)
187+
asserts.assert_true(event_data.boostInfo.oneShot is None, "oneShot should be None")
188+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
189+
asserts.assert_true(event_data.boostInfo.temporarySetpoint is None, "temporarySetpoint should be None")
190+
asserts.assert_equal(event_data.boostInfo.targetPercentage, 100)
191+
asserts.assert_true(event_data.boostInfo.targetReheat is None, "targetReheat should be None")
192+
################################################################################
193+
178194
self.step("5")
179195
await self.send_test_event_trigger_water_temperature61C_test_event()
180196

@@ -200,7 +216,8 @@ async def test_TC_EWATERHTR_2_3(self):
200216
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
201217

202218
self.step("6c")
203-
await self.check_whm_attribute("TankPercentage", 75)
219+
#await self.check_whm_attribute("TankPercentage", 75)
220+
await self.check_whm_attribute("TankPercentage", 76)
204221

205222
self.step("7")
206223
await self.send_cancel_boost_command()
@@ -212,7 +229,12 @@ async def test_TC_EWATERHTR_2_3(self):
212229
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
213230

214231
self.step("7c")
215-
await self.check_whm_attribute("TankPercentage", 75)
232+
#await self.check_whm_attribute("TankPercentage", 75)
233+
await self.check_whm_attribute("TankPercentage", 76)
234+
235+
################################################################################
236+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
237+
################################################################################
216238

217239
self.step("8")
218240
await self.send_boost_command(duration=600, target_percentage=100, target_reheat=65)
@@ -226,7 +248,18 @@ async def test_TC_EWATERHTR_2_3(self):
226248
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
227249

228250
self.step("8c")
229-
await self.check_whm_attribute("TankPercentage", 75)
251+
#await self.check_whm_attribute("TankPercentage", 75)
252+
await self.check_whm_attribute("TankPercentage", 76)
253+
254+
################################################################################
255+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostStarted)
256+
asserts.assert_equal(event_data.boostInfo.duration, 600)
257+
asserts.assert_true(event_data.boostInfo.oneShot is None, "oneShot should be None")
258+
asserts.assert_true(event_data.boostInfo.emergencyBoost is None, "emergencyBoost should be None")
259+
asserts.assert_true(event_data.boostInfo.temporarySetpoint is None, "temporarySetpoint should be None")
260+
asserts.assert_equal(event_data.boostInfo.targetPercentage, 100)
261+
asserts.assert_equal(event_data.boostInfo.targetReheat, 65)
262+
################################################################################
230263

231264
self.step("9")
232265
await self.send_test_event_trigger_water_temperature61C_test_event()
@@ -250,7 +283,8 @@ async def test_TC_EWATERHTR_2_3(self):
250283
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
251284

252285
self.step("10c")
253-
await self.check_whm_attribute("TankPercentage", 75)
286+
#await self.check_whm_attribute("TankPercentage", 75)
287+
await self.check_whm_attribute("TankPercentage", 76)
254288

255289
self.step("11")
256290
await self.send_test_event_trigger_draw_off_hot_water_test_event()
@@ -264,7 +298,8 @@ async def test_TC_EWATERHTR_2_3(self):
264298
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kActive)
265299

266300
self.step("11c")
267-
await self.check_whm_attribute("TankPercentage", 50)
301+
#await self.check_whm_attribute("TankPercentage", 50)
302+
await self.check_whm_attribute("TankPercentage", 57)
268303

269304
self.step("12")
270305
await self.send_cancel_boost_command()
@@ -276,7 +311,12 @@ async def test_TC_EWATERHTR_2_3(self):
276311
await self.check_whm_attribute("BoostState", Clusters.WaterHeaterManagement.Enums.BoostStateEnum.kInactive)
277312

278313
self.step("12c")
279-
await self.check_whm_attribute("TankPercentage", 50)
314+
#await self.check_whm_attribute("TankPercentage", 50)
315+
await self.check_whm_attribute("TankPercentage", 57)
316+
317+
################################################################################
318+
event_data = events_callback.wait_for_event_report(Clusters.WaterHeaterManagement.Events.BoostEnded)
319+
################################################################################
280320

281321
self.step("13")
282322
await self.send_test_event_trigger_basic_installation_test_event_clear()

0 commit comments

Comments
 (0)