diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index 0a90e6ede55272..5400a81d0fb902 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -2257,6 +2257,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index f430a91801c93d..962eed946b905a 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -1989,6 +1989,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index 4eef9b016d5ac7..ec5d045647a4bd 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -1574,6 +1574,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter b/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
index 475d0ae790a5e7..bd71d94f7c871b 100644
--- a/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
+++ b/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
@@ -954,6 +954,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
index 5c7a4531ed49d4..4088d0b741a03e 100644
--- a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
+++ b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
@@ -954,6 +954,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter
index 62dc3dc53baae6..c4f73e4b338685 100644
--- a/examples/light-switch-app/light-switch-common/light-switch-app.matter
+++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter
@@ -1600,6 +1600,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/light-switch-app/qpg/zap/switch.matter b/examples/light-switch-app/qpg/zap/switch.matter
index 14f56afc277234..d105fdea187f0a 100644
--- a/examples/light-switch-app/qpg/zap/switch.matter
+++ b/examples/light-switch-app/qpg/zap/switch.matter
@@ -1397,6 +1397,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 8024088db91c4c..190744f68aa6c3 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -1506,6 +1506,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index a4012f93a9d461..39f6a4b3894475 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -2375,6 +2375,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
@@ -2430,6 +2431,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 0375e33fe3d25d..d3ec0ea0e26723 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -2332,6 +2332,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
@@ -2387,6 +2388,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/scripts/py_matter_idl/matter_idl/generators/__init__.py b/scripts/py_matter_idl/matter_idl/generators/__init__.py
index 131d8e38ccbeba..7cb9d54b947ef3 100644
--- a/scripts/py_matter_idl/matter_idl/generators/__init__.py
+++ b/scripts/py_matter_idl/matter_idl/generators/__init__.py
@@ -168,6 +168,7 @@ def internal_render_one_output(self, template_path: str, output_file_name: str,
if self.dry_run:
return
+ logging.info(f"Template path: {template_path}, CWD: {os.getcwd()}")
rendered = self.jinja_env.get_template(template_path).render(vars)
# Report regardless if it has changed or not. This is because even if
diff --git a/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
index c5e69b3c51ff39..72630933a26479 100644
--- a/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
@@ -37,27 +37,45 @@ Interactions with the switch device are exposed as attributes (for the latching
-
-
-
-
-
-
+
-
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
NumberOfPositions
@@ -96,5 +114,4 @@ Interactions with the switch device are exposed as attributes (for the latching
-
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 14f6587b5461d0..2b21d4b4a4e708 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -2280,6 +2280,7 @@ cluster Switch = 59 {
kMomentarySwitchRelease = 0x4;
kMomentarySwitchLongPress = 0x8;
kMomentarySwitchMultiPress = 0x10;
+ kActionSwitch = 0x20;
}
info event SwitchLatched = 0 {
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 1a3bb036add4b7..8dc1fad59e2591 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -11900,6 +11900,7 @@ class Feature(IntFlag):
kMomentarySwitchRelease = 0x4
kMomentarySwitchLongPress = 0x8
kMomentarySwitchMultiPress = 0x10
+ kActionSwitch = 0x20
class Attributes:
@dataclass
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index 35f0a1d1b0e18f..4c81148a2b6c40 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -17585,6 +17585,7 @@ typedef NS_OPTIONS(uint32_t, MTRSwitchFeature) {
MTRSwitchFeatureMomentarySwitchRelease MTR_AVAILABLE(ios(16.2), macos(13.1), watchos(9.2), tvos(16.2)) = 0x4,
MTRSwitchFeatureMomentarySwitchLongPress MTR_AVAILABLE(ios(16.2), macos(13.1), watchos(9.2), tvos(16.2)) = 0x8,
MTRSwitchFeatureMomentarySwitchMultiPress MTR_AVAILABLE(ios(16.2), macos(13.1), watchos(9.2), tvos(16.2)) = 0x10,
+ MTRSwitchFeatureActionSwitch MTR_PROVISIONALLY_AVAILABLE = 0x20,
} MTR_AVAILABLE(ios(16.2), macos(13.1), watchos(9.2), tvos(16.2));
typedef NS_ENUM(uint8_t, MTRAdministratorCommissioningCommissioningWindowStatus) {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
index 7c669e16a747cc..40d73a3fade401 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
@@ -1492,6 +1492,7 @@ enum class Feature : uint32_t
kMomentarySwitchRelease = 0x4,
kMomentarySwitchLongPress = 0x8,
kMomentarySwitchMultiPress = 0x10,
+ kActionSwitch = 0x20,
};
} // namespace Switch