diff --git a/src/app/clusters/level-control/level-control.cpp b/src/app/clusters/level-control/level-control.cpp
index 814436c39e179a..738a7b10ed0ffb 100644
--- a/src/app/clusters/level-control/level-control.cpp
+++ b/src/app/clusters/level-control/level-control.cpp
@@ -256,12 +256,9 @@ class DefaultLevelControlSceneHandler : public scenes::DefaultSceneHandlerImpl
 
         if (!NumericAttributeTraits<uint8_t>::IsNullValue(level))
         {
-            CommandId command = LevelControlHasFeature(endpoint, LevelControl::Feature::kOnOff) ? Commands::MoveToLevelWithOnOff::Id
-                                                                                                : Commands::MoveToLevel::Id;
-
-            moveToLevelHandler(endpoint, command, level, DataModel::MakeNullable(static_cast<uint16_t>(timeMs / 100)),
-                               chip::Optional<BitMask<OptionsBitmap>>(), chip::Optional<BitMask<OptionsBitmap>>(),
-                               INVALID_STORED_LEVEL);
+            moveToLevelHandler(
+                endpoint, Commands::MoveToLevel::Id, level, DataModel::MakeNullable(static_cast<uint16_t>(timeMs / 100)),
+                chip::Optional<BitMask<OptionsBitmap>>(1), chip::Optional<BitMask<OptionsBitmap>>(1), INVALID_STORED_LEVEL);
         }
 
         return CHIP_NO_ERROR;
diff --git a/src/app/clusters/on-off-server/on-off-server.cpp b/src/app/clusters/on-off-server/on-off-server.cpp
index 726da2d29f7c4d..98dfaf9da02c3e 100644
--- a/src/app/clusters/on-off-server/on-off-server.cpp
+++ b/src/app/clusters/on-off-server/on-off-server.cpp
@@ -213,19 +213,8 @@ class DefaultOnOffSceneHandler : public scenes::DefaultSceneHandlerImpl
             return err;
         }
 
