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)
