[TC_EEVSE_2.7] - Fix test script - Fails if run after another test without rebooting DUT (#40498)
* Added step 4 (shuffling step numbering) - which sends Disable to EVSE to ensure it is in known state at beginning of test.
* Update src/python_testing/TC_EEVSE_2_7.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update src/python_testing/TC_EEVSE_2_7.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Hasty Granbery <granbery@google.com>
diff --git a/src/python_testing/TC_EEVSE_2_7.py b/src/python_testing/TC_EEVSE_2_7.py
index 12f4380..754b333 100644
--- a/src/python_testing/TC_EEVSE_2_7.py
+++ b/src/python_testing/TC_EEVSE_2_7.py
@@ -78,30 +78,22 @@
"Verify that the DUT response contains the FeatureMap attribute. Store the value as FeatureMap."),
TestStep("3", "TH reads TestEventTriggersEnabled attribute from General Diagnostics Cluster",
"Value has to be 1 (True)"),
- TestStep("4", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for Basic Functionality Test Event",
+ TestStep("4", "TH sends command Disable",
"Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("5", "TH reads from the DUT the State",
+ TestStep("5", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for Basic Functionality Test Event",
+ "Verify DUT responds w/ status SUCCESS(0x00)"),
+ TestStep("6", "TH reads from the DUT the State",
"Value has to be 0x00 (NotPluggedIn)"),
- TestStep("6", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EV Plugged-in Test Event",
+ TestStep("7", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EV Plugged-in Test Event",
"Verify DUT responds w/ status SUCCESS(0x00) and event EVConnected sent"),
- TestStep("7", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC Low Test Event",
+ TestStep("8", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC Low Test Event",
"Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("7a", "TH reads from the DUT the StateOfCharge",
- "Value has to be 20% state of charge."),
- TestStep("7b", "TH reads from the DUT the BatteryCapacity",
+ TestStep("8a", "TH reads from the DUT the StateOfCharge",
+ "Value has to be 20 % state of charge."),
+ TestStep("8b", "TH reads from the DUT the BatteryCapacity",
"Value has to be 70,000,000 (70kWh)."),
- TestStep("8", "If ChargingPreferences feature is not supported, skip all remaining test steps."),
- TestStep("9", "TH sends command ClearTargets",
- "Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("9a", "TH reads from the DUT the NextChargeStartTime",
- "Value has to be null."),
- TestStep("9b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be null."),
- TestStep("9c", "TH reads from the DUT the NextChargeRequiredEnergy",
- "Value has to be null."),
- TestStep("9d", "TH reads from the DUT the NextChargeTargetSoC",
- "Value has to be null."),
- TestStep("10", "TH sends command SetTargets with DayOfTheWeekforSequence=0x7F (i.e. having all days set) and a single ChargingTargets={TargetTimeMinutesPastMidnight=1439, TargetSoC=80, AddedEnergy=25000000}. Store TargetTimeMinutesPastMidnight converted from local timezone into Matter EPOCH in UTC as TargetTime, TargetSoC as TargetSoC, and AddedEnergy as AddedEnergy.",
+ TestStep("9", "If ChargingPreferences feature is not supported, skip all remaining test steps."),
+ TestStep("10", "TH sends command ClearTargets",
"Verify DUT responds w/ status SUCCESS(0x00)"),
TestStep("10a", "TH reads from the DUT the NextChargeStartTime",
"Value has to be null."),
@@ -111,67 +103,77 @@
"Value has to be null."),
TestStep("10d", "TH reads from the DUT the NextChargeTargetSoC",
"Value has to be null."),
- TestStep("11", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
+ TestStep("11", "TH sends command SetTargets with DayOfTheWeekforSequence=0x7F (i.e. having all days set) and a single ChargingTargets={TargetTimeMinutesPastMidnight=1439, TargetSoC=80, AddedEnergy=25000000}. Store TargetTimeMinutesPastMidnight converted from local timezone into Matter EPOCH in UTC as TargetTime, TargetSoC as TargetSoC, and AddedEnergy as AddedEnergy.",
"Verify DUT responds w/ status SUCCESS(0x00)"),
TestStep("11a", "TH reads from the DUT the NextChargeStartTime",
- "Value has to be before the next TargetTime above."),
+ "Value has to be null."),
TestStep("11b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be TargetTime above."),
+ "Value has to be null."),
TestStep("11c", "TH reads from the DUT the NextChargeRequiredEnergy",
"Value has to be null."),
TestStep("11d", "TH reads from the DUT the NextChargeTargetSoC",
- "Value has to be TargetSoC above."),
- TestStep("12", "TH sends command Disable",
- "Verify DUT responds w/ status SUCCESS(0x00)"),
+ "Value has to be null."),
+ TestStep("12", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
+ "Verify DUT responds w/ status SUCCESS(0x00)\nNOTE: in this step, the vehicle has provided StateOfCharge of 20%, and the TargetSoC is 80%, so the EVSE will attempt to charge the vehicle to 80% NextChargeTargetSoC. NextChargeStartTime and NextChargeTargetTime should be non null values. NextChargeRequiredEnergy should be null to indicate StateOfCharge based charging."),
TestStep("12a", "TH reads from the DUT the NextChargeStartTime",
- "Value has to be null."),
+ "Value has to be less than the value of TargetTime."),
TestStep("12b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be null."),
+ "Value has to be equal to the value of TargetTime."),
TestStep("12c", "TH reads from the DUT the NextChargeRequiredEnergy",
"Value has to be null."),
TestStep("12d", "TH reads from the DUT the NextChargeTargetSoC",
+ "Value has to be equal to the value of TargetSoC."),
+ TestStep("13", "TH sends command Disable",
+ "Verify DUT responds w/ status SUCCESS(0x00)\nNOTE: in this step, the EVSE is disabled so all information about future charging should be null."),
+ TestStep("13a", "TH reads from the DUT the NextChargeStartTime",
"Value has to be null."),
- TestStep("13", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC High Test Event",
+ TestStep("13b", "TH reads from the DUT the NextChargeTargetTime",
+ "Value has to be null."),
+ TestStep("13c", "TH reads from the DUT the NextChargeRequiredEnergy",
+ "Value has to be null."),
+ TestStep("13d", "TH reads from the DUT the NextChargeTargetSoC",
+ "Value has to be null."),
+ TestStep("14", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC High Test Event",
"Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("13a", "TH reads from the DUT the StateOfCharge",
+ TestStep("14a", "TH reads from the DUT the StateOfCharge",
"Value has to be 95% state of charge."),
- TestStep("13b", "TH reads from the DUT the BatteryCapacity",
+ TestStep("14b", "TH reads from the DUT the BatteryCapacity",
"Value has to be 70,000,000 (70kWh)."),
- TestStep("14", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
- "Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("14a", "TH reads from the DUT the NextChargeStartTime",
- "Value has to be null."),
- TestStep("14b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be TargetTime above."),
- TestStep("14c", "TH reads from the DUT the NextChargeRequiredEnergy",
- "Value has to be null."),
- TestStep("14d", "TH reads from the DUT the NextChargeTargetSoC",
- "Value has to be TargetSoC above."),
- TestStep("15", "TH sends command Disable",
- "Verify DUT responds w/ status SUCCESS(0x00)"),
+ TestStep("15", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
+ "Verify DUT responds w/ status SUCCESS(0x00)\nNOTE: in this step, the vehicle has provided StateOfCharge of 95%, and the TargetSoC is 80%, so the EVSE will NOT attempt to charge the vehicle. NextChargeTargetSoC and NextChargeTargetTime should be non null to indicate to the user that the preference is recorded. NextChargeStartTime should be null to indicate it is not going to charge. NextChargeRequiredEnergy should be null to indicate StateOfCharge based charging."),
TestStep("15a", "TH reads from the DUT the NextChargeStartTime",
"Value has to be null."),
TestStep("15b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be null."),
+ "Value has to be equal to the value of TargetTime."),
TestStep("15c", "TH reads from the DUT the NextChargeRequiredEnergy",
"Value has to be null."),
TestStep("15d", "TH reads from the DUT the NextChargeTargetSoC",
+ "Value has to be equal to the value of TargetSoC."),
+ TestStep("16", "TH sends command Disable",
+ "Verify DUT responds w/ status SUCCESS(0x00)\nNOTE: in this step, the EVSE is disabled so all information about future charging should be null."),
+ TestStep("16a", "TH reads from the DUT the NextChargeStartTime",
"Value has to be null."),
- TestStep("16", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC Clear Test Event",
+ TestStep("16b", "TH reads from the DUT the NextChargeTargetTime",
+ "Value has to be null."),
+ TestStep("16c", "TH reads from the DUT the NextChargeRequiredEnergy",
+ "Value has to be null."),
+ TestStep("16d", "TH reads from the DUT the NextChargeTargetSoC",
+ "Value has to be null."),
+ TestStep("17", "TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC Clear Test Event",
"Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("16a", "TH reads from the DUT the StateOfCharge",
+ TestStep("17a", "TH reads from the DUT the StateOfCharge",
"Value has to be null."),
- TestStep("16b", "TH reads from the DUT the BatteryCapacity",
+ TestStep("17b", "TH reads from the DUT the BatteryCapacity",
"Value has to be null."),
- TestStep("17", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
- "Verify DUT responds w/ status SUCCESS(0x00)"),
- TestStep("17a", "TH reads from the DUT the NextChargeStartTime",
- "Value has to be before the next TargetTime above."),
- TestStep("17b", "TH reads from the DUT the NextChargeTargetTime",
- "Value has to be TargetTime above."),
- TestStep("17c", "TH reads from the DUT the NextChargeRequiredEnergy",
- "Value has to be AddedEnergy above."),
- TestStep("17d", "TH reads from the DUT the NextChargeTargetSoC",
+ TestStep("18", "TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000",
+ "Verify DUT responds w/ status SUCCESS(0x00)\nNOTE: in this step, the vehicle has NOT provided StateOfCharge so the EVSE will fallback to using AddedEnergy to attempt to charge the vehicle. NextChargeTargetTime and NextChargeRequiredEnergy should be the values from step 11 above. NextChargeStartTime should be non null to indicate it is going to charge in the future. NextChargeRequiredEnergy should be non null to indicate AddedEnergy based charging and NextChargeTargetSoC should be null."),
+ TestStep("18a", "TH reads from the DUT the NextChargeStartTime",
+ "Value has to be less than the value of TargetTime."),
+ TestStep("18b", "TH reads from the DUT the NextChargeTargetTime",
+ "Value has to be equal to the value of TargetTime."),
+ TestStep("18c", "TH reads from the DUT the NextChargeRequiredEnergy",
+ "Value has to be equal to the value of AddedEnergy."),
+ TestStep("18d", "TH reads from the DUT the NextChargeTargetSoC",
"Value has to be null."),
]
@@ -203,67 +205,39 @@
await self.check_test_event_triggers_enabled()
self.step("4")
- await self.send_test_event_trigger_basic()
+ # TH sends command Disable
+ await self.send_disable_command()
self.step("5")
- await self.check_evse_attribute("State", Clusters.EnergyEvse.Enums.StateEnum.kNotPluggedIn)
+ await self.send_test_event_trigger_basic()
self.step("6")
+ await self.check_evse_attribute("State", Clusters.EnergyEvse.Enums.StateEnum.kNotPluggedIn)
+
+ self.step("7")
await self.send_test_event_trigger_pluggedin()
events_callback.wait_for_event_report(Clusters.EnergyEvse.Events.EVConnected)
- self.step("7")
+ self.step("8")
await self.send_test_event_trigger_evse_set_soc_low()
- self.step("7a")
+ self.step("8a")
await self.check_evse_attribute("StateOfCharge", 20)
- self.step("7b")
+ self.step("8b")
await self.check_evse_attribute("BatteryCapacity", 70000000)
- self.step("8")
+ self.step("9")
has_pref = self.feature_guard(endpoint=endpoint, cluster=cluster,
feature_int=Clusters.EnergyEvse.Bitmaps.Feature.kChargingPreferences)
if not has_pref:
- self.mark_all_remaining_steps_skipped("9")
+ self.mark_all_remaining_steps_skipped("10")
else:
- self.step("9")
+ self.step("10")
# TH sends command ClearTargets
await self.send_clear_targets_command()
- self.step("9a")
- # TH reads from the DUT the NextChargeStartTime
- await self.check_evse_attribute("NextChargeStartTime", NullValue)
-
- self.step("9b")
- # TH reads from the DUT the NextChargeTargetTime
- await self.check_evse_attribute("NextChargeTargetTime", NullValue)
-
- self.step("9c")
- # TH reads from the DUT the NextChargeRequiredEnergy
- await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
-
- self.step("9d")
- # TH reads from the DUT the NextChargeTargetSoC
- await self.check_evse_attribute("NextChargeTargetSoC", NullValue)
-
- self.step("10")
- # TH sends command SetTargets with DayOfTheWeekforSequence=0x7F (i.e. having all days set) and a single ChargingTargets={TargetTime=1439, TargetSoC=80, AddedEnergy=25000000}
- # The targets is a list of up to 7x ChargingTargetScheduleStruct's (one per day)
- # each containing a list of up to 10x targets per day
- minutes_past_midnight = 1439
- target_soc = 80
- added_energy = 25000000
- dailyTargets = [Clusters.EnergyEvse.Structs.ChargingTargetStruct(targetTimeMinutesPastMidnight=minutes_past_midnight,
- targetSoC=target_soc,
- addedEnergy=added_energy)]
- targets = [Clusters.EnergyEvse.Structs.ChargingTargetScheduleStruct(
- dayOfWeekForSequence=0x7F, chargingTargets=dailyTargets)]
-
- # This should be all days Sun-Sat (0x7F) with an TargetTime 1439 and added Energy 25kWh or targetSoc=80
- await self.send_set_targets_command(chargingTargetSchedules=targets)
-
self.step("10a")
# TH reads from the DUT the NextChargeStartTime
await self.check_evse_attribute("NextChargeStartTime", NullValue)
@@ -281,10 +255,42 @@
await self.check_evse_attribute("NextChargeTargetSoC", NullValue)
self.step("11")
+ # TH sends command SetTargets with DayOfTheWeekforSequence=0x7F (i.e. having all days set) and a single ChargingTargets={TargetTime=1439, TargetSoC=80, AddedEnergy=25000000}
+ # The targets is a list of up to 7x ChargingTargetScheduleStruct's (one per day)
+ # each containing a list of up to 10x targets per day
+ minutes_past_midnight = 1439
+ target_soc = 80
+ added_energy = 25000000
+ dailyTargets = [Clusters.EnergyEvse.Structs.ChargingTargetStruct(targetTimeMinutesPastMidnight=minutes_past_midnight,
+ targetSoC=target_soc,
+ addedEnergy=added_energy)]
+ targets = [Clusters.EnergyEvse.Structs.ChargingTargetScheduleStruct(
+ dayOfWeekForSequence=0x7F, chargingTargets=dailyTargets)]
+
+ # This should be all days Sun-Sat (0x7F) with an TargetTime 1439 and added Energy 25kWh or targetSoc=80
+ await self.send_set_targets_command(chargingTargetSchedules=targets)
+
+ self.step("11a")
+ # TH reads from the DUT the NextChargeStartTime
+ await self.check_evse_attribute("NextChargeStartTime", NullValue)
+
+ self.step("11b")
+ # TH reads from the DUT the NextChargeTargetTime
+ await self.check_evse_attribute("NextChargeTargetTime", NullValue)
+
+ self.step("11c")
+ # TH reads from the DUT the NextChargeRequiredEnergy
+ await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
+
+ self.step("11d")
+ # TH reads from the DUT the NextChargeTargetSoC
+ await self.check_evse_attribute("NextChargeTargetSoC", NullValue)
+
+ self.step("12")
# TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000
await self.send_enable_charge_command(charge_until=NullValue, min_charge=6000, max_charge=60000)
- self.step("11a")
+ self.step("12a")
# TH reads from the DUT the NextChargeStartTime
# Value has to be before the next TargetTime above.
next_start_time_epoch_s = await self.read_evse_attribute_expect_success(attribute="NextChargeStartTime")
@@ -296,88 +302,64 @@
asserts.assert_less(next_start_time_epoch_s,
expected_next_target_time_epoch_s)
- self.step("11b")
+ self.step("12b")
# TH reads from the DUT the NextChargeTargetTime
# Value has to be TargetTime above.
await self.check_evse_attribute("NextChargeTargetTime",
expected_next_target_time_epoch_s)
- self.step("11c")
+ self.step("12c")
# TH reads from the DUT the NextChargeRequiredEnergy
# Value has to be null.
await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
- self.step("11d")
+ self.step("12d")
# TH reads from the DUT the NextChargeTargetSoC
# Value has to be TargetSoC above.
await self.check_evse_attribute("NextChargeTargetSoC", target_soc)
- self.step("12")
+ self.step("13")
# TH sends command Disable - Verify DUT responds w/ status SUCCESS(0x00)
await self.send_disable_command()
- self.step("12a")
+ self.step("13a")
# TH reads from the DUT the NextChargeStartTime
# Value has to be null
await self.check_evse_attribute("NextChargeStartTime", NullValue)
- self.step("12b")
+ self.step("13b")
# TH reads from the DUT the NextChargeTargetTime
# Value has to be null
await self.check_evse_attribute("NextChargeTargetTime", NullValue)
- self.step("12c")
+ self.step("13c")
# TH reads from the DUT the NextChargeRequiredEnergy
# Value has to be null
await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
- self.step("12d")
+ self.step("13d")
# TH reads from the DUT the NextChargeTargetSoC
# Value has to be null
await self.check_evse_attribute("NextChargeTargetSoC", NullValue)
- self.step("13")
+ self.step("14")
# TH sends TestEventTrigger command to General Diagnostics Cluster on Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC High Test Event
await self.send_test_event_trigger_evse_set_soc_high()
- self.step("13a")
+ self.step("14a")
# TH reads from the DUT the StateOfCharge
# Value has to be 95 % state of charge
await self.check_evse_attribute("StateOfCharge", 95)
- self.step("13b")
+ self.step("14b")
# TH reads from the DUT the BatteryCapacity
# Value has to be 70,000,000 (70kWh)
await self.check_evse_attribute("BatteryCapacity", 70000000)
- self.step("14")
+ self.step("15")
# TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000
await self.send_enable_charge_command(charge_until=NullValue, min_charge=6000, max_charge=60000)
- self.step("14a")
- # TH reads from the DUT the NextChargeStartTime
- # Value has to be null
- await self.check_evse_attribute("NextChargeStartTime", NullValue)
-
- self.step("14b")
- # TH reads from the DUT the NextChargeTargetTime
- # Value has to be TargetTime above
- await self.check_evse_attribute("NextChargeTargetTime", expected_next_target_time_epoch_s)
-
- self.step("14c")
- # TH reads from the DUT the NextChargeRequiredEnergy
- # Value has to be null
- await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
-
- self.step("14d")
- # TH reads from the DUT the NextChargeTargetSoC
- # Value has to be TargetSoC above
- await self.check_evse_attribute("NextChargeTargetSoC", target_soc)
-
- self.step("15")
- # TH sends command Disable
- await self.send_disable_command()
-
self.step("15a")
# TH reads from the DUT the NextChargeStartTime
# Value has to be null
@@ -385,8 +367,8 @@
self.step("15b")
# TH reads from the DUT the NextChargeTargetTime
- # Value has to be null
- await self.check_evse_attribute("NextChargeTargetTime", NullValue)
+ # Value has to be TargetTime above
+ await self.check_evse_attribute("NextChargeTargetTime", expected_next_target_time_epoch_s)
self.step("15c")
# TH reads from the DUT the NextChargeRequiredEnergy
@@ -395,30 +377,54 @@
self.step("15d")
# TH reads from the DUT the NextChargeTargetSoC
+ # Value has to be TargetSoC above
+ await self.check_evse_attribute("NextChargeTargetSoC", target_soc)
+
+ self.step("16")
+ # TH sends command Disable
+ await self.send_disable_command()
+
+ self.step("16a")
+ # TH reads from the DUT the NextChargeStartTime
+ # Value has to be null
+ await self.check_evse_attribute("NextChargeStartTime", NullValue)
+
+ self.step("16b")
+ # TH reads from the DUT the NextChargeTargetTime
+ # Value has to be null
+ await self.check_evse_attribute("NextChargeTargetTime", NullValue)
+
+ self.step("16c")
+ # TH reads from the DUT the NextChargeRequiredEnergy
+ # Value has to be null
+ await self.check_evse_attribute("NextChargeRequiredEnergy", NullValue)
+
+ self.step("16d")
+ # TH reads from the DUT the NextChargeTargetSoC
# Value has to be null
await self.check_evse_attribute("NextChargeTargetSoC", NullValue)
- self.step("16")
+ self.step("17")
# TH sends TestEventTrigger command to General Diagnostics Cluster on
# Endpoint 0 with EnableKey field set to PIXIT.EEVSE.TEST_EVENT_TRIGGER_KEY and EventTrigger field set
# to PIXIT.EEVSE.TEST_EVENT_TRIGGER for EVSE Set SoC Clear Test Event
await self.send_test_event_trigger_evse_set_soc_clear()
- self.step("16a")
+ self.step("17a")
# TH reads from the DUT the StateOfCharge
# Value has to be null
await self.check_evse_attribute("StateOfCharge", NullValue)
- self.step("16b")
+ self.step("17b")
# TH reads from the DUT the BatteryCapacity
# Value has to be null
await self.check_evse_attribute("BatteryCapacity", NullValue)
- self.step("17")
+ self.step("18")
# TH sends command EnableCharging with ChargingEnabledUntil=null, minimumChargeCurrent=6000, maximumChargeCurrent=60000
await self.send_enable_charge_command(charge_until=NullValue, min_charge=6000, max_charge=60000)
- self.step("17a")
+ self.step("18a")
# TH reads from the DUT the NextChargeStartTime
# Value has to be before the next TargetTime above
next_start_time_epoch_s = await self.read_evse_attribute_expect_success(attribute="NextChargeStartTime")
@@ -430,18 +436,18 @@
asserts.assert_less(next_start_time_epoch_s,
expected_next_target_time_epoch_s)
- self.step("17b")
+ self.step("18b")
# TH reads from the DUT the NextChargeTargetTime
# Value has to be TargetTime above
await self.check_evse_attribute("NextChargeTargetTime",
expected_next_target_time_epoch_s)
- self.step("17c")
+ self.step("18c")
# TH reads from the DUT the NextChargeRequiredEnergy
# Value has to be AddedEnergy above
await self.check_evse_attribute("NextChargeRequiredEnergy", added_energy)
- self.step("17d")
+ self.step("18d")
# TH reads from the DUT the NextChargeTargetSoC
# Value has to be null
await self.check_evse_attribute("NextChargeTargetSoC", NullValue)