-        // This handler assumes it is being used with the default handler for the level control. Therefore if the level control
-        // cluster with on off feature is present on the endpoint and the level control handler is registered, it assumes this
-        // handler will take action on the on-off state. This assumes the level control attributes were also saved in the scene.
-        // This is to prevent a behavior where the on off state is set by this handler, and then the level control handler or vice
-        // versa.
-#ifdef MATTER_DM_PLUGIN_LEVEL_CONTROL
-        if (!(LevelControlWithOnOffFeaturePresent(endpoint) &&
-              ScenesManagement::ScenesServer::Instance().IsHandlerRegistered(endpoint, LevelControlServer::GetSceneHandler())))
-#endif
-        {
-            VerifyOrReturnError(mTransitionTimeInterface.sceneEventControl(endpoint) != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
-            OnOffServer::Instance().scheduleTimerCallbackMs(mTransitionTimeInterface.sceneEventControl(endpoint), timeMs);
-        }
+        VerifyOrReturnError(mTransitionTimeInterface.sceneEventControl(endpoint) != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
+        OnOffServer::Instance().scheduleTimerCallbackMs(mTransitionTimeInterface.sceneEventControl(endpoint), timeMs);
 
         return CHIP_NO_ERROR;
     }
diff --git a/src/app/tests/suites/certification/Test_TC_OO_2_7.yaml b/src/app/tests/suites/certification/Test_TC_OO_2_7.yaml
new file mode 100644
index 00000000000000..19183ba79aff8d
--- /dev/null
+++ b/src/app/tests/suites/certification/Test_TC_OO_2_7.yaml
@@ -0,0 +1,269 @@
+# Copyright (c) 2024 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: 4.2.4. [TC-OO-2.7] Scenes Management Cluster Interaction (DUT as Server)
+
+PICS:
+    - OO.S
+    - S.S
+
+config:
+    nodeId: 0x12344321
+    cluster: "Scenes Management"
+    endpoint: 1
+    G1:
+        type: group_id
+        defaultValue: 0x0001
+
+tests:
+    - label: "Wait for the commissioned device to be retrieved"
+      cluster: "DelayCommands"
+      command: "WaitForCommissionee"
+      arguments:
+          values:
+              - name: "nodeId"
+                value: nodeId
+
+    - label:
+          "Step 0a :TH sends KeySetWrite command in the GroupKeyManagement
+          cluster to DUT using a key that is pre-installed on the TH.
+          GroupKeySet fields are as follows:"
+      cluster: "Group Key Management"
+      endpoint: 0
+      command: "KeySetWrite"
+      arguments:
+          values:
+              - name: "GroupKeySet"
+                value:
+                    {
+                        GroupKeySetID: 0x01a1,
+                        GroupKeySecurityPolicy: 0,
+                        EpochKey0: "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf",
+                        EpochStartTime0: 1110000,
+                        EpochKey1: "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf",
+                        EpochStartTime1: 1110001,
+                        EpochKey2: "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf",
+                        EpochStartTime2: 1110002,
+                    }
+
+    - label:
+          "Step 0b: TH binds GroupIds 0x0001 and 0x0002 with GroupKeySetID
+          0x01a1 in the GroupKeyMap attribute list on GroupKeyManagement cluster
+          by writing the GroupKeyMap attribute with two entries as follows:"
+      cluster: "Group Key Management"
+      endpoint: 0
+      command: "writeAttribute"
+      attribute: "GroupKeyMap"
+      arguments:
+          value: [{ FabricIndex: 1, GroupId: G1, GroupKeySetID: 0x01a1 }]
+
+    - label: "Step 0c: TH sends a RemoveAllGroups command to DUT."
+      cluster: "Groups"
+      endpoint: endpoint
+      command: "RemoveAllGroups"
+
+    - label:
+          "Step 1a: TH sends a AddGroup command to DUT with the GroupID field
+          set to G1."
+      cluster: "Groups"
+      command: "AddGroup"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+              - name: "GroupName"
+                value: "Group1"
+      response:
+          values:
+              - name: "Status"
+                value: 0
+              - name: "GroupID"
+                value: G1
+
+    - label:
+          "Step 1b: TH sends a RemoveAllScenes command to DUT with the GroupID
+          field set to G1."
+      command: "RemoveAllScenes"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+      response:
+          values:
+              - name: "Status"
+                value: 0x00
+              - name: "GroupID"
+                value: G1
+    - label:
+          "Step 1c: TH sends a GetSceneMembership command to DUT with the
+          GroupID field set to G1."
+      command: "GetSceneMembership"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+      response:
+          values:
+              - name: "Status"
+                value: 0x00
+              - name: "GroupID"
+                value: G1
+              - name: "SceneList"
+                value: []
+
+    - label: "Step 2a: TH sends Off command to DUT"
+      cluster: "On/Off"
+      command: "Off"
+
+    - label: "Wait 1000ms"
+      cluster: "DelayCommands"
+      command: "WaitForMs"
+      arguments:
+          values:
+              - name: "ms"
+                value: 1000
+
+    - label: "Step 2b: after a few seconds, TH reads OnOff attribute from DUT"
+      cluster: "On/Off"
+      command: "readAttribute"
+      attribute: "OnOff"
+      response:
+          value: 0
+
+    - label:
+          "Step 2b: TH sends a StoreScene command to DUT with the GroupID field
+          set to G1 and the SceneID field set to 0x01."
+      command: "StoreScene"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x01
+      response:
+          values:
+              - name: "Status"
+                value: 0x00
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x01
+
+    - label: "Step 3: TH sends a AddScene command to DUT with the GroupID field
+          set to G1, the SceneID field set to 0x02, the TransitionTime field set
+          to 1000 (1s) and the ExtensionFieldSets set to: '[{ ClusterID: 0x0006,
+          AttributeValueList: [{ AttributeID: 0x0000, ValueUnsigned8: 0x01 }]}]'
+          "
+      command: "AddScene"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x02
+              - name: "TransitionTime"
+                value: 1000
+              - name: "SceneName"
+                value: "Scene1"
+              - name: "ExtensionFieldSets"
+                value:
+                    [
+                        {
+                            ClusterID: 0x0006,
+                            AttributeValueList:
+                                [{ AttributeID: 0x0000, ValueUnsigned8: 0x01 }],
+                        },
+                    ]
+      response:
+          values:
+              - name: "Status"
+                value: 0x00
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x02
+
+    - label:
+          "Step 4a: TH sends a RecallScene command to DUT with the GroupID field
+          set to G1 and the SceneID field set to 0x02."
+      PICS: S.S.C05.Rsp
+      command: "RecallScene"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x02
+
+    - label: "Wait 2000ms"
+      cluster: "DelayCommands"
+      command: "WaitForMs"
+      arguments:
+          values:
+              - name: "ms"
+                value: 2000
+
+    - label: "Step 4b: after a few seconds, TH reads OnOff attribute from DUT"
+      cluster: "On/Off"
+      command: "readAttribute"
+      attribute: "OnOff"
+      response:
+          value: 1
+
+    - label:
+          "Step 5a: TH sends a RecallScene command to DUT with the GroupID field
+          set to G1 and the SceneID field set to 0x01."
+      PICS: S.S.C05.Rsp
+      command: "RecallScene"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+              - name: "SceneID"
+                value: 0x01
+
+    - label: "Wait 1000ms"
+      cluster: "DelayCommands"
+      command: "WaitForMs"
+      arguments:
+          values:
+              - name: "ms"
+                value: 1000
+
+    - label: "Step 5b: after a few seconds, TH reads OnOff attribute from DUT"
+      cluster: "On/Off"
+      command: "readAttribute"
+      attribute: "OnOff"
+      response:
+          value: 0
+
+    - label:
+          "Cleanup: TH sends a RemoveAllScenes command to DUT with the GroupID
+          field set to G1."
+      command: "RemoveAllScenes"
+      arguments:
+          values:
+              - name: "GroupID"
+                value: G1
+      response:
+          values:
+              - name: "Status"
+                value: 0x00
+              - name: "GroupID"
+                value: G1
+
+    - label: "Cleanup: TH sends a RemoveAllGroups command to DUT."
+      cluster: "Groups"
+      endpoint: endpoint
+      command: "RemoveAllGroups"
diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json
index a77ecb9a3b2838..44cfcd1648a70d 100644
--- a/src/app/tests/suites/ciTests.json
+++ b/src/app/tests/suites/ciTests.json
@@ -144,7 +144,12 @@
     "ModeSelect": [],
     "MultipleFabrics": [],
     "OTASoftwareUpdate": ["OTA_SuccessfulTransfer"],
-    "OnOff": ["Test_TC_OO_2_1", "Test_TC_OO_2_2", "Test_TC_OO_2_4"],
+    "OnOff": [
+        "Test_TC_OO_2_1",
+        "Test_TC_OO_2_2",
+        "Test_TC_OO_2_4",
+        "Test_TC_OO_2_7"
+    ],
     "PowerSource": ["Test_TC_PS_2_1"],
     "PowerTopology": ["Test_TC_PWRTL_1_1"],
     "PressureMeasurement": ["Test_TC_PRS_2_1", "Test_TC_PRS_2_2"],