[power-source] Update cluster definitions (#20370)

* [power-source] Update cluster definitions

1. Align attribute names with the spec by replacing
   BateryXYZ names with BatXYZ.
2. Use specific enum types instead of ENUM8.
3. Add missing isNullable="true" definitions.
4. Fix attribute value ranges.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>

* Fix examples

* Regen ZAP
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 03cc40d..3bedf93 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
@@ -780,7 +780,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -807,7 +807,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -832,7 +832,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -845,12 +845,12 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute boolean batteryReplacementNeeded = 15;
-  readonly attribute enum8 batteryReplaceability = 16;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute boolean batReplacementNeeded = 15;
+  readonly attribute BatReplaceability batReplaceability = 16;
   readonly attribute bitmap32 featureMap = 65532;
   readonly attribute int16u clusterRevision = 65533;
 }
@@ -3917,9 +3917,9 @@
     ram      attribute status;
     ram      attribute order default = 3;
     ram      attribute description default = "B1";
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
     ram      attribute featureMap default = 2;
     ram      attribute clusterRevision default = 1;
   }
@@ -4223,9 +4223,9 @@
     ram      attribute status;
     ram      attribute order default = 2;
     ram      attribute description default = "B2";
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
     ram      attribute featureMap default = 2;
     ram      attribute clusterRevision default = 1;
   }
@@ -4745,9 +4745,9 @@
     ram      attribute status;
     ram      attribute order default = 1;
     ram      attribute description default = "B3";
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
     ram      attribute featureMap default = 2;
     ram      attribute clusterRevision default = 1;
   }
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
index f0d1475..eb3ec31 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -18,15 +18,15 @@
   "package": [
     {
       "pathRelativity": "relativeToZap",
-      "path": "../../../src/app/zap-templates/zcl/zcl-with-test-extensions.json",
-      "version": "ZCL Test Data",
-      "type": "zcl-properties"
-    },
-    {
-      "pathRelativity": "relativeToZap",
       "path": "../../../src/app/zap-templates/app-templates.json",
       "version": "chip-v1",
       "type": "gen-templates-json"
+    },
+    {
+      "pathRelativity": "relativeToZap",
+      "path": "../../../src/app/zap-templates/zcl/zcl-with-test-extensions.json",
+      "version": "ZCL Test Data",
+      "type": "zcl-properties"
     }
   ],
   "endpointTypes": [
@@ -2219,7 +2219,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2299,7 +2299,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2391,7 +2391,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -2407,7 +2407,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -2423,7 +2423,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -2439,11 +2439,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2455,7 +2455,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -2471,11 +2471,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2487,7 +2487,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -2503,7 +2503,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -2519,7 +2519,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -2535,7 +2535,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -2551,7 +2551,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -2567,7 +2567,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -2583,7 +2583,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -2599,7 +2599,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -2615,7 +2615,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -2631,11 +2631,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2647,7 +2647,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -2663,7 +2663,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -2679,7 +2679,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -2695,7 +2695,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -8107,166 +8107,6 @@
           ]
         },
         {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 0
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 0,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 0,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
           "name": "Test Cluster",
           "code": 4294048773,
           "mfgCode": null,
@@ -11018,7 +10858,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11098,7 +10938,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11190,7 +11030,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -11206,7 +11046,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -11222,7 +11062,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -11238,11 +11078,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11254,7 +11094,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -11270,11 +11110,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11286,7 +11126,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -11302,7 +11142,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -11318,7 +11158,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -11334,7 +11174,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -11350,7 +11190,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -11366,7 +11206,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -11382,7 +11222,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -11398,7 +11238,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -11414,7 +11254,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -11430,11 +11270,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11446,7 +11286,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -11462,7 +11302,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -11478,7 +11318,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -11494,7 +11334,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -13773,7 +13613,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -13949,7 +13789,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -17366,182 +17206,6 @@
           ]
         },
         {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 1,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "FeatureMap",
-              "code": 65532,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
           "name": "Wake on LAN",
           "code": 1283,
           "mfgCode": null,
@@ -19170,6 +18834,252 @@
           ]
         },
         {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "client",
+          "enabled": 0,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "client",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "server",
+          "enabled": 1,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "measurement type",
+              "code": 0,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "total active power",
+              "code": 772,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int32s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage",
+              "code": 1285,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage min",
+              "code": 1286,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage max",
+              "code": 1287,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current",
+              "code": 1288,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current min",
+              "code": 1289,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current max",
+              "code": 1290,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power",
+              "code": 1291,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power min",
+              "code": 1292,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power max",
+              "code": 1293,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "FeatureMap",
+              "code": 65532,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
           "name": "Test Cluster",
           "code": 4294048773,
           "mfgCode": null,
@@ -20760,252 +20670,6 @@
               "reportableChange": 0
             }
           ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "server",
-          "enabled": 1,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "measurement type",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "total active power",
-              "code": 772,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int32s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage",
-              "code": 1285,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage min",
-              "code": 1286,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage max",
-              "code": 1287,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current",
-              "code": 1288,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current min",
-              "code": 1289,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current max",
-              "code": 1290,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power",
-              "code": 1291,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power min",
-              "code": 1292,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power max",
-              "code": 1293,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "FeatureMap",
-              "code": 65532,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
         }
       ]
     },
@@ -22344,7 +22008,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22424,7 +22088,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22516,7 +22180,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -22532,7 +22196,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -22548,7 +22212,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -22564,11 +22228,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22580,7 +22244,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -22596,11 +22260,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22612,7 +22276,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -22628,7 +22292,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -22644,7 +22308,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -22660,7 +22324,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -22676,7 +22340,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -22692,7 +22356,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -22708,7 +22372,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -22724,7 +22388,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -22740,7 +22404,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -22756,11 +22420,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22772,7 +22436,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -22788,7 +22452,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -22804,7 +22468,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -22820,7 +22484,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -24613,166 +24277,6 @@
               "reportableChange": 0
             }
           ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
         }
       ]
     },
@@ -25158,6 +24662,5 @@
       "endpointVersion": 1,
       "deviceIdentifier": 61442
     }
-  ],
-  "log": []
-}
+  ]
+}
\ No newline at end of file
diff --git a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp
index 2468258..d413072 100644
--- a/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp
+++ b/examples/all-clusters-app/esp32/main/DeviceWithDisplay.cpp
@@ -309,7 +309,7 @@
             {
                 // update the battery percent remaining here for hardcoded endpoint 1
                 ESP_LOGI(TAG, "Battery percent remaining changed to : %d", n);
-                app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast<uint8_t>(n * 2));
+                app::Clusters::PowerSource::Attributes::BatPercentRemaining::Set(1, static_cast<uint8_t>(n * 2));
             }
             value = buffer;
         }
@@ -373,7 +373,7 @@
 
                 // update the battery charge level here for hardcoded endpoint 1
                 ESP_LOGI(TAG, "Battery charge level changed to : %u", static_cast<uint8_t>(attributeValue));
-                app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast<uint8_t>(attributeValue));
+                app::Clusters::PowerSource::Attributes::BatChargeLevel::Set(1, attributeValue);
             }
             else
             {
@@ -686,9 +686,9 @@
     AddEndpoint("1");
     AddCluster("Power Source");
     AddAttribute("Bat remaining", "70");
-    app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast<uint8_t>(70 * 2));
+    app::Clusters::PowerSource::Attributes::BatPercentRemaining::Set(1, static_cast<uint8_t>(70 * 2));
     AddAttribute("Charge level", "0");
-    app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast<uint8_t>(0));
+    app::Clusters::PowerSource::Attributes::BatChargeLevel::Set(1, app::Clusters::PowerSource::BatChargeLevel::kOk);
 }
 
 esp_err_t InitM5Stack(std::string qrCodeText)
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 370f71e..cf39840 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
@@ -712,7 +712,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -739,7 +739,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -764,7 +764,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -777,7 +777,7 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
   readonly attribute bitmap32 featureMap = 65532;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
index 8a0a01c..238a2ff 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -2219,7 +2219,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2299,7 +2299,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2391,7 +2391,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -2407,7 +2407,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -2423,7 +2423,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -2439,11 +2439,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2455,7 +2455,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -2471,11 +2471,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2487,7 +2487,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -2503,7 +2503,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -2519,7 +2519,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -2535,7 +2535,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -2551,7 +2551,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -2567,7 +2567,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -2583,7 +2583,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -2599,7 +2599,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -2615,7 +2615,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -2631,11 +2631,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2647,7 +2647,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -2663,7 +2663,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -2679,7 +2679,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -2695,7 +2695,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -8107,166 +8107,6 @@
           ]
         },
         {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 0
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 0,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 0,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
           "name": "Test Cluster",
           "code": 4294048773,
           "mfgCode": null,
@@ -11018,7 +10858,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11098,7 +10938,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11190,7 +11030,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -11206,7 +11046,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -11222,7 +11062,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -11238,11 +11078,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11254,7 +11094,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -11270,11 +11110,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11286,7 +11126,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -11302,7 +11142,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -11318,7 +11158,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -11334,7 +11174,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -11350,7 +11190,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -11366,7 +11206,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -11382,7 +11222,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -11398,7 +11238,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -11414,7 +11254,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -11430,11 +11270,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -11446,7 +11286,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -11462,7 +11302,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -11478,7 +11318,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -11494,7 +11334,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -13693,7 +13533,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -13869,7 +13709,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -17270,182 +17110,6 @@
           ]
         },
         {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "FeatureMap",
-              "code": 65532,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
           "name": "Wake on LAN",
           "code": 1283,
           "mfgCode": null,
@@ -19157,6 +18821,252 @@
           ]
         },
         {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "client",
+          "enabled": 0,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "client",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "server",
+          "enabled": 0,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "measurement type",
+              "code": 0,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "total active power",
+              "code": 772,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int32s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage",
+              "code": 1285,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage min",
+              "code": 1286,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage max",
+              "code": 1287,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current",
+              "code": 1288,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current min",
+              "code": 1289,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current max",
+              "code": 1290,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power",
+              "code": 1291,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power min",
+              "code": 1292,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power max",
+              "code": 1293,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "FeatureMap",
+              "code": 65532,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
           "name": "Test Cluster",
           "code": 4294048773,
           "mfgCode": null,
@@ -20747,252 +20657,6 @@
               "reportableChange": 0
             }
           ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "measurement type",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "total active power",
-              "code": 772,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int32s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage",
-              "code": 1285,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage min",
-              "code": 1286,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage max",
-              "code": 1287,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current",
-              "code": 1288,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current min",
-              "code": 1289,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current max",
-              "code": 1290,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power",
-              "code": 1291,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power min",
-              "code": 1292,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power max",
-              "code": 1293,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "FeatureMap",
-              "code": 65532,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
         }
       ]
     },
@@ -22331,7 +21995,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22411,7 +22075,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22503,7 +22167,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -22519,7 +22183,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -22535,7 +22199,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -22551,11 +22215,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22567,7 +22231,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -22583,11 +22247,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22599,7 +22263,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -22615,7 +22279,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -22631,7 +22295,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -22647,7 +22311,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -22663,7 +22327,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -22679,7 +22343,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -22695,7 +22359,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -22711,7 +22375,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -22727,7 +22391,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -22743,11 +22407,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 0,
               "storageOption": "RAM",
               "singleton": 0,
@@ -22759,7 +22423,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -22775,7 +22439,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -22791,7 +22455,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -22807,7 +22471,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -24600,166 +24264,6 @@
               "reportableChange": 0
             }
           ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "client",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneEnrollResponse",
-              "code": 0,
-              "mfgCode": null,
-              "source": "client",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "IAS Zone",
-          "code": 1280,
-          "mfgCode": null,
-          "define": "IAS_ZONE_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [
-            {
-              "name": "ZoneStatusChangeNotification",
-              "code": 0,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            },
-            {
-              "name": "ZoneEnrollRequest",
-              "code": 1,
-              "mfgCode": null,
-              "source": "server",
-              "incoming": 1,
-              "outgoing": 1
-            }
-          ],
-          "attributes": [
-            {
-              "name": "zone state",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum8",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x00",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone type",
-              "code": 1,
-              "mfgCode": null,
-              "side": "server",
-              "type": "enum16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "zone status",
-              "code": 2,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap16",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x0000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "IAS CIE address",
-              "code": 16,
-              "mfgCode": null,
-              "side": "server",
-              "type": "node_id",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "Zone ID",
-              "code": 17,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int8u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "2",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
         }
       ]
     },
@@ -25146,4 +24650,4 @@
       "deviceIdentifier": 61442
     }
   ]
-}
+}
\ No newline at end of file
diff --git a/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp
index 987a095..9557c97 100644
--- a/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp
+++ b/examples/all-clusters-minimal-app/esp32/main/DeviceWithDisplay.cpp
@@ -219,7 +219,7 @@
             {
                 // update the battery percent remaining here for hardcoded endpoint 1
                 ESP_LOGI(TAG, "Battery percent remaining changed to : %d", n);
-                app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast<uint8_t>(n * 2));
+                app::Clusters::PowerSource::Attributes::BatPercentRemaining::Set(1, static_cast<uint8_t>(n * 2));
             }
             value = buffer;
         }
@@ -283,7 +283,7 @@
 
                 // update the battery charge level here for hardcoded endpoint 1
                 ESP_LOGI(TAG, "Battery charge level changed to : %u", static_cast<uint8_t>(attributeValue));
-                app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast<uint8_t>(attributeValue));
+                app::Clusters::PowerSource::Attributes::BatChargeLevel::Set(1, attributeValue);
             }
             else
             {
@@ -590,9 +590,9 @@
     AddEndpoint("1");
     AddCluster("Power Source");
     AddAttribute("Bat remaining", "70");
-    app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::Set(1, static_cast<uint8_t>(70 * 2));
+    app::Clusters::PowerSource::Attributes::BatPercentRemaining::Set(1, static_cast<uint8_t>(70 * 2));
     AddAttribute("Charge level", "0");
-    app::Clusters::PowerSource::Attributes::BatteryChargeLevel::Set(1, static_cast<uint8_t>(0));
+    app::Clusters::PowerSource::Attributes::BatChargeLevel::Set(1, app::Clusters::PowerSource::BatChargeLevel::kOk);
 }
 
 esp_err_t InitM5Stack(std::string qrCodeText)
diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp
index d069d8c..d0b4114 100644
--- a/examples/bridge-app/linux/main.cpp
+++ b/examples/bridge-app/linux/main.cpp
@@ -435,9 +435,8 @@
     if (itemChangedMask & DevicePowerSource::kChanged_BatLevel)
     {
         uint8_t batChargeLevel = dev->GetBatChargeLevel();
-        MatterReportingAttributeChangeCallback(dev->GetEndpointId(), PowerSource::Id,
-                                               PowerSource::Attributes::BatteryChargeLevel::Id, ZCL_INT8U_ATTRIBUTE_TYPE,
-                                               &batChargeLevel);
+        MatterReportingAttributeChangeCallback(dev->GetEndpointId(), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id,
+                                               ZCL_INT8U_ATTRIBUTE_TYPE, &batChargeLevel);
     }
 
     if (itemChangedMask & DevicePowerSource::kChanged_Description)
@@ -549,7 +548,7 @@
                                              uint16_t maxReadLength)
 {
     using namespace app::Clusters;
-    if ((attributeId == PowerSource::Attributes::BatteryChargeLevel::Id) && (maxReadLength == 1))
+    if ((attributeId == PowerSource::Attributes::BatChargeLevel::Id) && (maxReadLength == 1))
     {
         *buffer = dev->GetBatChargeLevel();
     }
diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter
index 6f73f7d..f3fea5b 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -449,7 +449,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -476,7 +476,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -501,7 +501,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -514,14 +514,14 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute int32u wiredAssessedCurrent = 6;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute boolean batteryReplacementNeeded = 15;
-  readonly attribute enum8 batteryReplaceability = 16;
-  readonly attribute char_string<60> batteryReplacementDescription = 19;
+  readonly attribute nullable int32u wiredAssessedCurrent = 6;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute boolean batReplacementNeeded = 15;
+  readonly attribute BatReplaceability batReplaceability = 16;
+  readonly attribute char_string<60> batReplacementDescription = 19;
   readonly attribute bitmap32 featureMap = 65532;
   readonly attribute int16u clusterRevision = 65533;
 }
@@ -2238,10 +2238,10 @@
     ram      attribute status default = 1;
     ram      attribute order default = 1;
     ram      attribute description default = "Battery";
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
-    ram      attribute batteryReplacementDescription;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
+    ram      attribute batReplacementDescription;
     ram      attribute featureMap default = 0x0A;
     ram      attribute clusterRevision default = 1;
   }
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index fee787b..d294fde 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -545,7 +545,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -572,7 +572,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -597,7 +597,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -610,37 +610,37 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute int32u wiredAssessedInputVoltage = 3;
-  readonly attribute int16u wiredAssessedInputFrequency = 4;
-  readonly attribute enum8 wiredCurrentType = 5;
-  readonly attribute int32u wiredAssessedCurrent = 6;
+  readonly attribute nullable int32u wiredAssessedInputVoltage = 3;
+  readonly attribute nullable int16u wiredAssessedInputFrequency = 4;
+  readonly attribute WiredCurrentType wiredCurrentType = 5;
+  readonly attribute nullable int32u wiredAssessedCurrent = 6;
   readonly attribute int32u wiredNominalVoltage = 7;
   readonly attribute int32u wiredMaximumCurrent = 8;
   readonly attribute boolean wiredPresent = 9;
-  readonly attribute ENUM8 activeWiredFaults[] = 10;
-  readonly attribute int32u batteryVoltage = 11;
-  readonly attribute int8u batteryPercentRemaining = 12;
-  readonly attribute int32u batteryTimeRemaining = 13;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute boolean batteryReplacementNeeded = 15;
-  readonly attribute enum8 batteryReplaceability = 16;
-  readonly attribute boolean batteryPresent = 17;
-  readonly attribute ENUM8 activeBatteryFaults[] = 18;
-  readonly attribute char_string<60> batteryReplacementDescription = 19;
-  readonly attribute int32u batteryCommonDesignation = 20;
-  readonly attribute char_string<20> batteryANSIDesignation = 21;
-  readonly attribute char_string<20> batteryIECDesignation = 22;
-  readonly attribute int32u batteryApprovedChemistry = 23;
-  readonly attribute int32u batteryCapacity = 24;
-  readonly attribute int8u batteryQuantity = 25;
-  readonly attribute enum8 batteryChargeState = 26;
-  readonly attribute int32u batteryTimeToFullCharge = 27;
-  readonly attribute boolean batteryFunctionalWhileCharging = 28;
-  readonly attribute int32u batteryChargingCurrent = 29;
-  readonly attribute ENUM8 activeBatteryChargeFaults[] = 30;
+  readonly attribute WiredFault activeWiredFaults[] = 10;
+  readonly attribute nullable int32u batVoltage = 11;
+  readonly attribute nullable int8u batPercentRemaining = 12;
+  readonly attribute nullable int32u batTimeRemaining = 13;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute boolean batReplacementNeeded = 15;
+  readonly attribute BatReplaceability batReplaceability = 16;
+  readonly attribute boolean batPresent = 17;
+  readonly attribute BatFault activeBatFaults[] = 18;
+  readonly attribute char_string<60> batReplacementDescription = 19;
+  readonly attribute int32u batCommonDesignation = 20;
+  readonly attribute char_string<20> batANSIDesignation = 21;
+  readonly attribute char_string<20> batIECDesignation = 22;
+  readonly attribute int32u batApprovedChemistry = 23;
+  readonly attribute int32u batCapacity = 24;
+  readonly attribute int8u batQuantity = 25;
+  readonly attribute BatChargeState batChargeState = 26;
+  readonly attribute nullable int32u batTimeToFullCharge = 27;
+  readonly attribute boolean batFunctionalWhileCharging = 28;
+  readonly attribute nullable int32u batChargingCurrent = 29;
+  readonly attribute BatChargeFault activeBatChargeFaults[] = 30;
   readonly attribute bitmap32 featureMap = 65532;
   readonly attribute int16u clusterRevision = 65533;
 }
@@ -2671,26 +2671,26 @@
     ram      attribute wiredMaximumCurrent;
     ram      attribute wiredPresent;
     callback attribute activeWiredFaults;
-    ram      attribute batteryVoltage;
-    ram      attribute batteryPercentRemaining;
-    ram      attribute batteryTimeRemaining;
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
-    ram      attribute batteryPresent;
-    callback attribute activeBatteryFaults;
-    ram      attribute batteryReplacementDescription;
-    ram      attribute batteryCommonDesignation;
-    ram      attribute batteryANSIDesignation;
-    ram      attribute batteryIECDesignation;
-    ram      attribute batteryApprovedChemistry;
-    ram      attribute batteryCapacity;
-    ram      attribute batteryQuantity;
-    ram      attribute batteryChargeState;
-    ram      attribute batteryTimeToFullCharge;
-    ram      attribute batteryFunctionalWhileCharging;
-    ram      attribute batteryChargingCurrent;
-    callback attribute activeBatteryChargeFaults;
+    ram      attribute batVoltage;
+    ram      attribute batPercentRemaining;
+    ram      attribute batTimeRemaining;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
+    ram      attribute batPresent;
+    callback attribute activeBatFaults;
+    ram      attribute batReplacementDescription;
+    ram      attribute batCommonDesignation;
+    ram      attribute batANSIDesignation;
+    ram      attribute batIECDesignation;
+    ram      attribute batApprovedChemistry;
+    ram      attribute batCapacity;
+    ram      attribute batQuantity;
+    ram      attribute batChargeState;
+    ram      attribute batTimeToFullCharge;
+    ram      attribute batFunctionalWhileCharging;
+    ram      attribute batChargingCurrent;
+    callback attribute activeBatChargeFaults;
     ram      attribute featureMap;
     ram      attribute clusterRevision default = 1;
   }
diff --git a/examples/placeholder/linux/apps/app1/config.zap b/examples/placeholder/linux/apps/app1/config.zap
index 8ad332d..6dbef1d 100644
--- a/examples/placeholder/linux/apps/app1/config.zap
+++ b/examples/placeholder/linux/apps/app1/config.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -1035,7 +1035,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1115,7 +1115,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1207,7 +1207,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -1223,7 +1223,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -1239,7 +1239,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -1255,11 +1255,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1271,7 +1271,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -1287,11 +1287,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1303,7 +1303,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -1319,7 +1319,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -1335,7 +1335,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -1351,7 +1351,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -1367,7 +1367,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -1383,7 +1383,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -1399,7 +1399,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -1415,7 +1415,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -1431,7 +1431,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -1447,11 +1447,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1463,7 +1463,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -1479,7 +1479,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -1495,7 +1495,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -1511,7 +1511,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -4048,7 +4048,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4224,7 +4224,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index fee787b..d294fde 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -545,7 +545,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -572,7 +572,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -597,7 +597,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -610,37 +610,37 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute int32u wiredAssessedInputVoltage = 3;
-  readonly attribute int16u wiredAssessedInputFrequency = 4;
-  readonly attribute enum8 wiredCurrentType = 5;
-  readonly attribute int32u wiredAssessedCurrent = 6;
+  readonly attribute nullable int32u wiredAssessedInputVoltage = 3;
+  readonly attribute nullable int16u wiredAssessedInputFrequency = 4;
+  readonly attribute WiredCurrentType wiredCurrentType = 5;
+  readonly attribute nullable int32u wiredAssessedCurrent = 6;
   readonly attribute int32u wiredNominalVoltage = 7;
   readonly attribute int32u wiredMaximumCurrent = 8;
   readonly attribute boolean wiredPresent = 9;
-  readonly attribute ENUM8 activeWiredFaults[] = 10;
-  readonly attribute int32u batteryVoltage = 11;
-  readonly attribute int8u batteryPercentRemaining = 12;
-  readonly attribute int32u batteryTimeRemaining = 13;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute boolean batteryReplacementNeeded = 15;
-  readonly attribute enum8 batteryReplaceability = 16;
-  readonly attribute boolean batteryPresent = 17;
-  readonly attribute ENUM8 activeBatteryFaults[] = 18;
-  readonly attribute char_string<60> batteryReplacementDescription = 19;
-  readonly attribute int32u batteryCommonDesignation = 20;
-  readonly attribute char_string<20> batteryANSIDesignation = 21;
-  readonly attribute char_string<20> batteryIECDesignation = 22;
-  readonly attribute int32u batteryApprovedChemistry = 23;
-  readonly attribute int32u batteryCapacity = 24;
-  readonly attribute int8u batteryQuantity = 25;
-  readonly attribute enum8 batteryChargeState = 26;
-  readonly attribute int32u batteryTimeToFullCharge = 27;
-  readonly attribute boolean batteryFunctionalWhileCharging = 28;
-  readonly attribute int32u batteryChargingCurrent = 29;
-  readonly attribute ENUM8 activeBatteryChargeFaults[] = 30;
+  readonly attribute WiredFault activeWiredFaults[] = 10;
+  readonly attribute nullable int32u batVoltage = 11;
+  readonly attribute nullable int8u batPercentRemaining = 12;
+  readonly attribute nullable int32u batTimeRemaining = 13;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute boolean batReplacementNeeded = 15;
+  readonly attribute BatReplaceability batReplaceability = 16;
+  readonly attribute boolean batPresent = 17;
+  readonly attribute BatFault activeBatFaults[] = 18;
+  readonly attribute char_string<60> batReplacementDescription = 19;
+  readonly attribute int32u batCommonDesignation = 20;
+  readonly attribute char_string<20> batANSIDesignation = 21;
+  readonly attribute char_string<20> batIECDesignation = 22;
+  readonly attribute int32u batApprovedChemistry = 23;
+  readonly attribute int32u batCapacity = 24;
+  readonly attribute int8u batQuantity = 25;
+  readonly attribute BatChargeState batChargeState = 26;
+  readonly attribute nullable int32u batTimeToFullCharge = 27;
+  readonly attribute boolean batFunctionalWhileCharging = 28;
+  readonly attribute nullable int32u batChargingCurrent = 29;
+  readonly attribute BatChargeFault activeBatChargeFaults[] = 30;
   readonly attribute bitmap32 featureMap = 65532;
   readonly attribute int16u clusterRevision = 65533;
 }
@@ -2671,26 +2671,26 @@
     ram      attribute wiredMaximumCurrent;
     ram      attribute wiredPresent;
     callback attribute activeWiredFaults;
-    ram      attribute batteryVoltage;
-    ram      attribute batteryPercentRemaining;
-    ram      attribute batteryTimeRemaining;
-    ram      attribute batteryChargeLevel;
-    ram      attribute batteryReplacementNeeded;
-    ram      attribute batteryReplaceability;
-    ram      attribute batteryPresent;
-    callback attribute activeBatteryFaults;
-    ram      attribute batteryReplacementDescription;
-    ram      attribute batteryCommonDesignation;
-    ram      attribute batteryANSIDesignation;
-    ram      attribute batteryIECDesignation;
-    ram      attribute batteryApprovedChemistry;
-    ram      attribute batteryCapacity;
-    ram      attribute batteryQuantity;
-    ram      attribute batteryChargeState;
-    ram      attribute batteryTimeToFullCharge;
-    ram      attribute batteryFunctionalWhileCharging;
-    ram      attribute batteryChargingCurrent;
-    callback attribute activeBatteryChargeFaults;
+    ram      attribute batVoltage;
+    ram      attribute batPercentRemaining;
+    ram      attribute batTimeRemaining;
+    ram      attribute batChargeLevel;
+    ram      attribute batReplacementNeeded;
+    ram      attribute batReplaceability;
+    ram      attribute batPresent;
+    callback attribute activeBatFaults;
+    ram      attribute batReplacementDescription;
+    ram      attribute batCommonDesignation;
+    ram      attribute batANSIDesignation;
+    ram      attribute batIECDesignation;
+    ram      attribute batApprovedChemistry;
+    ram      attribute batCapacity;
+    ram      attribute batQuantity;
+    ram      attribute batChargeState;
+    ram      attribute batTimeToFullCharge;
+    ram      attribute batFunctionalWhileCharging;
+    ram      attribute batChargingCurrent;
+    callback attribute activeBatChargeFaults;
     ram      attribute featureMap;
     ram      attribute clusterRevision default = 1;
   }
diff --git a/examples/placeholder/linux/apps/app2/config.zap b/examples/placeholder/linux/apps/app2/config.zap
index 8ad332d..6dbef1d 100644
--- a/examples/placeholder/linux/apps/app2/config.zap
+++ b/examples/placeholder/linux/apps/app2/config.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -1035,7 +1035,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1115,7 +1115,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1207,7 +1207,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -1223,7 +1223,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -1239,7 +1239,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -1255,11 +1255,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1271,7 +1271,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -1287,11 +1287,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1303,7 +1303,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -1319,7 +1319,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -1335,7 +1335,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -1351,7 +1351,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -1367,7 +1367,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -1383,7 +1383,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -1399,7 +1399,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -1415,7 +1415,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -1431,7 +1431,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -1447,11 +1447,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -1463,7 +1463,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -1479,7 +1479,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -1495,7 +1495,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -1511,7 +1511,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -4048,7 +4048,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4224,7 +4224,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter
index 9b67464..c899c4a 100644
--- a/examples/window-app/common/window-app.matter
+++ b/examples/window-app/common/window-app.matter
@@ -551,7 +551,7 @@
 }
 
 server cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -578,7 +578,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -603,7 +603,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -616,15 +616,15 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute int32u batteryVoltage = 11;
-  readonly attribute int8u batteryPercentRemaining = 12;
-  readonly attribute int32u batteryTimeRemaining = 13;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute ENUM8 activeBatteryFaults[] = 18;
-  readonly attribute enum8 batteryChargeState = 26;
+  readonly attribute nullable int32u batVoltage = 11;
+  readonly attribute nullable int8u batPercentRemaining = 12;
+  readonly attribute nullable int32u batTimeRemaining = 13;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute BatFault activeBatFaults[] = 18;
+  readonly attribute BatChargeState batChargeState = 26;
   readonly attribute bitmap32 featureMap = 65532;
   readonly attribute int16u clusterRevision = 65533;
 }
@@ -1673,12 +1673,12 @@
     ram      attribute status;
     ram      attribute order;
     ram      attribute description;
-    ram      attribute batteryVoltage;
-    ram      attribute batteryPercentRemaining;
-    ram      attribute batteryTimeRemaining;
-    ram      attribute batteryChargeLevel;
-    callback attribute activeBatteryFaults;
-    ram      attribute batteryChargeState;
+    ram      attribute batVoltage;
+    ram      attribute batPercentRemaining;
+    ram      attribute batTimeRemaining;
+    ram      attribute batChargeLevel;
+    callback attribute activeBatFaults;
+    ram      attribute batChargeState;
     ram      attribute featureMap;
     ram      attribute clusterRevision default = 1;
   }
diff --git a/examples/window-app/common/window-app.zap b/examples/window-app/common/window-app.zap
index 6d97a2b..3a85ea5 100644
--- a/examples/window-app/common/window-app.zap
+++ b/examples/window-app/common/window-app.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -90,7 +90,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "IdentifyTime",
+              "name": "identify time",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -106,7 +106,7 @@
               "reportableChange": 0
             },
             {
-              "name": "IdentifyType",
+              "name": "identify type",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -322,7 +322,7 @@
           ],
           "attributes": [
             {
-              "name": "NameSupport",
+              "name": "name support",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -792,7 +792,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "DeviceList",
+              "name": "device list",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -808,7 +808,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ServerList",
+              "name": "server list",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -824,7 +824,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ClientList",
+              "name": "client list",
               "code": 2,
               "mfgCode": null,
               "side": "server",
@@ -840,7 +840,7 @@
               "reportableChange": 0
             },
             {
-              "name": "PartsList",
+              "name": "parts list",
               "code": 3,
               "mfgCode": null,
               "side": "server",
@@ -2404,7 +2404,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2448,7 +2448,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -2464,7 +2464,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -2480,7 +2480,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -2496,11 +2496,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -2512,7 +2512,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -2528,11 +2528,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -6209,7 +6209,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "IdentifyTime",
+              "name": "identify time",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -6225,7 +6225,7 @@
               "reportableChange": 0
             },
             {
-              "name": "IdentifyType",
+              "name": "identify type",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -6441,7 +6441,7 @@
           ],
           "attributes": [
             {
-              "name": "NameSupport",
+              "name": "name support",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -6919,7 +6919,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "DeviceList",
+              "name": "device list",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -6935,7 +6935,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ServerList",
+              "name": "server list",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -6951,7 +6951,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ClientList",
+              "name": "client list",
               "code": 2,
               "mfgCode": null,
               "side": "server",
@@ -6967,7 +6967,7 @@
               "reportableChange": 0
             },
             {
-              "name": "PartsList",
+              "name": "parts list",
               "code": 3,
               "mfgCode": null,
               "side": "server",
@@ -7439,7 +7439,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -7615,7 +7615,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -7753,7 +7753,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "IdentifyTime",
+              "name": "identify time",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -7769,7 +7769,7 @@
               "reportableChange": 0
             },
             {
-              "name": "IdentifyType",
+              "name": "identify type",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -7985,7 +7985,7 @@
           ],
           "attributes": [
             {
-              "name": "NameSupport",
+              "name": "name support",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -8463,7 +8463,7 @@
           "commands": [],
           "attributes": [
             {
-              "name": "DeviceList",
+              "name": "device list",
               "code": 0,
               "mfgCode": null,
               "side": "server",
@@ -8479,7 +8479,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ServerList",
+              "name": "server list",
               "code": 1,
               "mfgCode": null,
               "side": "server",
@@ -8495,7 +8495,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ClientList",
+              "name": "client list",
               "code": 2,
               "mfgCode": null,
               "side": "server",
@@ -8511,7 +8511,7 @@
               "reportableChange": 0
             },
             {
-              "name": "PartsList",
+              "name": "parts list",
               "code": 3,
               "mfgCode": null,
               "side": "server",
@@ -8983,7 +8983,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -9159,7 +9159,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -9283,6 +9283,5 @@
       "endpointVersion": 2,
       "deviceIdentifier": 514
     }
-  ],
-  "log": []
+  ]
 }
\ No newline at end of file
diff --git a/src/app/clusters/power-source-server/power-source-server.cpp b/src/app/clusters/power-source-server/power-source-server.cpp
index 95b19fd..d813e56 100644
--- a/src/app/clusters/power-source-server/power-source-server.cpp
+++ b/src/app/clusters/power-source-server/power-source-server.cpp
@@ -51,7 +51,7 @@
 
     switch (aPath.mAttributeId)
     {
-    case ActiveBatteryFaults::Id:
+    case ActiveBatFaults::Id:
         // TODO: Needs implementation.
         err = aEncoder.EncodeEmptyList();
         break;
diff --git a/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml b/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml
index 6034c6e..d407c33 100644
--- a/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_PS_2_1.yaml
@@ -131,7 +131,7 @@
     - label: "Test Harness Client reads BatVoltage from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A000b
       command: "readAttribute"
-      attribute: "BatteryVoltage"
+      attribute: "BatVoltage"
       response:
           constraints:
               type: uint32
@@ -139,7 +139,7 @@
     - label: "Test Harness Client reads BatPercentRemaining from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A000c
       command: "readAttribute"
-      attribute: "BatteryPercentRemaining"
+      attribute: "BatPercentRemaining"
       response:
           constraints:
               type: uint8
@@ -149,7 +149,7 @@
     - label: "Test Harness Client reads BatTimeRemaining from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A000d
       command: "readAttribute"
-      attribute: "BatteryTimeRemaining"
+      attribute: "BatTimeRemaining"
       response:
           constraints:
               type: uint32
@@ -157,7 +157,7 @@
     - label: "Test Harness Client reads BatChargeLevel from Server DUT"
       PICS: PS.S.A000e
       command: "readAttribute"
-      attribute: "BatteryChargeLevel"
+      attribute: "BatChargeLevel"
       response:
           constraints:
               type: enum8
@@ -167,7 +167,7 @@
     - label: "Test Harness Client reads BatReplacementNeeded from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A000f
       command: "readAttribute"
-      attribute: "BatteryReplacementNeeded"
+      attribute: "BatReplacementNeeded"
       response:
           constraints:
               type: bool
@@ -175,7 +175,7 @@
     - label: "Test Harness Client reads BatReplaceability from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0010
       command: "readAttribute"
-      attribute: "BatteryReplaceability"
+      attribute: "BatReplaceability"
       response:
           constraints:
               type: enum8
@@ -185,7 +185,7 @@
     - label: "Test Harness Client reads BatPresent from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0011
       command: "readAttribute"
-      attribute: "BatteryPresent"
+      attribute: "BatPresent"
       response:
           constraints:
               type: bool
@@ -193,7 +193,7 @@
     - label: "Test Harness Client readsActiveBatFaults from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0012
       command: "readAttribute"
-      attribute: "ActiveBatteryFaults"
+      attribute: "ActiveBatFaults"
       response:
           constraints:
               type: list
@@ -203,7 +203,7 @@
           "Test Harness Client reads BatReplacementDescription from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0013
       command: "readAttribute"
-      attribute: "BatteryReplacementDescription"
+      attribute: "BatReplacementDescription"
       response:
           constraints:
               type: string
@@ -212,7 +212,7 @@
     - label: "Test Harness Client reads BatCommonDesignation from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0014
       command: "readAttribute"
-      attribute: "BatteryCommonDesignation"
+      attribute: "BatCommonDesignation"
       response:
           constraints:
               type: uint32
@@ -222,7 +222,7 @@
     - label: "Test Harness Client reads BatANSIDesignation from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0015
       command: "readAttribute"
-      attribute: "BatteryANSIDesignation"
+      attribute: "BatANSIDesignation"
       response:
           constraints:
               type: string
@@ -231,7 +231,7 @@
     - label: "Test Harness Client reads BatIECDesignation from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0016
       command: "readAttribute"
-      attribute: "BatteryIECDesignation"
+      attribute: "BatIECDesignation"
       response:
           constraints:
               type: string
@@ -240,7 +240,7 @@
     - label: "Test Harness Client reads BatApprovedChemistry from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0017
       command: "readAttribute"
-      attribute: "BatteryApprovedChemistry"
+      attribute: "BatApprovedChemistry"
       response:
           constraints:
               type: uint32
@@ -250,7 +250,7 @@
     - label: "Test Harness Client reads BatCapacity from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0018
       command: "readAttribute"
-      attribute: "BatteryCapacity"
+      attribute: "BatCapacity"
       response:
           constraints:
               type: uint32
@@ -258,7 +258,7 @@
     - label: "Test Harness Client reads BatQuantity from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A0019
       command: "readAttribute"
-      attribute: "BatteryQuantity"
+      attribute: "BatQuantity"
       response:
           constraints:
               type: uint8
@@ -266,7 +266,7 @@
     - label: "Test Harness Client reads BatChargeState from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A001a
       command: "readAttribute"
-      attribute: "BatteryChargeState"
+      attribute: "BatChargeState"
       response:
           constraints:
               type: enum8
@@ -276,7 +276,7 @@
     - label: "Test Harness Client reads BatTimeToFullCharge from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A001b
       command: "readAttribute"
-      attribute: "BatteryTimeToFullCharge"
+      attribute: "BatTimeToFullCharge"
       response:
           constraints:
               type: uint32
@@ -285,7 +285,7 @@
           "Test Harness Client reads BatFunctionalWhileCharging from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A001c
       command: "readAttribute"
-      attribute: "BatteryFunctionalWhileCharging"
+      attribute: "BatFunctionalWhileCharging"
       response:
           constraints:
               type: bool
@@ -293,7 +293,7 @@
     - label: "Test Harness Client reads BatChargingCurrent from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A001d
       command: "readAttribute"
-      attribute: "BatteryChargingCurrent"
+      attribute: "BatChargingCurrent"
       response:
           constraints:
               type: uint32
@@ -301,7 +301,7 @@
     - label: "Test Harness Client reads ActiveBatChargeFaults from Server DUT"
       PICS: PICS_SKIP_SAMPLE_APP && PS.S.A001e
       command: "readAttribute"
-      attribute: "ActiveBatteryChargeFaults"
+      attribute: "ActiveBatChargeFaults"
       response:
           constraints:
               type: list
diff --git a/src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml
index c3540b2..28ba55b 100644
--- a/src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/power-source-cluster.xml
@@ -24,44 +24,40 @@
     <client init="false" tick="false">true</client>
     <server init="false" tick="false">true</server>
     <description>This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node.</description>
-    <!-- TODO: Add feature map once it is supported 
-    <tag name="WIRED" description="A wired power source"/>
-    <tag name="BAT" description="A battery powered source"/>
-    <tag name="RECHG" description="A rechargeable battery power source"/>
-    <tag name="REPLC" description="A replaceable battery power source"/>
-    -->
     
-    <attribute side="server" code="0x0000" define="POWER_SOURCE_STATUS" type="ENUM8"  min="0x00" max="0x03" writable="false">Status</attribute>
+    <attribute side="server" code="0x0000" define="POWER_SOURCE_STATUS" type="PowerSourceStatus" writable="false">Status</attribute>
     <attribute side="server" code="0x0001" define="POWER_SOURCE_ORDER" type="INT8U" min="0x00" max="0xFF" writable="false">Order</attribute>
     <attribute side="server" code="0x0002" define="POWER_SOURCE_DESCRIPTION" type="CHAR_STRING" length="60" writable="false">Description</attribute>
-    <attribute side="server" code="0x0003" define="POWER_SOURCE_WIRED_ASSESSED_INPUT_VOLTAGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">WiredAssessedInputVoltage</attribute>
-    <attribute side="server" code="0x0004" define="POWER_SOURCE_WIRED_ASSESSED_INPUT_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true">WiredAssessedInputFrequency</attribute>
-    <attribute side="server" code="0x0005" define="POWER_SOURCE_WIRED_CURRENT_TYPE" type="ENUM8" min="0x00" max="0x01" writable="false" optional="true">WiredCurrentType</attribute>
-    <attribute side="server" code="0x0006" define="POWER_SOURCE_WIRED_ASSESSED_CURRENT" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">WiredAssessedCurrent</attribute>
+
+    <attribute side="server" code="0x0003" define="POWER_SOURCE_WIRED_ASSESSED_INPUT_VOLTAGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">WiredAssessedInputVoltage</attribute>
+    <attribute side="server" code="0x0004" define="POWER_SOURCE_WIRED_ASSESSED_INPUT_FREQUENCY" type="INT16U" min="0x0000" max="0xFFFF" writable="false" optional="true" isNullable="true">WiredAssessedInputFrequency</attribute>
+    <attribute side="server" code="0x0005" define="POWER_SOURCE_WIRED_CURRENT_TYPE" type="WiredCurrentType" writable="false" optional="true">WiredCurrentType</attribute>
+    <attribute side="server" code="0x0006" define="POWER_SOURCE_WIRED_ASSESSED_CURRENT" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">WiredAssessedCurrent</attribute>
     <attribute side="server" code="0x0007" define="POWER_SOURCE_WIRED_NOMINAL_VOLTAGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">WiredNominalVoltage</attribute>
     <attribute side="server" code="0x0008" define="POWER_SOURCE_WIRED_MAXIMUM_CURRENT" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">WiredMaximumCurrent</attribute>
     <attribute side="server" code="0x0009" define="POWER_SOURCE_WIRED_PRESENT" type="BOOLEAN" writable="false" optional="true">WiredPresent</attribute>
-    <attribute side="server" code="0x000A" define="POWER_SOURCE_ACTIVE_WIRED_FAULTS" type="ARRAY" entryType="ENUM8" length="8" writable="false" optional="true">ActiveWiredFaults</attribute>
-    <attribute side="server" code="0x000B" define="POWER_SOURCE_BAT_VOLTAGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryVoltage</attribute>
-    <attribute side="server" code="0x000C" define="POWER_SOURCE_BAT_PERCENT_REMAINING" type="INT8U" min="0x00" max="0xC8" writable="false" optional="true">BatteryPercentRemaining</attribute>
-    <attribute side="server" code="0x000D" define="POWER_SOURCE_BAT_TIME_REMAINING" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryTimeRemaining</attribute>
-    <attribute side="server" code="0x000E" define="POWER_SOURCE_BAT_CHARGE_LEVEL" type="ENUM8" min="0x00" max="0x02" writable="false" optional="true">BatteryChargeLevel</attribute>
-    <attribute side="server" code="0x000F" define="POWER_SOURCE_BAT_REPLACEMENT_NEEDED" type="BOOLEAN" writable="false" optional="true">BatteryReplacementNeeded</attribute>
-    <attribute side="server" code="0x0010" define="POWER_SOURCE_BAT_REPLACEABILITY" type="ENUM8" min="0x00" max="0x03" writable="false" optional="true">BatteryReplaceability</attribute>
-    <attribute side="server" code="0x0011" define="POWER_SOURCE_BAT_PRESENT" type="BOOLEAN" writable="false" optional="true">BatteryPresent</attribute>
-    <attribute side="server" code="0x0012" define="POWER_SOURCE_ACTIVE_BAT_FAULTS" type="ARRAY" entryType="ENUM8" length="8" writable="false" optional="true">ActiveBatteryFaults</attribute>
-    <attribute side="server" code="0x0013" define="POWER_SOURCE_BAT_REPLACEMENT_DESCRIPTION" type="CHAR_STRING" length="60" writable="false" optional="true">BatteryReplacementDescription</attribute>
-    <attribute side="server" code="0x0014" define="POWER_SOURCE_BAT_COMMON_DESIGNATION" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryCommonDesignation</attribute>
-    <attribute side="server" code="0x0015" define="POWER_SOURCE_BAT_ANSI_DESIGNATION" type="CHAR_STRING" length="20" writable="false" optional="true">BatteryANSIDesignation</attribute>
-    <attribute side="server" code="0x0016" define="POWER_SOURCE_BAT_IEC_DESIGNATION" type="CHAR_STRING" length="20" writable="false" optional="true">BatteryIECDesignation</attribute>
-    <attribute side="server" code="0x0017" define="POWER_SOURCE_BAT_APPROVED_CHEMISTRY" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryApprovedChemistry</attribute>
-    <attribute side="server" code="0x0018" define="POWER_SOURCE_BAT_CAPACITY" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryCapacity</attribute>
-    <attribute side="server" code="0x0019" define="POWER_SOURCE_BAT_QUANTITY" type="INT8U" min="0x00" max="0xC8" writable="false" optional="true">BatteryQuantity</attribute>
-    <attribute side="server" code="0x001A" define="POWER_SOURCE_BAT_CHARGE_STATE" type="ENUM8" min="0x00" max="0x03" writable="false" optional="true">BatteryChargeState</attribute>
-    <attribute side="server" code="0x001B" define="POWER_SOURCE_BAT_TIME_TO_FULL_CHARGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryTimeToFullCharge</attribute>
-    <attribute side="server" code="0x001C" define="POWER_SOURCE_BAT_FUNCTIONAL_WHILE_CHARGING" type="BOOLEAN" writable="false" optional="true">BatteryFunctionalWhileCharging</attribute>
-    <attribute side="server" code="0x001D" define="POWER_SOURCE_BAT_CHARGING_CURRENT" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatteryChargingCurrent</attribute>
-    <attribute side="server" code="0x001E" define="POWER_SOURCE_ACTIVE_BAT_CHARGE_FAULTS" type="ARRAY" entryType="ENUM8" length="16" writable="false" optional="true">ActiveBatteryChargeFaults</attribute>
+    <attribute side="server" code="0x000A" define="POWER_SOURCE_ACTIVE_WIRED_FAULTS" type="ARRAY" entryType="WiredFault" length="8" writable="false" optional="true">ActiveWiredFaults</attribute>
+
+    <attribute side="server" code="0x000B" define="POWER_SOURCE_BAT_VOLTAGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">BatVoltage</attribute>
+    <attribute side="server" code="0x000C" define="POWER_SOURCE_BAT_PERCENT_REMAINING" type="INT8U" min="0x00" max="0xC8" writable="false" optional="true" isNullable="true">BatPercentRemaining</attribute>
+    <attribute side="server" code="0x000D" define="POWER_SOURCE_BAT_TIME_REMAINING" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">BatTimeRemaining</attribute>
+    <attribute side="server" code="0x000E" define="POWER_SOURCE_BAT_CHARGE_LEVEL" type="BatChargeLevel" writable="false" optional="true">BatChargeLevel</attribute>
+    <attribute side="server" code="0x000F" define="POWER_SOURCE_BAT_REPLACEMENT_NEEDED" type="BOOLEAN" writable="false" optional="true">BatReplacementNeeded</attribute>
+    <attribute side="server" code="0x0010" define="POWER_SOURCE_BAT_REPLACEABILITY" type="BatReplaceability" writable="false" optional="true">BatReplaceability</attribute>
+    <attribute side="server" code="0x0011" define="POWER_SOURCE_BAT_PRESENT" type="BOOLEAN" writable="false" optional="true">BatPresent</attribute>
+    <attribute side="server" code="0x0012" define="POWER_SOURCE_ACTIVE_BAT_FAULTS" type="ARRAY" entryType="BatFault" length="8" writable="false" optional="true">ActiveBatFaults</attribute>
+    <attribute side="server" code="0x0013" define="POWER_SOURCE_BAT_REPLACEMENT_DESCRIPTION" type="CHAR_STRING" length="60" writable="false" optional="true">BatReplacementDescription</attribute>
+    <attribute side="server" code="0x0014" define="POWER_SOURCE_BAT_COMMON_DESIGNATION" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatCommonDesignation</attribute>
+    <attribute side="server" code="0x0015" define="POWER_SOURCE_BAT_ANSI_DESIGNATION" type="CHAR_STRING" length="20" writable="false" optional="true">BatANSIDesignation</attribute>
+    <attribute side="server" code="0x0016" define="POWER_SOURCE_BAT_IEC_DESIGNATION" type="CHAR_STRING" length="20" writable="false" optional="true">BatIECDesignation</attribute>
+    <attribute side="server" code="0x0017" define="POWER_SOURCE_BAT_APPROVED_CHEMISTRY" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatApprovedChemistry</attribute>
+    <attribute side="server" code="0x0018" define="POWER_SOURCE_BAT_CAPACITY" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true">BatCapacity</attribute>
+    <attribute side="server" code="0x0019" define="POWER_SOURCE_BAT_QUANTITY" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">BatQuantity</attribute>
+    <attribute side="server" code="0x001A" define="POWER_SOURCE_BAT_CHARGE_STATE" type="BatChargeState" writable="false" optional="true">BatChargeState</attribute>
+    <attribute side="server" code="0x001B" define="POWER_SOURCE_BAT_TIME_TO_FULL_CHARGE" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">BatTimeToFullCharge</attribute>
+    <attribute side="server" code="0x001C" define="POWER_SOURCE_BAT_FUNCTIONAL_WHILE_CHARGING" type="BOOLEAN" writable="false" optional="true">BatFunctionalWhileCharging</attribute>
+    <attribute side="server" code="0x001D" define="POWER_SOURCE_BAT_CHARGING_CURRENT" type="INT32U" min="0x00000000" max="0xFFFFFFFF" writable="false" optional="true" isNullable="true">BatChargingCurrent</attribute>
+    <attribute side="server" code="0x001E" define="POWER_SOURCE_ACTIVE_BAT_CHARGE_FAULTS" type="ARRAY" entryType="BatChargeFault" length="16" writable="false" optional="true">ActiveBatChargeFaults</attribute>
 
     <!-- TODO: Do events work?
     <event code="0x0000" name="WiredFaultChange" priority="info" side="server">
@@ -90,21 +86,21 @@
     <field name="Replaceable" mask="0x8"/>
   </bitmap>
 
-  <enum name="WiredFaultType" type="ENUM8">
+  <enum name="WiredFault" type="ENUM8">
     <cluster code="0x002F"/>
     <item name="Unspecfied" value="0x00"/>
     <item name="OverVoltage" value="0x01"/>
     <item name="UnderVoltage" value="0x02"/>
   </enum>
 
-  <enum name="BatFaultType" type="ENUM8">
+  <enum name="BatFault" type="ENUM8">
     <cluster code="0x002F"/>
     <item name="Unspecfied" value="0x00"/>
     <item name="OverTemp" value="0x01"/>
     <item name="UnderTemp" value="0x02"/>
   </enum>
 
-  <enum name="BatChargeFaultType" type="ENUM8">
+  <enum name="BatChargeFault" type="ENUM8">
     <cluster code="0x002F"/>
     <item name="Unspecfied" value="0x00"/>
     <item name="AmbientTooHot" value="0x01"/>
@@ -158,20 +154,20 @@
 
   <struct name="WiredFaultChangeType">
     <cluster code="0x002F"/>
-    <item name="current" type="WiredFaultType" array="true" length="8"/>
-    <item name="previous" type="WiredFaultType" array="true" length="8"/>
+    <item name="current" type="WiredFault" array="true" length="8"/>
+    <item name="previous" type="WiredFault" array="true" length="8"/>
   </struct>
 
   <struct name="BatFaultChangeType">
     <cluster code="0x002F"/>
-    <item name="current" type="BatFaultType" array="true" length="8"/>
-    <item name="previous" type="BatFaultType" array="true" length="8"/>
+    <item name="current" type="BatFault" array="true" length="8"/>
+    <item name="previous" type="BatFault" array="true" length="8"/>
   </struct>
 
   <struct name="BatChargeFaultChangeType">
     <cluster code="0x002F"/>
-    <item name="current" type="BatChargeFaultType" array="true" length="16"/>
-    <item name="previous" type="BatChargeFaultType" array="true" length="16"/>
+    <item name="current" type="BatChargeFault" array="true" length="16"/>
+    <item name="previous" type="BatChargeFault" array="true" length="16"/>
   </struct>
 
 </configurator>
\ No newline at end of file
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 57018d8..95eb8b0 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -913,7 +913,7 @@
 }
 
 client cluster PowerSource = 47 {
-  enum BatChargeFaultType : ENUM8 {
+  enum BatChargeFault : ENUM8 {
     kUnspecfied = 0;
     kAmbientTooHot = 1;
     kAmbientTooCold = 2;
@@ -940,7 +940,7 @@
     kIsNotCharging = 3;
   }
 
-  enum BatFaultType : ENUM8 {
+  enum BatFault : ENUM8 {
     kUnspecfied = 0;
     kOverTemp = 1;
     kUnderTemp = 2;
@@ -965,7 +965,7 @@
     kDc = 1;
   }
 
-  enum WiredFaultType : ENUM8 {
+  enum WiredFault : ENUM8 {
     kUnspecfied = 0;
     kOverVoltage = 1;
     kUnderVoltage = 2;
@@ -978,37 +978,37 @@
     kReplaceable = 0x8;
   }
 
-  readonly attribute enum8 status = 0;
+  readonly attribute PowerSourceStatus status = 0;
   readonly attribute int8u order = 1;
   readonly attribute char_string<60> description = 2;
-  readonly attribute int32u wiredAssessedInputVoltage = 3;
-  readonly attribute int16u wiredAssessedInputFrequency = 4;
-  readonly attribute enum8 wiredCurrentType = 5;
-  readonly attribute int32u wiredAssessedCurrent = 6;
+  readonly attribute nullable int32u wiredAssessedInputVoltage = 3;
+  readonly attribute nullable int16u wiredAssessedInputFrequency = 4;
+  readonly attribute WiredCurrentType wiredCurrentType = 5;
+  readonly attribute nullable int32u wiredAssessedCurrent = 6;
   readonly attribute int32u wiredNominalVoltage = 7;
   readonly attribute int32u wiredMaximumCurrent = 8;
   readonly attribute boolean wiredPresent = 9;
-  readonly attribute ENUM8 activeWiredFaults[] = 10;
-  readonly attribute int32u batteryVoltage = 11;
-  readonly attribute int8u batteryPercentRemaining = 12;
-  readonly attribute int32u batteryTimeRemaining = 13;
-  readonly attribute enum8 batteryChargeLevel = 14;
-  readonly attribute boolean batteryReplacementNeeded = 15;
-  readonly attribute enum8 batteryReplaceability = 16;
-  readonly attribute boolean batteryPresent = 17;
-  readonly attribute ENUM8 activeBatteryFaults[] = 18;
-  readonly attribute char_string<60> batteryReplacementDescription = 19;
-  readonly attribute int32u batteryCommonDesignation = 20;
-  readonly attribute char_string<20> batteryANSIDesignation = 21;
-  readonly attribute char_string<20> batteryIECDesignation = 22;
-  readonly attribute int32u batteryApprovedChemistry = 23;
-  readonly attribute int32u batteryCapacity = 24;
-  readonly attribute int8u batteryQuantity = 25;
-  readonly attribute enum8 batteryChargeState = 26;
-  readonly attribute int32u batteryTimeToFullCharge = 27;
-  readonly attribute boolean batteryFunctionalWhileCharging = 28;
-  readonly attribute int32u batteryChargingCurrent = 29;
-  readonly attribute ENUM8 activeBatteryChargeFaults[] = 30;
+  readonly attribute WiredFault activeWiredFaults[] = 10;
+  readonly attribute nullable int32u batVoltage = 11;
+  readonly attribute nullable int8u batPercentRemaining = 12;
+  readonly attribute nullable int32u batTimeRemaining = 13;
+  readonly attribute BatChargeLevel batChargeLevel = 14;
+  readonly attribute boolean batReplacementNeeded = 15;
+  readonly attribute BatReplaceability batReplaceability = 16;
+  readonly attribute boolean batPresent = 17;
+  readonly attribute BatFault activeBatFaults[] = 18;
+  readonly attribute char_string<60> batReplacementDescription = 19;
+  readonly attribute int32u batCommonDesignation = 20;
+  readonly attribute char_string<20> batANSIDesignation = 21;
+  readonly attribute char_string<20> batIECDesignation = 22;
+  readonly attribute int32u batApprovedChemistry = 23;
+  readonly attribute int32u batCapacity = 24;
+  readonly attribute int8u batQuantity = 25;
+  readonly attribute BatChargeState batChargeState = 26;
+  readonly attribute nullable int32u batTimeToFullCharge = 27;
+  readonly attribute boolean batFunctionalWhileCharging = 28;
+  readonly attribute nullable int32u batChargingCurrent = 29;
+  readonly attribute BatChargeFault activeBatChargeFaults[] = 30;
   readonly attribute command_id generatedCommandList[] = 65528;
   readonly attribute command_id acceptedCommandList[] = 65529;
   readonly attribute attrib_id attributeList[] = 65531;
diff --git a/src/controller/data_model/controller-clusters.zap b/src/controller/data_model/controller-clusters.zap
index 1b33508..7e3e1f0 100644
--- a/src/controller/data_model/controller-clusters.zap
+++ b/src/controller/data_model/controller-clusters.zap
@@ -1,5 +1,5 @@
 {
-  "featureLevel": 71,
+  "featureLevel": 72,
   "creator": "zap",
   "keyValuePairs": [
     {
@@ -3913,7 +3913,7 @@
               "code": 0,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "PowerSourceStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -3993,7 +3993,7 @@
               "code": 5,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "WiredCurrentType",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4085,7 +4085,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryVoltage",
+              "name": "BatVoltage",
               "code": 11,
               "mfgCode": null,
               "side": "server",
@@ -4101,7 +4101,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPercentRemaining",
+              "name": "BatPercentRemaining",
               "code": 12,
               "mfgCode": null,
               "side": "server",
@@ -4117,7 +4117,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeRemaining",
+              "name": "BatTimeRemaining",
               "code": 13,
               "mfgCode": null,
               "side": "server",
@@ -4133,11 +4133,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeLevel",
+              "name": "BatChargeLevel",
               "code": 14,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeLevel",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4149,7 +4149,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementNeeded",
+              "name": "BatReplacementNeeded",
               "code": 15,
               "mfgCode": null,
               "side": "server",
@@ -4165,11 +4165,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplaceability",
+              "name": "BatReplaceability",
               "code": 16,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatReplaceability",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4181,7 +4181,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryPresent",
+              "name": "BatPresent",
               "code": 17,
               "mfgCode": null,
               "side": "server",
@@ -4197,7 +4197,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryFaults",
+              "name": "ActiveBatFaults",
               "code": 18,
               "mfgCode": null,
               "side": "server",
@@ -4213,7 +4213,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryReplacementDescription",
+              "name": "BatReplacementDescription",
               "code": 19,
               "mfgCode": null,
               "side": "server",
@@ -4229,7 +4229,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCommonDesignation",
+              "name": "BatCommonDesignation",
               "code": 20,
               "mfgCode": null,
               "side": "server",
@@ -4245,7 +4245,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryANSIDesignation",
+              "name": "BatANSIDesignation",
               "code": 21,
               "mfgCode": null,
               "side": "server",
@@ -4261,7 +4261,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryIECDesignation",
+              "name": "BatIECDesignation",
               "code": 22,
               "mfgCode": null,
               "side": "server",
@@ -4277,7 +4277,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryApprovedChemistry",
+              "name": "BatApprovedChemistry",
               "code": 23,
               "mfgCode": null,
               "side": "server",
@@ -4293,7 +4293,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryCapacity",
+              "name": "BatCapacity",
               "code": 24,
               "mfgCode": null,
               "side": "server",
@@ -4309,7 +4309,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryQuantity",
+              "name": "BatQuantity",
               "code": 25,
               "mfgCode": null,
               "side": "server",
@@ -4325,11 +4325,11 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargeState",
+              "name": "BatChargeState",
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "enum8",
+              "type": "BatChargeState",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -4341,7 +4341,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryTimeToFullCharge",
+              "name": "BatTimeToFullCharge",
               "code": 27,
               "mfgCode": null,
               "side": "server",
@@ -4357,7 +4357,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryFunctionalWhileCharging",
+              "name": "BatFunctionalWhileCharging",
               "code": 28,
               "mfgCode": null,
               "side": "server",
@@ -4373,7 +4373,7 @@
               "reportableChange": 0
             },
             {
-              "name": "BatteryChargingCurrent",
+              "name": "BatChargingCurrent",
               "code": 29,
               "mfgCode": null,
               "side": "server",
@@ -4389,7 +4389,7 @@
               "reportableChange": 0
             },
             {
-              "name": "ActiveBatteryChargeFaults",
+              "name": "ActiveBatChargeFaults",
               "code": 30,
               "mfgCode": null,
               "side": "server",
@@ -10517,7 +10517,7 @@
               "code": 10,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap8",
+              "type": "OperationalStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -10693,7 +10693,7 @@
               "code": 26,
               "mfgCode": null,
               "side": "server",
-              "type": "bitmap16",
+              "type": "SafetyStatus",
               "included": 1,
               "storageOption": "RAM",
               "singleton": 0,
@@ -17191,6 +17191,300 @@
           ]
         },
         {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "client",
+          "enabled": 1,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "client",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
+          "name": "Electrical Measurement",
+          "code": 2820,
+          "mfgCode": null,
+          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
+          "side": "server",
+          "enabled": 0,
+          "commands": [],
+          "attributes": [
+            {
+              "name": "measurement type",
+              "code": 0,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "total active power",
+              "code": 772,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int32s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x000000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage",
+              "code": 1285,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage min",
+              "code": 1286,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms voltage max",
+              "code": 1287,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0x8000",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current",
+              "code": 1288,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current min",
+              "code": 1289,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "rms current max",
+              "code": 1290,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power",
+              "code": 1291,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power min",
+              "code": 1292,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "active power max",
+              "code": 1293,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16s",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0xffff",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            },
+            {
+              "name": "GeneratedCommandList",
+              "code": 65528,
+              "mfgCode": null,
+              "side": "server",
+              "type": "array",
+              "included": 1,
+              "storageOption": "External",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "AcceptedCommandList",
+              "code": 65529,
+              "mfgCode": null,
+              "side": "server",
+              "type": "array",
+              "included": 1,
+              "storageOption": "External",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "AttributeList",
+              "code": 65531,
+              "mfgCode": null,
+              "side": "server",
+              "type": "array",
+              "included": 1,
+              "storageOption": "External",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "FeatureMap",
+              "code": 65532,
+              "mfgCode": null,
+              "side": "server",
+              "type": "bitmap32",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "0",
+              "reportable": 1,
+              "minInterval": 1,
+              "maxInterval": 65534,
+              "reportableChange": 0
+            },
+            {
+              "name": "ClusterRevision",
+              "code": 65533,
+              "mfgCode": null,
+              "side": "server",
+              "type": "int16u",
+              "included": 1,
+              "storageOption": "RAM",
+              "singleton": 0,
+              "bounded": 0,
+              "defaultValue": "3",
+              "reportable": 1,
+              "minInterval": 0,
+              "maxInterval": 65344,
+              "reportableChange": 0
+            }
+          ]
+        },
+        {
           "name": "Test Cluster",
           "code": 4294048773,
           "mfgCode": null,
@@ -18829,300 +19123,6 @@
               "reportableChange": 0
             }
           ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "client",
-          "enabled": 1,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "client",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
-        },
-        {
-          "name": "Electrical Measurement",
-          "code": 2820,
-          "mfgCode": null,
-          "define": "ELECTRICAL_MEASUREMENT_CLUSTER",
-          "side": "server",
-          "enabled": 0,
-          "commands": [],
-          "attributes": [
-            {
-              "name": "measurement type",
-              "code": 0,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "total active power",
-              "code": 772,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int32s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x000000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage",
-              "code": 1285,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage min",
-              "code": 1286,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms voltage max",
-              "code": 1287,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0x8000",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current",
-              "code": 1288,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current min",
-              "code": 1289,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "rms current max",
-              "code": 1290,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power",
-              "code": 1291,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power min",
-              "code": 1292,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "active power max",
-              "code": 1293,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16s",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0xffff",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            },
-            {
-              "name": "GeneratedCommandList",
-              "code": 65528,
-              "mfgCode": null,
-              "side": "server",
-              "type": "array",
-              "included": 1,
-              "storageOption": "External",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "AcceptedCommandList",
-              "code": 65529,
-              "mfgCode": null,
-              "side": "server",
-              "type": "array",
-              "included": 1,
-              "storageOption": "External",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "AttributeList",
-              "code": 65531,
-              "mfgCode": null,
-              "side": "server",
-              "type": "array",
-              "included": 1,
-              "storageOption": "External",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "FeatureMap",
-              "code": 65532,
-              "mfgCode": null,
-              "side": "server",
-              "type": "bitmap32",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "0",
-              "reportable": 1,
-              "minInterval": 1,
-              "maxInterval": 65534,
-              "reportableChange": 0
-            },
-            {
-              "name": "ClusterRevision",
-              "code": 65533,
-              "mfgCode": null,
-              "side": "server",
-              "type": "int16u",
-              "included": 1,
-              "storageOption": "RAM",
-              "singleton": 0,
-              "bounded": 0,
-              "defaultValue": "3",
-              "reportable": 1,
-              "minInterval": 0,
-              "maxInterval": 65344,
-              "reportableChange": 0
-            }
-          ]
         }
       ]
     }
@@ -19137,5 +19137,6 @@
       "endpointVersion": 1,
       "deviceIdentifier": 22
     }
-  ]
-}
+  ],
+  "log": []
+}
\ No newline at end of file
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 8030b12..bcfb522 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -3564,7 +3564,7 @@
             std::string valueClassName     = "java/lang/Integer";
             std::string valueCtorSignature = "(I)V";
             chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
+                                                                          static_cast<uint8_t>(cppValue), value);
             return value;
         }
         case Attributes::Order::Id: {
@@ -3603,10 +3603,17 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
         case Attributes::WiredAssessedInputFrequency::Id: {
@@ -3618,10 +3625,17 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Integer";
-            std::string valueCtorSignature = "(I)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint16_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Integer";
+                std::string valueCtorSignature = "(I)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint16_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
         case Attributes::WiredCurrentType::Id: {
@@ -3636,7 +3650,7 @@
             std::string valueClassName     = "java/lang/Integer";
             std::string valueCtorSignature = "(I)V";
             chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
+                                                                          static_cast<uint8_t>(cppValue), value);
             return value;
         }
         case Attributes::WiredAssessedCurrent::Id: {
@@ -3648,10 +3662,17 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
         case Attributes::WiredNominalVoltage::Id: {
@@ -3718,13 +3739,13 @@
                 std::string newElement_0ClassName     = "java/lang/Integer";
                 std::string newElement_0CtorSignature = "(I)V";
                 chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
-                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
                 chip::JniReferences::GetInstance().AddToList(value, newElement_0);
             }
             return value;
         }
-        case Attributes::BatteryVoltage::Id: {
-            using TypeInfo = Attributes::BatteryVoltage::TypeInfo;
+        case Attributes::BatVoltage::Id: {
+            using TypeInfo = Attributes::BatVoltage::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3732,14 +3753,65 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
-        case Attributes::BatteryPercentRemaining::Id: {
-            using TypeInfo = Attributes::BatteryPercentRemaining::TypeInfo;
+        case Attributes::BatPercentRemaining::Id: {
+            using TypeInfo = Attributes::BatPercentRemaining::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Integer";
+                std::string valueCtorSignature = "(I)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                              cppValue.Value(), value);
+            }
+            return value;
+        }
+        case Attributes::BatTimeRemaining::Id: {
+            using TypeInfo = Attributes::BatTimeRemaining::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
+            return value;
+        }
+        case Attributes::BatChargeLevel::Id: {
+            using TypeInfo = Attributes::BatChargeLevel::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3750,41 +3822,11 @@
             std::string valueClassName     = "java/lang/Integer";
             std::string valueCtorSignature = "(I)V";
             chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
+                                                                          static_cast<uint8_t>(cppValue), value);
             return value;
         }
-        case Attributes::BatteryTimeRemaining::Id: {
-            using TypeInfo = Attributes::BatteryTimeRemaining::TypeInfo;
-            TypeInfo::DecodableType cppValue;
-            *aError = app::DataModel::Decode(aReader, cppValue);
-            if (*aError != CHIP_NO_ERROR)
-            {
-                return nullptr;
-            }
-            jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
-            return value;
-        }
-        case Attributes::BatteryChargeLevel::Id: {
-            using TypeInfo = Attributes::BatteryChargeLevel::TypeInfo;
-            TypeInfo::DecodableType cppValue;
-            *aError = app::DataModel::Decode(aReader, cppValue);
-            if (*aError != CHIP_NO_ERROR)
-            {
-                return nullptr;
-            }
-            jobject value;
-            std::string valueClassName     = "java/lang/Integer";
-            std::string valueCtorSignature = "(I)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
-            return value;
-        }
-        case Attributes::BatteryReplacementNeeded::Id: {
-            using TypeInfo = Attributes::BatteryReplacementNeeded::TypeInfo;
+        case Attributes::BatReplacementNeeded::Id: {
+            using TypeInfo = Attributes::BatReplacementNeeded::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3798,8 +3840,8 @@
                                                                        value);
             return value;
         }
-        case Attributes::BatteryReplaceability::Id: {
-            using TypeInfo = Attributes::BatteryReplaceability::TypeInfo;
+        case Attributes::BatReplaceability::Id: {
+            using TypeInfo = Attributes::BatReplaceability::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3810,11 +3852,11 @@
             std::string valueClassName     = "java/lang/Integer";
             std::string valueCtorSignature = "(I)V";
             chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
+                                                                          static_cast<uint8_t>(cppValue), value);
             return value;
         }
-        case Attributes::BatteryPresent::Id: {
-            using TypeInfo = Attributes::BatteryPresent::TypeInfo;
+        case Attributes::BatPresent::Id: {
+            using TypeInfo = Attributes::BatPresent::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3828,8 +3870,8 @@
                                                                        value);
             return value;
         }
-        case Attributes::ActiveBatteryFaults::Id: {
-            using TypeInfo = Attributes::ActiveBatteryFaults::TypeInfo;
+        case Attributes::ActiveBatFaults::Id: {
+            using TypeInfo = Attributes::ActiveBatFaults::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3847,13 +3889,13 @@
                 std::string newElement_0ClassName     = "java/lang/Integer";
                 std::string newElement_0CtorSignature = "(I)V";
                 chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
-                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
                 chip::JniReferences::GetInstance().AddToList(value, newElement_0);
             }
             return value;
         }
-        case Attributes::BatteryReplacementDescription::Id: {
-            using TypeInfo = Attributes::BatteryReplacementDescription::TypeInfo;
+        case Attributes::BatReplacementDescription::Id: {
+            using TypeInfo = Attributes::BatReplacementDescription::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3864,8 +3906,8 @@
             value = env->NewStringUTF(std::string(cppValue.data(), cppValue.size()).c_str());
             return value;
         }
-        case Attributes::BatteryCommonDesignation::Id: {
-            using TypeInfo = Attributes::BatteryCommonDesignation::TypeInfo;
+        case Attributes::BatCommonDesignation::Id: {
+            using TypeInfo = Attributes::BatCommonDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3879,8 +3921,8 @@
                                                                            cppValue, value);
             return value;
         }
-        case Attributes::BatteryANSIDesignation::Id: {
-            using TypeInfo = Attributes::BatteryANSIDesignation::TypeInfo;
+        case Attributes::BatANSIDesignation::Id: {
+            using TypeInfo = Attributes::BatANSIDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3891,8 +3933,8 @@
             value = env->NewStringUTF(std::string(cppValue.data(), cppValue.size()).c_str());
             return value;
         }
-        case Attributes::BatteryIECDesignation::Id: {
-            using TypeInfo = Attributes::BatteryIECDesignation::TypeInfo;
+        case Attributes::BatIECDesignation::Id: {
+            using TypeInfo = Attributes::BatIECDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3903,8 +3945,8 @@
             value = env->NewStringUTF(std::string(cppValue.data(), cppValue.size()).c_str());
             return value;
         }
-        case Attributes::BatteryApprovedChemistry::Id: {
-            using TypeInfo = Attributes::BatteryApprovedChemistry::TypeInfo;
+        case Attributes::BatApprovedChemistry::Id: {
+            using TypeInfo = Attributes::BatApprovedChemistry::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3918,8 +3960,8 @@
                                                                            cppValue, value);
             return value;
         }
-        case Attributes::BatteryCapacity::Id: {
-            using TypeInfo = Attributes::BatteryCapacity::TypeInfo;
+        case Attributes::BatCapacity::Id: {
+            using TypeInfo = Attributes::BatCapacity::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3933,8 +3975,8 @@
                                                                            cppValue, value);
             return value;
         }
-        case Attributes::BatteryQuantity::Id: {
-            using TypeInfo = Attributes::BatteryQuantity::TypeInfo;
+        case Attributes::BatQuantity::Id: {
+            using TypeInfo = Attributes::BatQuantity::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3948,8 +3990,8 @@
                                                                           cppValue, value);
             return value;
         }
-        case Attributes::BatteryChargeState::Id: {
-            using TypeInfo = Attributes::BatteryChargeState::TypeInfo;
+        case Attributes::BatChargeState::Id: {
+            using TypeInfo = Attributes::BatChargeState::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3960,11 +4002,11 @@
             std::string valueClassName     = "java/lang/Integer";
             std::string valueCtorSignature = "(I)V";
             chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                          cppValue, value);
+                                                                          static_cast<uint8_t>(cppValue), value);
             return value;
         }
-        case Attributes::BatteryTimeToFullCharge::Id: {
-            using TypeInfo = Attributes::BatteryTimeToFullCharge::TypeInfo;
+        case Attributes::BatTimeToFullCharge::Id: {
+            using TypeInfo = Attributes::BatTimeToFullCharge::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3972,14 +4014,21 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
-        case Attributes::BatteryFunctionalWhileCharging::Id: {
-            using TypeInfo = Attributes::BatteryFunctionalWhileCharging::TypeInfo;
+        case Attributes::BatFunctionalWhileCharging::Id: {
+            using TypeInfo = Attributes::BatFunctionalWhileCharging::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -3993,8 +4042,8 @@
                                                                        value);
             return value;
         }
-        case Attributes::BatteryChargingCurrent::Id: {
-            using TypeInfo = Attributes::BatteryChargingCurrent::TypeInfo;
+        case Attributes::BatChargingCurrent::Id: {
+            using TypeInfo = Attributes::BatChargingCurrent::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -4002,14 +4051,21 @@
                 return nullptr;
             }
             jobject value;
-            std::string valueClassName     = "java/lang/Long";
-            std::string valueCtorSignature = "(J)V";
-            chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
-                                                                           cppValue, value);
+            if (cppValue.IsNull())
+            {
+                value = nullptr;
+            }
+            else
+            {
+                std::string valueClassName     = "java/lang/Long";
+                std::string valueCtorSignature = "(J)V";
+                chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                               cppValue.Value(), value);
+            }
             return value;
         }
-        case Attributes::ActiveBatteryChargeFaults::Id: {
-            using TypeInfo = Attributes::ActiveBatteryChargeFaults::TypeInfo;
+        case Attributes::ActiveBatChargeFaults::Id: {
+            using TypeInfo = Attributes::ActiveBatChargeFaults::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = app::DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR)
@@ -4027,7 +4083,7 @@
                 std::string newElement_0ClassName     = "java/lang/Integer";
                 std::string newElement_0CtorSignature = "(I)V";
                 chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
-                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
                 chip::JniReferences::GetInstance().AddToList(value, newElement_0);
             }
             return value;
diff --git a/src/controller/java/zap-generated/CHIPCallbackTypes.h b/src/controller/java/zap-generated/CHIPCallbackTypes.h
index efab094..87ce0b4 100644
--- a/src/controller/java/zap-generated/CHIPCallbackTypes.h
+++ b/src/controller/java/zap-generated/CHIPCallbackTypes.h
@@ -403,46 +403,46 @@
     void *, chip::app::Clusters::PowerSource::Attributes::WiredPresent::TypeInfo::DecodableArgType);
 typedef void (*CHIPPowerSourceClusterActiveWiredFaultsAttributeCallbackType)(
     void *, const chip::app::Clusters::PowerSource::Attributes::ActiveWiredFaults::TypeInfo::DecodableType &);
-typedef void (*CHIPPowerSourceClusterBatteryVoltageAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryVoltage::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryPercentRemainingAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryPercentRemaining::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryTimeRemainingAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryTimeRemaining::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryChargeLevelAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryChargeLevel::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryReplacementNeededAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryReplacementNeeded::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryReplaceabilityAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryReplaceability::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryPresentAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryPresent::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterActiveBatteryFaultsAttributeCallbackType)(
-    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatteryFaults::TypeInfo::DecodableType &);
-typedef void (*CHIPPowerSourceClusterBatteryReplacementDescriptionAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryReplacementDescription::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryCommonDesignationAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryCommonDesignation::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryANSIDesignationAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryANSIDesignation::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryIECDesignationAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryIECDesignation::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryApprovedChemistryAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryApprovedChemistry::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryCapacityAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryCapacity::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryQuantityAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryQuantity::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryChargeStateAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryChargeState::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryTimeToFullChargeAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryTimeToFullCharge::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryFunctionalWhileChargingAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryFunctionalWhileCharging::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterBatteryChargingCurrentAttributeCallbackType)(
-    void *, chip::app::Clusters::PowerSource::Attributes::BatteryChargingCurrent::TypeInfo::DecodableArgType);
-typedef void (*CHIPPowerSourceClusterActiveBatteryChargeFaultsAttributeCallbackType)(
-    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatteryChargeFaults::TypeInfo::DecodableType &);
+typedef void (*CHIPPowerSourceClusterBatVoltageAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatVoltage::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatPercentRemainingAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatPercentRemaining::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatTimeRemainingAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatTimeRemaining::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatChargeLevelAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatChargeLevel::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatReplacementNeededAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatReplacementNeeded::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatReplaceabilityAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatReplaceability::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatPresentAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatPresent::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterActiveBatFaultsAttributeCallbackType)(
+    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatFaults::TypeInfo::DecodableType &);
+typedef void (*CHIPPowerSourceClusterBatReplacementDescriptionAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatReplacementDescription::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatCommonDesignationAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatCommonDesignation::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatANSIDesignationAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatANSIDesignation::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatIECDesignationAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatIECDesignation::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatApprovedChemistryAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatApprovedChemistry::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatCapacityAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatCapacity::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatQuantityAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatQuantity::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatChargeStateAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatChargeState::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatTimeToFullChargeAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatTimeToFullCharge::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatFunctionalWhileChargingAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatFunctionalWhileCharging::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterBatChargingCurrentAttributeCallbackType)(
+    void *, chip::app::Clusters::PowerSource::Attributes::BatChargingCurrent::TypeInfo::DecodableArgType);
+typedef void (*CHIPPowerSourceClusterActiveBatChargeFaultsAttributeCallbackType)(
+    void *, const chip::app::Clusters::PowerSource::Attributes::ActiveBatChargeFaults::TypeInfo::DecodableType &);
 typedef void (*CHIPPowerSourceClusterGeneratedCommandListAttributeCallbackType)(
     void *, const chip::app::Clusters::PowerSource::Attributes::GeneratedCommandList::TypeInfo::DecodableType &);
 typedef void (*CHIPPowerSourceClusterAcceptedCommandListAttributeCallbackType)(
diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
index 6063012..3048a83 100644
--- a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
+++ b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp
@@ -5810,6 +5810,207 @@
     env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj);
 }
 
+CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback::CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback(
+    jobject javaCallback, bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedInputVoltageAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback::~CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback::CallbackFn(void * context,
+                                                                           const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback::CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback(
+    jobject javaCallback, bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedInputFrequencyAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback::~CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback::CallbackFn(void * context,
+                                                                             const chip::app::DataModel::Nullable<uint16_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Integer";
+        std::string javaValueCtorSignature = "(I)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint16_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceWiredAssessedCurrentAttributeCallback::CHIPPowerSourceWiredAssessedCurrentAttributeCallback(jobject javaCallback,
+                                                                                                           bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedCurrentAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceWiredAssessedCurrentAttributeCallback::~CHIPPowerSourceWiredAssessedCurrentAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceWiredAssessedCurrentAttributeCallback::CallbackFn(void * context,
+                                                                      const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceWiredAssessedCurrentAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceWiredAssessedCurrentAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
 CHIPPowerSourceActiveWiredFaultsAttributeCallback::CHIPPowerSourceActiveWiredFaultsAttributeCallback(jobject javaCallback,
                                                                                                      bool keepAlive) :
     chip::Callback::Callback<CHIPPowerSourceClusterActiveWiredFaultsAttributeCallbackType>(CallbackFn, this),
@@ -5840,8 +6041,8 @@
     env->DeleteGlobalRef(javaCallbackRef);
 }
 
-void CHIPPowerSourceActiveWiredFaultsAttributeCallback::CallbackFn(void * context,
-                                                                   const chip::app::DataModel::DecodableList<uint8_t> & list)
+void CHIPPowerSourceActiveWiredFaultsAttributeCallback::CallbackFn(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & list)
 {
     chip::DeviceLayer::StackUnlock unlock;
     CHIP_ERROR err = CHIP_NO_ERROR;
@@ -5872,8 +6073,8 @@
         jobject newElement_0;
         std::string newElement_0ClassName     = "java/lang/Integer";
         std::string newElement_0CtorSignature = "(I)V";
-        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(newElement_0ClassName.c_str(),
-                                                                      newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
+            newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
         chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0);
     }
 
@@ -5881,9 +6082,73 @@
     env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj);
 }
 
-CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback,
+CHIPPowerSourceBatVoltageAttributeCallback::CHIPPowerSourceBatVoltageAttributeCallback(jobject javaCallback, bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterBatVoltageAttributeCallbackType>(CallbackFn, this), keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceBatVoltageAttributeCallback::~CHIPPowerSourceBatVoltageAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceBatVoltageAttributeCallback::CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceBatVoltageAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceBatVoltageAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceBatPercentRemainingAttributeCallback::CHIPPowerSourceBatPercentRemainingAttributeCallback(jobject javaCallback,
                                                                                                          bool keepAlive) :
-    chip::Callback::Callback<CHIPPowerSourceClusterActiveBatteryFaultsAttributeCallbackType>(CallbackFn, this),
+    chip::Callback::Callback<CHIPPowerSourceClusterBatPercentRemainingAttributeCallbackType>(CallbackFn, this),
     keepAlive(keepAlive)
 {
     JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
@@ -5900,7 +6165,7 @@
     }
 }
 
-CHIPPowerSourceActiveBatteryFaultsAttributeCallback::~CHIPPowerSourceActiveBatteryFaultsAttributeCallback()
+CHIPPowerSourceBatPercentRemainingAttributeCallback::~CHIPPowerSourceBatPercentRemainingAttributeCallback()
 {
     JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
     if (env == nullptr)
@@ -5911,8 +6176,142 @@
     env->DeleteGlobalRef(javaCallbackRef);
 }
 
-void CHIPPowerSourceActiveBatteryFaultsAttributeCallback::CallbackFn(void * context,
-                                                                     const chip::app::DataModel::DecodableList<uint8_t> & list)
+void CHIPPowerSourceBatPercentRemainingAttributeCallback::CallbackFn(void * context,
+                                                                     const chip::app::DataModel::Nullable<uint8_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceBatPercentRemainingAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceBatPercentRemainingAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Integer;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Integer";
+        std::string javaValueCtorSignature = "(I)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                      value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceBatTimeRemainingAttributeCallback::CHIPPowerSourceBatTimeRemainingAttributeCallback(jobject javaCallback,
+                                                                                                   bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterBatTimeRemainingAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceBatTimeRemainingAttributeCallback::~CHIPPowerSourceBatTimeRemainingAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceBatTimeRemainingAttributeCallback::CallbackFn(void * context,
+                                                                  const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceBatTimeRemainingAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceBatTimeRemainingAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceActiveBatFaultsAttributeCallback::CHIPPowerSourceActiveBatFaultsAttributeCallback(jobject javaCallback,
+                                                                                                 bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterActiveBatFaultsAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceActiveBatFaultsAttributeCallback::~CHIPPowerSourceActiveBatFaultsAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceActiveBatFaultsAttributeCallback::CallbackFn(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & list)
 {
     chip::DeviceLayer::StackUnlock unlock;
     CHIP_ERROR err = CHIP_NO_ERROR;
@@ -5921,8 +6320,8 @@
 
     VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
 
-    std::unique_ptr<CHIPPowerSourceActiveBatteryFaultsAttributeCallback, decltype(&maybeDestroy)> cppCallback(
-        reinterpret_cast<CHIPPowerSourceActiveBatteryFaultsAttributeCallback *>(context), maybeDestroy);
+    std::unique_ptr<CHIPPowerSourceActiveBatFaultsAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceActiveBatFaultsAttributeCallback *>(context), maybeDestroy);
 
     // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
     javaCallbackRef = cppCallback.get()->javaCallbackRef;
@@ -5943,8 +6342,8 @@
         jobject newElement_0;
         std::string newElement_0ClassName     = "java/lang/Integer";
         std::string newElement_0CtorSignature = "(I)V";
-        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(newElement_0ClassName.c_str(),
-                                                                      newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
+            newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
         chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0);
     }
 
@@ -5952,9 +6351,9 @@
     env->CallVoidMethod(javaCallbackRef, javaMethod, arrayListObj);
 }
 
-CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback::CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback(
-    jobject javaCallback, bool keepAlive) :
-    chip::Callback::Callback<CHIPPowerSourceClusterActiveBatteryChargeFaultsAttributeCallbackType>(CallbackFn, this),
+CHIPPowerSourceBatTimeToFullChargeAttributeCallback::CHIPPowerSourceBatTimeToFullChargeAttributeCallback(jobject javaCallback,
+                                                                                                         bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterBatTimeToFullChargeAttributeCallbackType>(CallbackFn, this),
     keepAlive(keepAlive)
 {
     JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
@@ -5971,7 +6370,7 @@
     }
 }
 
-CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback::~CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback()
+CHIPPowerSourceBatTimeToFullChargeAttributeCallback::~CHIPPowerSourceBatTimeToFullChargeAttributeCallback()
 {
     JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
     if (env == nullptr)
@@ -5982,8 +6381,142 @@
     env->DeleteGlobalRef(javaCallbackRef);
 }
 
-void CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback::CallbackFn(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & list)
+void CHIPPowerSourceBatTimeToFullChargeAttributeCallback::CallbackFn(void * context,
+                                                                     const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceBatTimeToFullChargeAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceBatTimeToFullChargeAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceBatChargingCurrentAttributeCallback::CHIPPowerSourceBatChargingCurrentAttributeCallback(jobject javaCallback,
+                                                                                                       bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterBatChargingCurrentAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceBatChargingCurrentAttributeCallback::~CHIPPowerSourceBatChargingCurrentAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceBatChargingCurrentAttributeCallback::CallbackFn(void * context,
+                                                                    const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    chip::DeviceLayer::StackUnlock unlock;
+    CHIP_ERROR err = CHIP_NO_ERROR;
+    JNIEnv * env   = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    jobject javaCallbackRef;
+
+    VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
+    std::unique_ptr<CHIPPowerSourceBatChargingCurrentAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceBatChargingCurrentAttributeCallback *>(context), maybeDestroy);
+
+    // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
+    javaCallbackRef = cppCallback.get()->javaCallbackRef;
+    VerifyOrReturn(javaCallbackRef != nullptr,
+                   ChipLogProgress(Zcl, "Early return from attribute callback since Java callback is null"));
+
+    jmethodID javaMethod;
+    err = chip::JniReferences::GetInstance().FindMethod(env, javaCallbackRef, "onSuccess", "(Ljava/lang/Long;)V", &javaMethod);
+    VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method"));
+
+    jobject javaValue;
+    if (value.IsNull())
+    {
+        javaValue = nullptr;
+    }
+    else
+    {
+        std::string javaValueClassName     = "java/lang/Long";
+        std::string javaValueCtorSignature = "(J)V";
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint32_t>(javaValueClassName.c_str(), javaValueCtorSignature.c_str(),
+                                                                       value.Value(), javaValue);
+    }
+
+    env->CallVoidMethod(javaCallbackRef, javaMethod, javaValue);
+}
+
+CHIPPowerSourceActiveBatChargeFaultsAttributeCallback::CHIPPowerSourceActiveBatChargeFaultsAttributeCallback(jobject javaCallback,
+                                                                                                             bool keepAlive) :
+    chip::Callback::Callback<CHIPPowerSourceClusterActiveBatChargeFaultsAttributeCallbackType>(CallbackFn, this),
+    keepAlive(keepAlive)
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+        return;
+    }
+
+    javaCallbackRef = env->NewGlobalRef(javaCallback);
+    if (javaCallbackRef == nullptr)
+    {
+        ChipLogError(Zcl, "Could not create global reference for Java callback");
+    }
+}
+
+CHIPPowerSourceActiveBatChargeFaultsAttributeCallback::~CHIPPowerSourceActiveBatChargeFaultsAttributeCallback()
+{
+    JNIEnv * env = chip::JniReferences::GetInstance().GetEnvForCurrentThread();
+    if (env == nullptr)
+    {
+        ChipLogError(Zcl, "Could not delete global reference for Java callback");
+        return;
+    }
+    env->DeleteGlobalRef(javaCallbackRef);
+}
+
+void CHIPPowerSourceActiveBatChargeFaultsAttributeCallback::CallbackFn(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & list)
 {
     chip::DeviceLayer::StackUnlock unlock;
     CHIP_ERROR err = CHIP_NO_ERROR;
@@ -5992,8 +6525,8 @@
 
     VerifyOrReturn(env != nullptr, ChipLogError(Zcl, "Could not get JNI env"));
 
-    std::unique_ptr<CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback, decltype(&maybeDestroy)> cppCallback(
-        reinterpret_cast<CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback *>(context), maybeDestroy);
+    std::unique_ptr<CHIPPowerSourceActiveBatChargeFaultsAttributeCallback, decltype(&maybeDestroy)> cppCallback(
+        reinterpret_cast<CHIPPowerSourceActiveBatChargeFaultsAttributeCallback *>(context), maybeDestroy);
 
     // It's valid for javaCallbackRef to be nullptr if the Java code passed in a null callback.
     javaCallbackRef = cppCallback.get()->javaCallbackRef;
@@ -6014,8 +6547,8 @@
         jobject newElement_0;
         std::string newElement_0ClassName     = "java/lang/Integer";
         std::string newElement_0CtorSignature = "(I)V";
-        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(newElement_0ClassName.c_str(),
-                                                                      newElement_0CtorSignature.c_str(), entry_0, newElement_0);
+        chip::JniReferences::GetInstance().CreateBoxedObject<uint8_t>(
+            newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), static_cast<uint8_t>(entry_0), newElement_0);
         chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0);
     }
 
diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.h b/src/controller/java/zap-generated/CHIPReadCallbacks.h
index 073e75f..9c05b56 100644
--- a/src/controller/java/zap-generated/CHIPReadCallbacks.h
+++ b/src/controller/java/zap-generated/CHIPReadCallbacks.h
@@ -2443,6 +2443,96 @@
     bool keepAlive;
 };
 
+class CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedInputVoltageAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceWiredAssessedInputVoltageAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedInputFrequencyAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint16_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceWiredAssessedInputFrequencyAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceWiredAssessedCurrentAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterWiredAssessedCurrentAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceWiredAssessedCurrentAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceWiredAssessedCurrentAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceWiredAssessedCurrentAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceWiredAssessedCurrentAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceWiredAssessedCurrentAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
 class CHIPPowerSourceActiveWiredFaultsAttributeCallback
     : public chip::Callback::Callback<CHIPPowerSourceClusterActiveWiredFaultsAttributeCallbackType>
 {
@@ -2460,7 +2550,8 @@
         }
     }
 
-    static void CallbackFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & list);
+    static void CallbackFn(void * context,
+                           const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & list);
     static void OnSubscriptionEstablished(void * context)
     {
         CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
@@ -2473,28 +2564,28 @@
     bool keepAlive;
 };
 
-class CHIPPowerSourceActiveBatteryFaultsAttributeCallback
-    : public chip::Callback::Callback<CHIPPowerSourceClusterActiveBatteryFaultsAttributeCallbackType>
+class CHIPPowerSourceBatVoltageAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterBatVoltageAttributeCallbackType>
 {
 public:
-    CHIPPowerSourceActiveBatteryFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false);
+    CHIPPowerSourceBatVoltageAttributeCallback(jobject javaCallback, bool keepAlive = false);
 
-    ~CHIPPowerSourceActiveBatteryFaultsAttributeCallback();
+    ~CHIPPowerSourceBatVoltageAttributeCallback();
 
-    static void maybeDestroy(CHIPPowerSourceActiveBatteryFaultsAttributeCallback * callback)
+    static void maybeDestroy(CHIPPowerSourceBatVoltageAttributeCallback * callback)
     {
         if (!callback->keepAlive)
         {
             callback->Cancel();
-            chip::Platform::Delete<CHIPPowerSourceActiveBatteryFaultsAttributeCallback>(callback);
+            chip::Platform::Delete<CHIPPowerSourceBatVoltageAttributeCallback>(callback);
         }
     }
 
-    static void CallbackFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & list);
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
     static void OnSubscriptionEstablished(void * context)
     {
         CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
-            reinterpret_cast<CHIPPowerSourceActiveBatteryFaultsAttributeCallback *>(context)->javaCallbackRef);
+            reinterpret_cast<CHIPPowerSourceBatVoltageAttributeCallback *>(context)->javaCallbackRef);
         VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
     };
 
@@ -2503,28 +2594,180 @@
     bool keepAlive;
 };
 
-class CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback
-    : public chip::Callback::Callback<CHIPPowerSourceClusterActiveBatteryChargeFaultsAttributeCallbackType>
+class CHIPPowerSourceBatPercentRemainingAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterBatPercentRemainingAttributeCallbackType>
 {
 public:
-    CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false);
+    CHIPPowerSourceBatPercentRemainingAttributeCallback(jobject javaCallback, bool keepAlive = false);
 
-    ~CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback();
+    ~CHIPPowerSourceBatPercentRemainingAttributeCallback();
 
-    static void maybeDestroy(CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback * callback)
+    static void maybeDestroy(CHIPPowerSourceBatPercentRemainingAttributeCallback * callback)
     {
         if (!callback->keepAlive)
         {
             callback->Cancel();
-            chip::Platform::Delete<CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback>(callback);
+            chip::Platform::Delete<CHIPPowerSourceBatPercentRemainingAttributeCallback>(callback);
         }
     }
 
-    static void CallbackFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & list);
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint8_t> & value);
     static void OnSubscriptionEstablished(void * context)
     {
         CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
-            reinterpret_cast<CHIPPowerSourceActiveBatteryChargeFaultsAttributeCallback *>(context)->javaCallbackRef);
+            reinterpret_cast<CHIPPowerSourceBatPercentRemainingAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceBatTimeRemainingAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterBatTimeRemainingAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceBatTimeRemainingAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceBatTimeRemainingAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceBatTimeRemainingAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceBatTimeRemainingAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceBatTimeRemainingAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceActiveBatFaultsAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterActiveBatFaultsAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceActiveBatFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceActiveBatFaultsAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceActiveBatFaultsAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceActiveBatFaultsAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context,
+                           const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & list);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceActiveBatFaultsAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceBatTimeToFullChargeAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterBatTimeToFullChargeAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceBatTimeToFullChargeAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceBatTimeToFullChargeAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceBatTimeToFullChargeAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceBatTimeToFullChargeAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceBatTimeToFullChargeAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceBatChargingCurrentAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterBatChargingCurrentAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceBatChargingCurrentAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceBatChargingCurrentAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceBatChargingCurrentAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceBatChargingCurrentAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceBatChargingCurrentAttributeCallback *>(context)->javaCallbackRef);
+        VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
+    };
+
+private:
+    jobject javaCallbackRef;
+    bool keepAlive;
+};
+
+class CHIPPowerSourceActiveBatChargeFaultsAttributeCallback
+    : public chip::Callback::Callback<CHIPPowerSourceClusterActiveBatChargeFaultsAttributeCallbackType>
+{
+public:
+    CHIPPowerSourceActiveBatChargeFaultsAttributeCallback(jobject javaCallback, bool keepAlive = false);
+
+    ~CHIPPowerSourceActiveBatChargeFaultsAttributeCallback();
+
+    static void maybeDestroy(CHIPPowerSourceActiveBatChargeFaultsAttributeCallback * callback)
+    {
+        if (!callback->keepAlive)
+        {
+            callback->Cancel();
+            chip::Platform::Delete<CHIPPowerSourceActiveBatChargeFaultsAttributeCallback>(callback);
+        }
+    }
+
+    static void CallbackFn(void * context,
+                           const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & list);
+    static void OnSubscriptionEstablished(void * context)
+    {
+        CHIP_ERROR err = chip::JniReferences::GetInstance().CallSubscriptionEstablished(
+            reinterpret_cast<CHIPPowerSourceActiveBatChargeFaultsAttributeCallback *>(context)->javaCallbackRef);
         VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Error calling onSubscriptionEstablished: %s", ErrorStr(err)));
     };
 
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
index a1a12e4..33453cc 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java
@@ -4946,6 +4946,30 @@
     @Override
     public native long initWithDevice(long devicePtr, int endpointId);
 
+    public interface WiredAssessedInputVoltageAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface WiredAssessedInputFrequencyAttributeCallback {
+      void onSuccess(@Nullable Integer value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface WiredAssessedCurrentAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
     public interface ActiveWiredFaultsAttributeCallback {
       void onSuccess(List<Integer> valueList);
 
@@ -4954,7 +4978,31 @@
       default void onSubscriptionEstablished() {}
     }
 
-    public interface ActiveBatteryFaultsAttributeCallback {
+    public interface BatVoltageAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface BatPercentRemainingAttributeCallback {
+      void onSuccess(@Nullable Integer value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface BatTimeRemainingAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface ActiveBatFaultsAttributeCallback {
       void onSuccess(List<Integer> valueList);
 
       void onError(Exception ex);
@@ -4962,7 +5010,23 @@
       default void onSubscriptionEstablished() {}
     }
 
-    public interface ActiveBatteryChargeFaultsAttributeCallback {
+    public interface BatTimeToFullChargeAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface BatChargingCurrentAttributeCallback {
+      void onSuccess(@Nullable Long value);
+
+      void onError(Exception ex);
+
+      default void onSubscriptionEstablished() {}
+    }
+
+    public interface ActiveBatChargeFaultsAttributeCallback {
       void onSuccess(List<Integer> valueList);
 
       void onError(Exception ex);
@@ -5021,22 +5085,24 @@
       subscribeDescriptionAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readWiredAssessedInputVoltageAttribute(LongAttributeCallback callback) {
+    public void readWiredAssessedInputVoltageAttribute(
+        WiredAssessedInputVoltageAttributeCallback callback) {
       readWiredAssessedInputVoltageAttribute(chipClusterPtr, callback);
     }
 
     public void subscribeWiredAssessedInputVoltageAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
+        WiredAssessedInputVoltageAttributeCallback callback, int minInterval, int maxInterval) {
       subscribeWiredAssessedInputVoltageAttribute(
           chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readWiredAssessedInputFrequencyAttribute(IntegerAttributeCallback callback) {
+    public void readWiredAssessedInputFrequencyAttribute(
+        WiredAssessedInputFrequencyAttributeCallback callback) {
       readWiredAssessedInputFrequencyAttribute(chipClusterPtr, callback);
     }
 
     public void subscribeWiredAssessedInputFrequencyAttribute(
-        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+        WiredAssessedInputFrequencyAttributeCallback callback, int minInterval, int maxInterval) {
       subscribeWiredAssessedInputFrequencyAttribute(
           chipClusterPtr, callback, minInterval, maxInterval);
     }
@@ -5050,12 +5116,12 @@
       subscribeWiredCurrentTypeAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readWiredAssessedCurrentAttribute(LongAttributeCallback callback) {
+    public void readWiredAssessedCurrentAttribute(WiredAssessedCurrentAttributeCallback callback) {
       readWiredAssessedCurrentAttribute(chipClusterPtr, callback);
     }
 
     public void subscribeWiredAssessedCurrentAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
+        WiredAssessedCurrentAttributeCallback callback, int minInterval, int maxInterval) {
       subscribeWiredAssessedCurrentAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
@@ -5095,191 +5161,187 @@
       subscribeActiveWiredFaultsAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryVoltageAttribute(LongAttributeCallback callback) {
-      readBatteryVoltageAttribute(chipClusterPtr, callback);
+    public void readBatVoltageAttribute(BatVoltageAttributeCallback callback) {
+      readBatVoltageAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryVoltageAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryVoltageAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    public void subscribeBatVoltageAttribute(
+        BatVoltageAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeBatVoltageAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryPercentRemainingAttribute(IntegerAttributeCallback callback) {
-      readBatteryPercentRemainingAttribute(chipClusterPtr, callback);
+    public void readBatPercentRemainingAttribute(BatPercentRemainingAttributeCallback callback) {
+      readBatPercentRemainingAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryPercentRemainingAttribute(
+    public void subscribeBatPercentRemainingAttribute(
+        BatPercentRemainingAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeBatPercentRemainingAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    }
+
+    public void readBatTimeRemainingAttribute(BatTimeRemainingAttributeCallback callback) {
+      readBatTimeRemainingAttribute(chipClusterPtr, callback);
+    }
+
+    public void subscribeBatTimeRemainingAttribute(
+        BatTimeRemainingAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeBatTimeRemainingAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    }
+
+    public void readBatChargeLevelAttribute(IntegerAttributeCallback callback) {
+      readBatChargeLevelAttribute(chipClusterPtr, callback);
+    }
+
+    public void subscribeBatChargeLevelAttribute(
         IntegerAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryPercentRemainingAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatChargeLevelAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryTimeRemainingAttribute(LongAttributeCallback callback) {
-      readBatteryTimeRemainingAttribute(chipClusterPtr, callback);
+    public void readBatReplacementNeededAttribute(BooleanAttributeCallback callback) {
+      readBatReplacementNeededAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryTimeRemainingAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryTimeRemainingAttribute(chipClusterPtr, callback, minInterval, maxInterval);
-    }
-
-    public void readBatteryChargeLevelAttribute(IntegerAttributeCallback callback) {
-      readBatteryChargeLevelAttribute(chipClusterPtr, callback);
-    }
-
-    public void subscribeBatteryChargeLevelAttribute(
-        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryChargeLevelAttribute(chipClusterPtr, callback, minInterval, maxInterval);
-    }
-
-    public void readBatteryReplacementNeededAttribute(BooleanAttributeCallback callback) {
-      readBatteryReplacementNeededAttribute(chipClusterPtr, callback);
-    }
-
-    public void subscribeBatteryReplacementNeededAttribute(
+    public void subscribeBatReplacementNeededAttribute(
         BooleanAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryReplacementNeededAttribute(
-          chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatReplacementNeededAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryReplaceabilityAttribute(IntegerAttributeCallback callback) {
-      readBatteryReplaceabilityAttribute(chipClusterPtr, callback);
+    public void readBatReplaceabilityAttribute(IntegerAttributeCallback callback) {
+      readBatReplaceabilityAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryReplaceabilityAttribute(
+    public void subscribeBatReplaceabilityAttribute(
         IntegerAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryReplaceabilityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatReplaceabilityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryPresentAttribute(BooleanAttributeCallback callback) {
-      readBatteryPresentAttribute(chipClusterPtr, callback);
+    public void readBatPresentAttribute(BooleanAttributeCallback callback) {
+      readBatPresentAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryPresentAttribute(
+    public void subscribeBatPresentAttribute(
         BooleanAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryPresentAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatPresentAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readActiveBatteryFaultsAttribute(ActiveBatteryFaultsAttributeCallback callback) {
-      readActiveBatteryFaultsAttribute(chipClusterPtr, callback);
+    public void readActiveBatFaultsAttribute(ActiveBatFaultsAttributeCallback callback) {
+      readActiveBatFaultsAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeActiveBatteryFaultsAttribute(
-        ActiveBatteryFaultsAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeActiveBatteryFaultsAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    public void subscribeActiveBatFaultsAttribute(
+        ActiveBatFaultsAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeActiveBatFaultsAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryReplacementDescriptionAttribute(CharStringAttributeCallback callback) {
-      readBatteryReplacementDescriptionAttribute(chipClusterPtr, callback);
+    public void readBatReplacementDescriptionAttribute(CharStringAttributeCallback callback) {
+      readBatReplacementDescriptionAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryReplacementDescriptionAttribute(
+    public void subscribeBatReplacementDescriptionAttribute(
         CharStringAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryReplacementDescriptionAttribute(
+      subscribeBatReplacementDescriptionAttribute(
           chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryCommonDesignationAttribute(LongAttributeCallback callback) {
-      readBatteryCommonDesignationAttribute(chipClusterPtr, callback);
+    public void readBatCommonDesignationAttribute(LongAttributeCallback callback) {
+      readBatCommonDesignationAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryCommonDesignationAttribute(
+    public void subscribeBatCommonDesignationAttribute(
         LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryCommonDesignationAttribute(
-          chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatCommonDesignationAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryANSIDesignationAttribute(CharStringAttributeCallback callback) {
-      readBatteryANSIDesignationAttribute(chipClusterPtr, callback);
+    public void readBatANSIDesignationAttribute(CharStringAttributeCallback callback) {
+      readBatANSIDesignationAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryANSIDesignationAttribute(
+    public void subscribeBatANSIDesignationAttribute(
         CharStringAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryANSIDesignationAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatANSIDesignationAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryIECDesignationAttribute(CharStringAttributeCallback callback) {
-      readBatteryIECDesignationAttribute(chipClusterPtr, callback);
+    public void readBatIECDesignationAttribute(CharStringAttributeCallback callback) {
+      readBatIECDesignationAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryIECDesignationAttribute(
+    public void subscribeBatIECDesignationAttribute(
         CharStringAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryIECDesignationAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatIECDesignationAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryApprovedChemistryAttribute(LongAttributeCallback callback) {
-      readBatteryApprovedChemistryAttribute(chipClusterPtr, callback);
+    public void readBatApprovedChemistryAttribute(LongAttributeCallback callback) {
+      readBatApprovedChemistryAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryApprovedChemistryAttribute(
+    public void subscribeBatApprovedChemistryAttribute(
         LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryApprovedChemistryAttribute(
-          chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatApprovedChemistryAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryCapacityAttribute(LongAttributeCallback callback) {
-      readBatteryCapacityAttribute(chipClusterPtr, callback);
+    public void readBatCapacityAttribute(LongAttributeCallback callback) {
+      readBatCapacityAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryCapacityAttribute(
+    public void subscribeBatCapacityAttribute(
         LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryCapacityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatCapacityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryQuantityAttribute(IntegerAttributeCallback callback) {
-      readBatteryQuantityAttribute(chipClusterPtr, callback);
+    public void readBatQuantityAttribute(IntegerAttributeCallback callback) {
+      readBatQuantityAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryQuantityAttribute(
+    public void subscribeBatQuantityAttribute(
         IntegerAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryQuantityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatQuantityAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryChargeStateAttribute(IntegerAttributeCallback callback) {
-      readBatteryChargeStateAttribute(chipClusterPtr, callback);
+    public void readBatChargeStateAttribute(IntegerAttributeCallback callback) {
+      readBatChargeStateAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryChargeStateAttribute(
+    public void subscribeBatChargeStateAttribute(
         IntegerAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryChargeStateAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+      subscribeBatChargeStateAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryTimeToFullChargeAttribute(LongAttributeCallback callback) {
-      readBatteryTimeToFullChargeAttribute(chipClusterPtr, callback);
+    public void readBatTimeToFullChargeAttribute(BatTimeToFullChargeAttributeCallback callback) {
+      readBatTimeToFullChargeAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryTimeToFullChargeAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryTimeToFullChargeAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    public void subscribeBatTimeToFullChargeAttribute(
+        BatTimeToFullChargeAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeBatTimeToFullChargeAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryFunctionalWhileChargingAttribute(BooleanAttributeCallback callback) {
-      readBatteryFunctionalWhileChargingAttribute(chipClusterPtr, callback);
+    public void readBatFunctionalWhileChargingAttribute(BooleanAttributeCallback callback) {
+      readBatFunctionalWhileChargingAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryFunctionalWhileChargingAttribute(
+    public void subscribeBatFunctionalWhileChargingAttribute(
         BooleanAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryFunctionalWhileChargingAttribute(
+      subscribeBatFunctionalWhileChargingAttribute(
           chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readBatteryChargingCurrentAttribute(LongAttributeCallback callback) {
-      readBatteryChargingCurrentAttribute(chipClusterPtr, callback);
+    public void readBatChargingCurrentAttribute(BatChargingCurrentAttributeCallback callback) {
+      readBatChargingCurrentAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeBatteryChargingCurrentAttribute(
-        LongAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeBatteryChargingCurrentAttribute(chipClusterPtr, callback, minInterval, maxInterval);
+    public void subscribeBatChargingCurrentAttribute(
+        BatChargingCurrentAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeBatChargingCurrentAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
-    public void readActiveBatteryChargeFaultsAttribute(
-        ActiveBatteryChargeFaultsAttributeCallback callback) {
-      readActiveBatteryChargeFaultsAttribute(chipClusterPtr, callback);
+    public void readActiveBatChargeFaultsAttribute(
+        ActiveBatChargeFaultsAttributeCallback callback) {
+      readActiveBatChargeFaultsAttribute(chipClusterPtr, callback);
     }
 
-    public void subscribeActiveBatteryChargeFaultsAttribute(
-        ActiveBatteryChargeFaultsAttributeCallback callback, int minInterval, int maxInterval) {
-      subscribeActiveBatteryChargeFaultsAttribute(
-          chipClusterPtr, callback, minInterval, maxInterval);
+    public void subscribeActiveBatChargeFaultsAttribute(
+        ActiveBatChargeFaultsAttributeCallback callback, int minInterval, int maxInterval) {
+      subscribeActiveBatChargeFaultsAttribute(chipClusterPtr, callback, minInterval, maxInterval);
     }
 
     public void readGeneratedCommandListAttribute(GeneratedCommandListAttributeCallback callback) {
@@ -5347,16 +5409,22 @@
         int maxInterval);
 
     private native void readWiredAssessedInputVoltageAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
+        long chipClusterPtr, WiredAssessedInputVoltageAttributeCallback callback);
 
     private native void subscribeWiredAssessedInputVoltageAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
+        long chipClusterPtr,
+        WiredAssessedInputVoltageAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
 
     private native void readWiredAssessedInputFrequencyAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback);
+        long chipClusterPtr, WiredAssessedInputFrequencyAttributeCallback callback);
 
     private native void subscribeWiredAssessedInputFrequencyAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
+        long chipClusterPtr,
+        WiredAssessedInputFrequencyAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
 
     private native void readWiredCurrentTypeAttribute(
         long chipClusterPtr, IntegerAttributeCallback callback);
@@ -5365,10 +5433,13 @@
         long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
 
     private native void readWiredAssessedCurrentAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
+        long chipClusterPtr, WiredAssessedCurrentAttributeCallback callback);
 
     private native void subscribeWiredAssessedCurrentAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
+        long chipClusterPtr,
+        WiredAssessedCurrentAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
 
     private native void readWiredNominalVoltageAttribute(
         long chipClusterPtr, LongAttributeCallback callback);
@@ -5397,138 +5468,153 @@
         int minInterval,
         int maxInterval);
 
-    private native void readBatteryVoltageAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
+    private native void readBatVoltageAttribute(
+        long chipClusterPtr, BatVoltageAttributeCallback callback);
 
-    private native void subscribeBatteryVoltageAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryPercentRemainingAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback);
-
-    private native void subscribeBatteryPercentRemainingAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryTimeRemainingAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
-
-    private native void subscribeBatteryTimeRemainingAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryChargeLevelAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback);
-
-    private native void subscribeBatteryChargeLevelAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryReplacementNeededAttribute(
-        long chipClusterPtr, BooleanAttributeCallback callback);
-
-    private native void subscribeBatteryReplacementNeededAttribute(
-        long chipClusterPtr, BooleanAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryReplaceabilityAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback);
-
-    private native void subscribeBatteryReplaceabilityAttribute(
-        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readBatteryPresentAttribute(
-        long chipClusterPtr, BooleanAttributeCallback callback);
-
-    private native void subscribeBatteryPresentAttribute(
-        long chipClusterPtr, BooleanAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readActiveBatteryFaultsAttribute(
-        long chipClusterPtr, ActiveBatteryFaultsAttributeCallback callback);
-
-    private native void subscribeActiveBatteryFaultsAttribute(
+    private native void subscribeBatVoltageAttribute(
         long chipClusterPtr,
-        ActiveBatteryFaultsAttributeCallback callback,
+        BatVoltageAttributeCallback callback,
         int minInterval,
         int maxInterval);
 
-    private native void readBatteryReplacementDescriptionAttribute(
+    private native void readBatPercentRemainingAttribute(
+        long chipClusterPtr, BatPercentRemainingAttributeCallback callback);
+
+    private native void subscribeBatPercentRemainingAttribute(
+        long chipClusterPtr,
+        BatPercentRemainingAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
+
+    private native void readBatTimeRemainingAttribute(
+        long chipClusterPtr, BatTimeRemainingAttributeCallback callback);
+
+    private native void subscribeBatTimeRemainingAttribute(
+        long chipClusterPtr,
+        BatTimeRemainingAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
+
+    private native void readBatChargeLevelAttribute(
+        long chipClusterPtr, IntegerAttributeCallback callback);
+
+    private native void subscribeBatChargeLevelAttribute(
+        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
+
+    private native void readBatReplacementNeededAttribute(
+        long chipClusterPtr, BooleanAttributeCallback callback);
+
+    private native void subscribeBatReplacementNeededAttribute(
+        long chipClusterPtr, BooleanAttributeCallback callback, int minInterval, int maxInterval);
+
+    private native void readBatReplaceabilityAttribute(
+        long chipClusterPtr, IntegerAttributeCallback callback);
+
+    private native void subscribeBatReplaceabilityAttribute(
+        long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
+
+    private native void readBatPresentAttribute(
+        long chipClusterPtr, BooleanAttributeCallback callback);
+
+    private native void subscribeBatPresentAttribute(
+        long chipClusterPtr, BooleanAttributeCallback callback, int minInterval, int maxInterval);
+
+    private native void readActiveBatFaultsAttribute(
+        long chipClusterPtr, ActiveBatFaultsAttributeCallback callback);
+
+    private native void subscribeActiveBatFaultsAttribute(
+        long chipClusterPtr,
+        ActiveBatFaultsAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
+
+    private native void readBatReplacementDescriptionAttribute(
         long chipClusterPtr, CharStringAttributeCallback callback);
 
-    private native void subscribeBatteryReplacementDescriptionAttribute(
+    private native void subscribeBatReplacementDescriptionAttribute(
         long chipClusterPtr,
         CharStringAttributeCallback callback,
         int minInterval,
         int maxInterval);
 
-    private native void readBatteryCommonDesignationAttribute(
+    private native void readBatCommonDesignationAttribute(
         long chipClusterPtr, LongAttributeCallback callback);
 
-    private native void subscribeBatteryCommonDesignationAttribute(
+    private native void subscribeBatCommonDesignationAttribute(
         long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryANSIDesignationAttribute(
+    private native void readBatANSIDesignationAttribute(
         long chipClusterPtr, CharStringAttributeCallback callback);
 
-    private native void subscribeBatteryANSIDesignationAttribute(
+    private native void subscribeBatANSIDesignationAttribute(
         long chipClusterPtr,
         CharStringAttributeCallback callback,
         int minInterval,
         int maxInterval);
 
-    private native void readBatteryIECDesignationAttribute(
+    private native void readBatIECDesignationAttribute(
         long chipClusterPtr, CharStringAttributeCallback callback);
 
-    private native void subscribeBatteryIECDesignationAttribute(
+    private native void subscribeBatIECDesignationAttribute(
         long chipClusterPtr,
         CharStringAttributeCallback callback,
         int minInterval,
         int maxInterval);
 
-    private native void readBatteryApprovedChemistryAttribute(
+    private native void readBatApprovedChemistryAttribute(
         long chipClusterPtr, LongAttributeCallback callback);
 
-    private native void subscribeBatteryApprovedChemistryAttribute(
+    private native void subscribeBatApprovedChemistryAttribute(
         long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryCapacityAttribute(
+    private native void readBatCapacityAttribute(
         long chipClusterPtr, LongAttributeCallback callback);
 
-    private native void subscribeBatteryCapacityAttribute(
+    private native void subscribeBatCapacityAttribute(
         long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryQuantityAttribute(
+    private native void readBatQuantityAttribute(
         long chipClusterPtr, IntegerAttributeCallback callback);
 
-    private native void subscribeBatteryQuantityAttribute(
+    private native void subscribeBatQuantityAttribute(
         long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryChargeStateAttribute(
+    private native void readBatChargeStateAttribute(
         long chipClusterPtr, IntegerAttributeCallback callback);
 
-    private native void subscribeBatteryChargeStateAttribute(
+    private native void subscribeBatChargeStateAttribute(
         long chipClusterPtr, IntegerAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryTimeToFullChargeAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
+    private native void readBatTimeToFullChargeAttribute(
+        long chipClusterPtr, BatTimeToFullChargeAttributeCallback callback);
 
-    private native void subscribeBatteryTimeToFullChargeAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
+    private native void subscribeBatTimeToFullChargeAttribute(
+        long chipClusterPtr,
+        BatTimeToFullChargeAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
 
-    private native void readBatteryFunctionalWhileChargingAttribute(
+    private native void readBatFunctionalWhileChargingAttribute(
         long chipClusterPtr, BooleanAttributeCallback callback);
 
-    private native void subscribeBatteryFunctionalWhileChargingAttribute(
+    private native void subscribeBatFunctionalWhileChargingAttribute(
         long chipClusterPtr, BooleanAttributeCallback callback, int minInterval, int maxInterval);
 
-    private native void readBatteryChargingCurrentAttribute(
-        long chipClusterPtr, LongAttributeCallback callback);
+    private native void readBatChargingCurrentAttribute(
+        long chipClusterPtr, BatChargingCurrentAttributeCallback callback);
 
-    private native void subscribeBatteryChargingCurrentAttribute(
-        long chipClusterPtr, LongAttributeCallback callback, int minInterval, int maxInterval);
-
-    private native void readActiveBatteryChargeFaultsAttribute(
-        long chipClusterPtr, ActiveBatteryChargeFaultsAttributeCallback callback);
-
-    private native void subscribeActiveBatteryChargeFaultsAttribute(
+    private native void subscribeBatChargingCurrentAttribute(
         long chipClusterPtr,
-        ActiveBatteryChargeFaultsAttributeCallback callback,
+        BatChargingCurrentAttributeCallback callback,
+        int minInterval,
+        int maxInterval);
+
+    private native void readActiveBatChargeFaultsAttribute(
+        long chipClusterPtr, ActiveBatChargeFaultsAttributeCallback callback);
+
+    private native void subscribeActiveBatChargeFaultsAttribute(
+        long chipClusterPtr,
+        ActiveBatChargeFaultsAttributeCallback callback,
         int minInterval,
         int maxInterval);
 
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
index 8dc9529..702b0e3 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipIdLookup.java
@@ -788,64 +788,64 @@
         return "ActiveWiredFaults";
       }
       if (attributeId == 11L) {
-        return "BatteryVoltage";
+        return "BatVoltage";
       }
       if (attributeId == 12L) {
-        return "BatteryPercentRemaining";
+        return "BatPercentRemaining";
       }
       if (attributeId == 13L) {
-        return "BatteryTimeRemaining";
+        return "BatTimeRemaining";
       }
       if (attributeId == 14L) {
-        return "BatteryChargeLevel";
+        return "BatChargeLevel";
       }
       if (attributeId == 15L) {
-        return "BatteryReplacementNeeded";
+        return "BatReplacementNeeded";
       }
       if (attributeId == 16L) {
-        return "BatteryReplaceability";
+        return "BatReplaceability";
       }
       if (attributeId == 17L) {
-        return "BatteryPresent";
+        return "BatPresent";
       }
       if (attributeId == 18L) {
-        return "ActiveBatteryFaults";
+        return "ActiveBatFaults";
       }
       if (attributeId == 19L) {
-        return "BatteryReplacementDescription";
+        return "BatReplacementDescription";
       }
       if (attributeId == 20L) {
-        return "BatteryCommonDesignation";
+        return "BatCommonDesignation";
       }
       if (attributeId == 21L) {
-        return "BatteryANSIDesignation";
+        return "BatANSIDesignation";
       }
       if (attributeId == 22L) {
-        return "BatteryIECDesignation";
+        return "BatIECDesignation";
       }
       if (attributeId == 23L) {
-        return "BatteryApprovedChemistry";
+        return "BatApprovedChemistry";
       }
       if (attributeId == 24L) {
-        return "BatteryCapacity";
+        return "BatCapacity";
       }
       if (attributeId == 25L) {
-        return "BatteryQuantity";
+        return "BatQuantity";
       }
       if (attributeId == 26L) {
-        return "BatteryChargeState";
+        return "BatChargeState";
       }
       if (attributeId == 27L) {
-        return "BatteryTimeToFullCharge";
+        return "BatTimeToFullCharge";
       }
       if (attributeId == 28L) {
-        return "BatteryFunctionalWhileCharging";
+        return "BatFunctionalWhileCharging";
       }
       if (attributeId == 29L) {
-        return "BatteryChargingCurrent";
+        return "BatChargingCurrent";
       }
       if (attributeId == 30L) {
-        return "ActiveBatteryChargeFaults";
+        return "ActiveBatChargeFaults";
       }
       if (attributeId == 65528L) {
         return "GeneratedCommandList";
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java
index 95d9865..4c98bba 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java
@@ -2045,8 +2045,8 @@
     }
   }
 
-  public static class DelegatedPowerSourceClusterActiveBatteryFaultsAttributeCallback
-      implements ChipClusters.PowerSourceCluster.ActiveBatteryFaultsAttributeCallback,
+  public static class DelegatedPowerSourceClusterActiveBatFaultsAttributeCallback
+      implements ChipClusters.PowerSourceCluster.ActiveBatFaultsAttributeCallback,
           DelegatedClusterCallback {
     private ClusterCommandCallback callback;
 
@@ -2070,8 +2070,8 @@
     }
   }
 
-  public static class DelegatedPowerSourceClusterActiveBatteryChargeFaultsAttributeCallback
-      implements ChipClusters.PowerSourceCluster.ActiveBatteryChargeFaultsAttributeCallback,
+  public static class DelegatedPowerSourceClusterActiveBatChargeFaultsAttributeCallback
+      implements ChipClusters.PowerSourceCluster.ActiveBatChargeFaultsAttributeCallback,
           DelegatedClusterCallback {
     private ClusterCommandCallback callback;
 
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
index ffb791a..78e1064 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterReadMapping.java
@@ -2264,7 +2264,8 @@
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
                   .readWiredAssessedInputVoltageAttribute(
-                      (ChipClusters.LongAttributeCallback) callback);
+                      (ChipClusters.PowerSourceCluster.WiredAssessedInputVoltageAttributeCallback)
+                          callback);
             },
             () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
             readPowerSourceWiredAssessedInputVoltageCommandParams);
@@ -2278,7 +2279,8 @@
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
                   .readWiredAssessedInputFrequencyAttribute(
-                      (ChipClusters.IntegerAttributeCallback) callback);
+                      (ChipClusters.PowerSourceCluster.WiredAssessedInputFrequencyAttributeCallback)
+                          callback);
             },
             () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
             readPowerSourceWiredAssessedInputFrequencyCommandParams);
@@ -2303,7 +2305,9 @@
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readWiredAssessedCurrentAttribute((ChipClusters.LongAttributeCallback) callback);
+                  .readWiredAssessedCurrentAttribute(
+                      (ChipClusters.PowerSourceCluster.WiredAssessedCurrentAttributeCallback)
+                          callback);
             },
             () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
             readPowerSourceWiredAssessedCurrentCommandParams);
@@ -2364,283 +2368,276 @@
             readPowerSourceActiveWiredFaultsCommandParams);
     readPowerSourceInteractionInfo.put(
         "readActiveWiredFaultsAttribute", readPowerSourceActiveWiredFaultsAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryVoltageCommandParams =
+    Map<String, CommandParameterInfo> readPowerSourceBatVoltageCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryVoltageAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatVoltageAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryVoltageAttribute((ChipClusters.LongAttributeCallback) callback);
+                  .readBatVoltageAttribute(
+                      (ChipClusters.PowerSourceCluster.BatVoltageAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryVoltageCommandParams);
+            readPowerSourceBatVoltageCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryVoltageAttribute", readPowerSourceBatteryVoltageAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryPercentRemainingCommandParams =
+        "readBatVoltageAttribute", readPowerSourceBatVoltageAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatPercentRemainingCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryPercentRemainingAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatPercentRemainingAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryPercentRemainingAttribute(
-                      (ChipClusters.IntegerAttributeCallback) callback);
+                  .readBatPercentRemainingAttribute(
+                      (ChipClusters.PowerSourceCluster.BatPercentRemainingAttributeCallback)
+                          callback);
             },
             () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
-            readPowerSourceBatteryPercentRemainingCommandParams);
+            readPowerSourceBatPercentRemainingCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryPercentRemainingAttribute",
-        readPowerSourceBatteryPercentRemainingAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryTimeRemainingCommandParams =
+        "readBatPercentRemainingAttribute",
+        readPowerSourceBatPercentRemainingAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatTimeRemainingCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryTimeRemainingAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatTimeRemainingAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryTimeRemainingAttribute((ChipClusters.LongAttributeCallback) callback);
+                  .readBatTimeRemainingAttribute(
+                      (ChipClusters.PowerSourceCluster.BatTimeRemainingAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryTimeRemainingCommandParams);
+            readPowerSourceBatTimeRemainingCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryTimeRemainingAttribute",
-        readPowerSourceBatteryTimeRemainingAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryChargeLevelCommandParams =
+        "readBatTimeRemainingAttribute", readPowerSourceBatTimeRemainingAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatChargeLevelCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryChargeLevelAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatChargeLevelAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryChargeLevelAttribute(
-                      (ChipClusters.IntegerAttributeCallback) callback);
+                  .readBatChargeLevelAttribute((ChipClusters.IntegerAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
-            readPowerSourceBatteryChargeLevelCommandParams);
+            readPowerSourceBatChargeLevelCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryChargeLevelAttribute",
-        readPowerSourceBatteryChargeLevelAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryReplacementNeededCommandParams =
+        "readBatChargeLevelAttribute", readPowerSourceBatChargeLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatReplacementNeededCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryReplacementNeededAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatReplacementNeededAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryReplacementNeededAttribute(
+                  .readBatReplacementNeededAttribute(
                       (ChipClusters.BooleanAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
-            readPowerSourceBatteryReplacementNeededCommandParams);
+            readPowerSourceBatReplacementNeededCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryReplacementNeededAttribute",
-        readPowerSourceBatteryReplacementNeededAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryReplaceabilityCommandParams =
+        "readBatReplacementNeededAttribute",
+        readPowerSourceBatReplacementNeededAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatReplaceabilityCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryReplaceabilityAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatReplaceabilityAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryReplaceabilityAttribute(
-                      (ChipClusters.IntegerAttributeCallback) callback);
+                  .readBatReplaceabilityAttribute((ChipClusters.IntegerAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
-            readPowerSourceBatteryReplaceabilityCommandParams);
+            readPowerSourceBatReplaceabilityCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryReplaceabilityAttribute",
-        readPowerSourceBatteryReplaceabilityAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryPresentCommandParams =
+        "readBatReplaceabilityAttribute", readPowerSourceBatReplaceabilityAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatPresentCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryPresentAttributeInteractionInfo =
+    InteractionInfo readPowerSourceBatPresentAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryPresentAttribute((ChipClusters.BooleanAttributeCallback) callback);
+                  .readBatPresentAttribute((ChipClusters.BooleanAttributeCallback) callback);
             },
             () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
-            readPowerSourceBatteryPresentCommandParams);
+            readPowerSourceBatPresentCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readBatteryPresentAttribute", readPowerSourceBatteryPresentAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceActiveBatteryFaultsCommandParams =
+        "readBatPresentAttribute", readPowerSourceBatPresentAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceActiveBatFaultsCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceActiveBatteryFaultsAttributeInteractionInfo =
+    InteractionInfo readPowerSourceActiveBatFaultsAttributeInteractionInfo =
         new InteractionInfo(
             (cluster, callback, commandArguments) -> {
               ((ChipClusters.PowerSourceCluster) cluster)
-                  .readActiveBatteryFaultsAttribute(
-                      (ChipClusters.PowerSourceCluster.ActiveBatteryFaultsAttributeCallback)
+                  .readActiveBatFaultsAttribute(
+                      (ChipClusters.PowerSourceCluster.ActiveBatFaultsAttributeCallback) callback);
+            },
+            () ->
+                new ClusterInfoMapping
+                    .DelegatedPowerSourceClusterActiveBatFaultsAttributeCallback(),
+            readPowerSourceActiveBatFaultsCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readActiveBatFaultsAttribute", readPowerSourceActiveBatFaultsAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatReplacementDescriptionCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatReplacementDescriptionAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatReplacementDescriptionAttribute(
+                      (ChipClusters.CharStringAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
+            readPowerSourceBatReplacementDescriptionCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatReplacementDescriptionAttribute",
+        readPowerSourceBatReplacementDescriptionAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatCommonDesignationCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatCommonDesignationAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatCommonDesignationAttribute((ChipClusters.LongAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+            readPowerSourceBatCommonDesignationCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatCommonDesignationAttribute",
+        readPowerSourceBatCommonDesignationAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatANSIDesignationCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatANSIDesignationAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatANSIDesignationAttribute(
+                      (ChipClusters.CharStringAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
+            readPowerSourceBatANSIDesignationCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatANSIDesignationAttribute",
+        readPowerSourceBatANSIDesignationAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatIECDesignationCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatIECDesignationAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatIECDesignationAttribute(
+                      (ChipClusters.CharStringAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
+            readPowerSourceBatIECDesignationCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatIECDesignationAttribute", readPowerSourceBatIECDesignationAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatApprovedChemistryCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatApprovedChemistryAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatApprovedChemistryAttribute((ChipClusters.LongAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+            readPowerSourceBatApprovedChemistryCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatApprovedChemistryAttribute",
+        readPowerSourceBatApprovedChemistryAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatCapacityCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatCapacityAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatCapacityAttribute((ChipClusters.LongAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+            readPowerSourceBatCapacityCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatCapacityAttribute", readPowerSourceBatCapacityAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatQuantityCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatQuantityAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatQuantityAttribute((ChipClusters.IntegerAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+            readPowerSourceBatQuantityCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatQuantityAttribute", readPowerSourceBatQuantityAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatChargeStateCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatChargeStateAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatChargeStateAttribute((ChipClusters.IntegerAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+            readPowerSourceBatChargeStateCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatChargeStateAttribute", readPowerSourceBatChargeStateAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatTimeToFullChargeCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatTimeToFullChargeAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatTimeToFullChargeAttribute(
+                      (ChipClusters.PowerSourceCluster.BatTimeToFullChargeAttributeCallback)
+                          callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+            readPowerSourceBatTimeToFullChargeCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatTimeToFullChargeAttribute",
+        readPowerSourceBatTimeToFullChargeAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatFunctionalWhileChargingCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatFunctionalWhileChargingAttribute(
+                      (ChipClusters.BooleanAttributeCallback) callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+            readPowerSourceBatFunctionalWhileChargingCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatFunctionalWhileChargingAttribute",
+        readPowerSourceBatFunctionalWhileChargingAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceBatChargingCurrentCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceBatChargingCurrentAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readBatChargingCurrentAttribute(
+                      (ChipClusters.PowerSourceCluster.BatChargingCurrentAttributeCallback)
+                          callback);
+            },
+            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+            readPowerSourceBatChargingCurrentCommandParams);
+    readPowerSourceInteractionInfo.put(
+        "readBatChargingCurrentAttribute",
+        readPowerSourceBatChargingCurrentAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> readPowerSourceActiveBatChargeFaultsCommandParams =
+        new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo =
+        new InteractionInfo(
+            (cluster, callback, commandArguments) -> {
+              ((ChipClusters.PowerSourceCluster) cluster)
+                  .readActiveBatChargeFaultsAttribute(
+                      (ChipClusters.PowerSourceCluster.ActiveBatChargeFaultsAttributeCallback)
                           callback);
             },
             () ->
                 new ClusterInfoMapping
-                    .DelegatedPowerSourceClusterActiveBatteryFaultsAttributeCallback(),
-            readPowerSourceActiveBatteryFaultsCommandParams);
+                    .DelegatedPowerSourceClusterActiveBatChargeFaultsAttributeCallback(),
+            readPowerSourceActiveBatChargeFaultsCommandParams);
     readPowerSourceInteractionInfo.put(
-        "readActiveBatteryFaultsAttribute",
-        readPowerSourceActiveBatteryFaultsAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryReplacementDescriptionCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryReplacementDescriptionAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryReplacementDescriptionAttribute(
-                      (ChipClusters.CharStringAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
-            readPowerSourceBatteryReplacementDescriptionCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryReplacementDescriptionAttribute",
-        readPowerSourceBatteryReplacementDescriptionAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryCommonDesignationCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryCommonDesignationAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryCommonDesignationAttribute(
-                      (ChipClusters.LongAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryCommonDesignationCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryCommonDesignationAttribute",
-        readPowerSourceBatteryCommonDesignationAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryANSIDesignationCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryANSIDesignationAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryANSIDesignationAttribute(
-                      (ChipClusters.CharStringAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
-            readPowerSourceBatteryANSIDesignationCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryANSIDesignationAttribute",
-        readPowerSourceBatteryANSIDesignationAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryIECDesignationCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryIECDesignationAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryIECDesignationAttribute(
-                      (ChipClusters.CharStringAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedCharStringAttributeCallback(),
-            readPowerSourceBatteryIECDesignationCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryIECDesignationAttribute",
-        readPowerSourceBatteryIECDesignationAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryApprovedChemistryCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryApprovedChemistryAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryApprovedChemistryAttribute(
-                      (ChipClusters.LongAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryApprovedChemistryCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryApprovedChemistryAttribute",
-        readPowerSourceBatteryApprovedChemistryAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryCapacityCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryCapacityAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryCapacityAttribute((ChipClusters.LongAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryCapacityCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryCapacityAttribute", readPowerSourceBatteryCapacityAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryQuantityCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryQuantityAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryQuantityAttribute((ChipClusters.IntegerAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
-            readPowerSourceBatteryQuantityCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryQuantityAttribute", readPowerSourceBatteryQuantityAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryChargeStateCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryChargeStateAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryChargeStateAttribute(
-                      (ChipClusters.IntegerAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
-            readPowerSourceBatteryChargeStateCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryChargeStateAttribute",
-        readPowerSourceBatteryChargeStateAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryTimeToFullChargeCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryTimeToFullChargeAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryTimeToFullChargeAttribute(
-                      (ChipClusters.LongAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryTimeToFullChargeCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryTimeToFullChargeAttribute",
-        readPowerSourceBatteryTimeToFullChargeAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryFunctionalWhileChargingCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryFunctionalWhileChargingAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryFunctionalWhileChargingAttribute(
-                      (ChipClusters.BooleanAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
-            readPowerSourceBatteryFunctionalWhileChargingCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryFunctionalWhileChargingAttribute",
-        readPowerSourceBatteryFunctionalWhileChargingAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceBatteryChargingCurrentCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceBatteryChargingCurrentAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readBatteryChargingCurrentAttribute(
-                      (ChipClusters.LongAttributeCallback) callback);
-            },
-            () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
-            readPowerSourceBatteryChargingCurrentCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readBatteryChargingCurrentAttribute",
-        readPowerSourceBatteryChargingCurrentAttributeInteractionInfo);
-    Map<String, CommandParameterInfo> readPowerSourceActiveBatteryChargeFaultsCommandParams =
-        new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo readPowerSourceActiveBatteryChargeFaultsAttributeInteractionInfo =
-        new InteractionInfo(
-            (cluster, callback, commandArguments) -> {
-              ((ChipClusters.PowerSourceCluster) cluster)
-                  .readActiveBatteryChargeFaultsAttribute(
-                      (ChipClusters.PowerSourceCluster.ActiveBatteryChargeFaultsAttributeCallback)
-                          callback);
-            },
-            () ->
-                new ClusterInfoMapping
-                    .DelegatedPowerSourceClusterActiveBatteryChargeFaultsAttributeCallback(),
-            readPowerSourceActiveBatteryChargeFaultsCommandParams);
-    readPowerSourceInteractionInfo.put(
-        "readActiveBatteryChargeFaultsAttribute",
-        readPowerSourceActiveBatteryChargeFaultsAttributeInteractionInfo);
+        "readActiveBatChargeFaultsAttribute",
+        readPowerSourceActiveBatChargeFaultsAttributeInteractionInfo);
     Map<String, CommandParameterInfo> readPowerSourceGeneratedCommandListCommandParams =
         new LinkedHashMap<String, CommandParameterInfo>();
     InteractionInfo readPowerSourceGeneratedCommandListAttributeInteractionInfo =
diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py
index 5666380..27c6c60 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.py
+++ b/src/controller/python/chip/clusters/CHIPClusters.py
@@ -1589,121 +1589,121 @@
                     "reportable": True,
                 },
                 0x0000000B: {
-                    "attributeName": "BatteryVoltage",
+                    "attributeName": "BatVoltage",
                     "attributeId": 0x0000000B,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000000C: {
-                    "attributeName": "BatteryPercentRemaining",
+                    "attributeName": "BatPercentRemaining",
                     "attributeId": 0x0000000C,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000000D: {
-                    "attributeName": "BatteryTimeRemaining",
+                    "attributeName": "BatTimeRemaining",
                     "attributeId": 0x0000000D,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000000E: {
-                    "attributeName": "BatteryChargeLevel",
+                    "attributeName": "BatChargeLevel",
                     "attributeId": 0x0000000E,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000000F: {
-                    "attributeName": "BatteryReplacementNeeded",
+                    "attributeName": "BatReplacementNeeded",
                     "attributeId": 0x0000000F,
                     "type": "bool",
                     "reportable": True,
                 },
                 0x00000010: {
-                    "attributeName": "BatteryReplaceability",
+                    "attributeName": "BatReplaceability",
                     "attributeId": 0x00000010,
                     "type": "int",
                     "reportable": True,
                 },
                 0x00000011: {
-                    "attributeName": "BatteryPresent",
+                    "attributeName": "BatPresent",
                     "attributeId": 0x00000011,
                     "type": "bool",
                     "reportable": True,
                 },
                 0x00000012: {
-                    "attributeName": "ActiveBatteryFaults",
+                    "attributeName": "ActiveBatFaults",
                     "attributeId": 0x00000012,
                     "type": "int",
                     "reportable": True,
                 },
                 0x00000013: {
-                    "attributeName": "BatteryReplacementDescription",
+                    "attributeName": "BatReplacementDescription",
                     "attributeId": 0x00000013,
                     "type": "str",
                     "reportable": True,
                 },
                 0x00000014: {
-                    "attributeName": "BatteryCommonDesignation",
+                    "attributeName": "BatCommonDesignation",
                     "attributeId": 0x00000014,
                     "type": "int",
                     "reportable": True,
                 },
                 0x00000015: {
-                    "attributeName": "BatteryANSIDesignation",
+                    "attributeName": "BatANSIDesignation",
                     "attributeId": 0x00000015,
                     "type": "str",
                     "reportable": True,
                 },
                 0x00000016: {
-                    "attributeName": "BatteryIECDesignation",
+                    "attributeName": "BatIECDesignation",
                     "attributeId": 0x00000016,
                     "type": "str",
                     "reportable": True,
                 },
                 0x00000017: {
-                    "attributeName": "BatteryApprovedChemistry",
+                    "attributeName": "BatApprovedChemistry",
                     "attributeId": 0x00000017,
                     "type": "int",
                     "reportable": True,
                 },
                 0x00000018: {
-                    "attributeName": "BatteryCapacity",
+                    "attributeName": "BatCapacity",
                     "attributeId": 0x00000018,
                     "type": "int",
                     "reportable": True,
                 },
                 0x00000019: {
-                    "attributeName": "BatteryQuantity",
+                    "attributeName": "BatQuantity",
                     "attributeId": 0x00000019,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000001A: {
-                    "attributeName": "BatteryChargeState",
+                    "attributeName": "BatChargeState",
                     "attributeId": 0x0000001A,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000001B: {
-                    "attributeName": "BatteryTimeToFullCharge",
+                    "attributeName": "BatTimeToFullCharge",
                     "attributeId": 0x0000001B,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000001C: {
-                    "attributeName": "BatteryFunctionalWhileCharging",
+                    "attributeName": "BatFunctionalWhileCharging",
                     "attributeId": 0x0000001C,
                     "type": "bool",
                     "reportable": True,
                 },
                 0x0000001D: {
-                    "attributeName": "BatteryChargingCurrent",
+                    "attributeName": "BatChargingCurrent",
                     "attributeId": 0x0000001D,
                     "type": "int",
                     "reportable": True,
                 },
                 0x0000001E: {
-                    "attributeName": "ActiveBatteryChargeFaults",
+                    "attributeName": "ActiveBatChargeFaults",
                     "attributeId": 0x0000001E,
                     "type": "int",
                     "reportable": True,
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 5b4b303..13b596c 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -8504,37 +8504,37 @@
     def descriptor(cls) -> ClusterObjectDescriptor:
         return ClusterObjectDescriptor(
             Fields = [
-                ClusterObjectFieldDescriptor(Label="status", Tag=0x00000000, Type=uint),
+                ClusterObjectFieldDescriptor(Label="status", Tag=0x00000000, Type=PowerSource.Enums.PowerSourceStatus),
                 ClusterObjectFieldDescriptor(Label="order", Tag=0x00000001, Type=uint),
                 ClusterObjectFieldDescriptor(Label="description", Tag=0x00000002, Type=str),
-                ClusterObjectFieldDescriptor(Label="wiredAssessedInputVoltage", Tag=0x00000003, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="wiredAssessedInputFrequency", Tag=0x00000004, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="wiredCurrentType", Tag=0x00000005, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="wiredAssessedCurrent", Tag=0x00000006, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="wiredAssessedInputVoltage", Tag=0x00000003, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="wiredAssessedInputFrequency", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="wiredCurrentType", Tag=0x00000005, Type=typing.Optional[PowerSource.Enums.WiredCurrentType]),
+                ClusterObjectFieldDescriptor(Label="wiredAssessedCurrent", Tag=0x00000006, Type=typing.Union[None, Nullable, uint]),
                 ClusterObjectFieldDescriptor(Label="wiredNominalVoltage", Tag=0x00000007, Type=typing.Optional[uint]),
                 ClusterObjectFieldDescriptor(Label="wiredMaximumCurrent", Tag=0x00000008, Type=typing.Optional[uint]),
                 ClusterObjectFieldDescriptor(Label="wiredPresent", Tag=0x00000009, Type=typing.Optional[bool]),
-                ClusterObjectFieldDescriptor(Label="activeWiredFaults", Tag=0x0000000A, Type=typing.Optional[typing.List[uint]]),
-                ClusterObjectFieldDescriptor(Label="batteryVoltage", Tag=0x0000000B, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryPercentRemaining", Tag=0x0000000C, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryTimeRemaining", Tag=0x0000000D, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryChargeLevel", Tag=0x0000000E, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryReplacementNeeded", Tag=0x0000000F, Type=typing.Optional[bool]),
-                ClusterObjectFieldDescriptor(Label="batteryReplaceability", Tag=0x00000010, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryPresent", Tag=0x00000011, Type=typing.Optional[bool]),
-                ClusterObjectFieldDescriptor(Label="activeBatteryFaults", Tag=0x00000012, Type=typing.Optional[typing.List[uint]]),
-                ClusterObjectFieldDescriptor(Label="batteryReplacementDescription", Tag=0x00000013, Type=typing.Optional[str]),
-                ClusterObjectFieldDescriptor(Label="batteryCommonDesignation", Tag=0x00000014, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryANSIDesignation", Tag=0x00000015, Type=typing.Optional[str]),
-                ClusterObjectFieldDescriptor(Label="batteryIECDesignation", Tag=0x00000016, Type=typing.Optional[str]),
-                ClusterObjectFieldDescriptor(Label="batteryApprovedChemistry", Tag=0x00000017, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryCapacity", Tag=0x00000018, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryQuantity", Tag=0x00000019, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryChargeState", Tag=0x0000001A, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryTimeToFullCharge", Tag=0x0000001B, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="batteryFunctionalWhileCharging", Tag=0x0000001C, Type=typing.Optional[bool]),
-                ClusterObjectFieldDescriptor(Label="batteryChargingCurrent", Tag=0x0000001D, Type=typing.Optional[uint]),
-                ClusterObjectFieldDescriptor(Label="activeBatteryChargeFaults", Tag=0x0000001E, Type=typing.Optional[typing.List[uint]]),
+                ClusterObjectFieldDescriptor(Label="activeWiredFaults", Tag=0x0000000A, Type=typing.Optional[typing.List[PowerSource.Enums.WiredFault]]),
+                ClusterObjectFieldDescriptor(Label="batVoltage", Tag=0x0000000B, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="batPercentRemaining", Tag=0x0000000C, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="batTimeRemaining", Tag=0x0000000D, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="batChargeLevel", Tag=0x0000000E, Type=typing.Optional[PowerSource.Enums.BatChargeLevel]),
+                ClusterObjectFieldDescriptor(Label="batReplacementNeeded", Tag=0x0000000F, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="batReplaceability", Tag=0x00000010, Type=typing.Optional[PowerSource.Enums.BatReplaceability]),
+                ClusterObjectFieldDescriptor(Label="batPresent", Tag=0x00000011, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="activeBatFaults", Tag=0x00000012, Type=typing.Optional[typing.List[PowerSource.Enums.BatFault]]),
+                ClusterObjectFieldDescriptor(Label="batReplacementDescription", Tag=0x00000013, Type=typing.Optional[str]),
+                ClusterObjectFieldDescriptor(Label="batCommonDesignation", Tag=0x00000014, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="batANSIDesignation", Tag=0x00000015, Type=typing.Optional[str]),
+                ClusterObjectFieldDescriptor(Label="batIECDesignation", Tag=0x00000016, Type=typing.Optional[str]),
+                ClusterObjectFieldDescriptor(Label="batApprovedChemistry", Tag=0x00000017, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="batCapacity", Tag=0x00000018, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="batQuantity", Tag=0x00000019, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="batChargeState", Tag=0x0000001A, Type=typing.Optional[PowerSource.Enums.BatChargeState]),
+                ClusterObjectFieldDescriptor(Label="batTimeToFullCharge", Tag=0x0000001B, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="batFunctionalWhileCharging", Tag=0x0000001C, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="batChargingCurrent", Tag=0x0000001D, Type=typing.Union[None, Nullable, uint]),
+                ClusterObjectFieldDescriptor(Label="activeBatChargeFaults", Tag=0x0000001E, Type=typing.Optional[typing.List[PowerSource.Enums.BatChargeFault]]),
                 ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
                 ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
                 ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
@@ -8542,37 +8542,37 @@
                 ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
             ])
 
-    status: 'uint' = None
+    status: 'PowerSource.Enums.PowerSourceStatus' = None
     order: 'uint' = None
     description: 'str' = None
-    wiredAssessedInputVoltage: 'typing.Optional[uint]' = None
-    wiredAssessedInputFrequency: 'typing.Optional[uint]' = None
-    wiredCurrentType: 'typing.Optional[uint]' = None
-    wiredAssessedCurrent: 'typing.Optional[uint]' = None
+    wiredAssessedInputVoltage: 'typing.Union[None, Nullable, uint]' = None
+    wiredAssessedInputFrequency: 'typing.Union[None, Nullable, uint]' = None
+    wiredCurrentType: 'typing.Optional[PowerSource.Enums.WiredCurrentType]' = None
+    wiredAssessedCurrent: 'typing.Union[None, Nullable, uint]' = None
     wiredNominalVoltage: 'typing.Optional[uint]' = None
     wiredMaximumCurrent: 'typing.Optional[uint]' = None
     wiredPresent: 'typing.Optional[bool]' = None
-    activeWiredFaults: 'typing.Optional[typing.List[uint]]' = None
-    batteryVoltage: 'typing.Optional[uint]' = None
-    batteryPercentRemaining: 'typing.Optional[uint]' = None
-    batteryTimeRemaining: 'typing.Optional[uint]' = None
-    batteryChargeLevel: 'typing.Optional[uint]' = None
-    batteryReplacementNeeded: 'typing.Optional[bool]' = None
-    batteryReplaceability: 'typing.Optional[uint]' = None
-    batteryPresent: 'typing.Optional[bool]' = None
-    activeBatteryFaults: 'typing.Optional[typing.List[uint]]' = None
-    batteryReplacementDescription: 'typing.Optional[str]' = None
-    batteryCommonDesignation: 'typing.Optional[uint]' = None
-    batteryANSIDesignation: 'typing.Optional[str]' = None
-    batteryIECDesignation: 'typing.Optional[str]' = None
-    batteryApprovedChemistry: 'typing.Optional[uint]' = None
-    batteryCapacity: 'typing.Optional[uint]' = None
-    batteryQuantity: 'typing.Optional[uint]' = None
-    batteryChargeState: 'typing.Optional[uint]' = None
-    batteryTimeToFullCharge: 'typing.Optional[uint]' = None
-    batteryFunctionalWhileCharging: 'typing.Optional[bool]' = None
-    batteryChargingCurrent: 'typing.Optional[uint]' = None
-    activeBatteryChargeFaults: 'typing.Optional[typing.List[uint]]' = None
+    activeWiredFaults: 'typing.Optional[typing.List[PowerSource.Enums.WiredFault]]' = None
+    batVoltage: 'typing.Union[None, Nullable, uint]' = None
+    batPercentRemaining: 'typing.Union[None, Nullable, uint]' = None
+    batTimeRemaining: 'typing.Union[None, Nullable, uint]' = None
+    batChargeLevel: 'typing.Optional[PowerSource.Enums.BatChargeLevel]' = None
+    batReplacementNeeded: 'typing.Optional[bool]' = None
+    batReplaceability: 'typing.Optional[PowerSource.Enums.BatReplaceability]' = None
+    batPresent: 'typing.Optional[bool]' = None
+    activeBatFaults: 'typing.Optional[typing.List[PowerSource.Enums.BatFault]]' = None
+    batReplacementDescription: 'typing.Optional[str]' = None
+    batCommonDesignation: 'typing.Optional[uint]' = None
+    batANSIDesignation: 'typing.Optional[str]' = None
+    batIECDesignation: 'typing.Optional[str]' = None
+    batApprovedChemistry: 'typing.Optional[uint]' = None
+    batCapacity: 'typing.Optional[uint]' = None
+    batQuantity: 'typing.Optional[uint]' = None
+    batChargeState: 'typing.Optional[PowerSource.Enums.BatChargeState]' = None
+    batTimeToFullCharge: 'typing.Union[None, Nullable, uint]' = None
+    batFunctionalWhileCharging: 'typing.Optional[bool]' = None
+    batChargingCurrent: 'typing.Union[None, Nullable, uint]' = None
+    activeBatChargeFaults: 'typing.Optional[typing.List[PowerSource.Enums.BatChargeFault]]' = None
     generatedCommandList: 'typing.List[uint]' = None
     acceptedCommandList: 'typing.List[uint]' = None
     attributeList: 'typing.List[uint]' = None
@@ -8580,7 +8580,7 @@
     clusterRevision: 'uint' = None
 
     class Enums:
-        class BatChargeFaultType(IntEnum):
+        class BatChargeFault(IntEnum):
             kUnspecfied = 0x00
             kAmbientTooHot = 0x01
             kAmbientTooCold = 0x02
@@ -8604,7 +8604,7 @@
             kIsAtFullCharge = 0x02
             kIsNotCharging = 0x03
 
-        class BatFaultType(IntEnum):
+        class BatFault(IntEnum):
             kUnspecfied = 0x00
             kOverTemp = 0x01
             kUnderTemp = 0x02
@@ -8625,7 +8625,7 @@
             kAc = 0x00
             kDc = 0x01
 
-        class WiredFaultType(IntEnum):
+        class WiredFault(IntEnum):
             kUnspecfied = 0x00
             kOverVoltage = 0x01
             kUnderVoltage = 0x02
@@ -8638,12 +8638,12 @@
             def descriptor(cls) -> ClusterObjectDescriptor:
                 return ClusterObjectDescriptor(
                     Fields = [
-                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.BatChargeFaultType]),
-                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.BatChargeFaultType]),
+                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.BatChargeFault]),
+                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.BatChargeFault]),
                     ])
 
-            current: 'typing.List[PowerSource.Enums.BatChargeFaultType]' = field(default_factory=lambda: [])
-            previous: 'typing.List[PowerSource.Enums.BatChargeFaultType]' = field(default_factory=lambda: [])
+            current: 'typing.List[PowerSource.Enums.BatChargeFault]' = field(default_factory=lambda: [])
+            previous: 'typing.List[PowerSource.Enums.BatChargeFault]' = field(default_factory=lambda: [])
 
         @dataclass
         class BatFaultChangeType(ClusterObject):
@@ -8651,12 +8651,12 @@
             def descriptor(cls) -> ClusterObjectDescriptor:
                 return ClusterObjectDescriptor(
                     Fields = [
-                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.BatFaultType]),
-                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.BatFaultType]),
+                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.BatFault]),
+                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.BatFault]),
                     ])
 
-            current: 'typing.List[PowerSource.Enums.BatFaultType]' = field(default_factory=lambda: [])
-            previous: 'typing.List[PowerSource.Enums.BatFaultType]' = field(default_factory=lambda: [])
+            current: 'typing.List[PowerSource.Enums.BatFault]' = field(default_factory=lambda: [])
+            previous: 'typing.List[PowerSource.Enums.BatFault]' = field(default_factory=lambda: [])
 
         @dataclass
         class WiredFaultChangeType(ClusterObject):
@@ -8664,12 +8664,12 @@
             def descriptor(cls) -> ClusterObjectDescriptor:
                 return ClusterObjectDescriptor(
                     Fields = [
-                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.WiredFaultType]),
-                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.WiredFaultType]),
+                            ClusterObjectFieldDescriptor(Label="current", Tag=0, Type=typing.List[PowerSource.Enums.WiredFault]),
+                            ClusterObjectFieldDescriptor(Label="previous", Tag=1, Type=typing.List[PowerSource.Enums.WiredFault]),
                     ])
 
-            current: 'typing.List[PowerSource.Enums.WiredFaultType]' = field(default_factory=lambda: [])
-            previous: 'typing.List[PowerSource.Enums.WiredFaultType]' = field(default_factory=lambda: [])
+            current: 'typing.List[PowerSource.Enums.WiredFault]' = field(default_factory=lambda: [])
+            previous: 'typing.List[PowerSource.Enums.WiredFault]' = field(default_factory=lambda: [])
 
 
 
@@ -8687,9 +8687,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=uint)
+                return ClusterObjectFieldDescriptor(Type=PowerSource.Enums.PowerSourceStatus)
 
-            value: 'uint' = 0
+            value: 'PowerSource.Enums.PowerSourceStatus' = 0
 
         @dataclass
         class Order(ClusterAttributeDescriptor):
@@ -8735,9 +8735,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
         class WiredAssessedInputFrequency(ClusterAttributeDescriptor):
@@ -8751,9 +8751,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
         class WiredCurrentType(ClusterAttributeDescriptor):
@@ -8767,9 +8767,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[PowerSource.Enums.WiredCurrentType])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Optional[PowerSource.Enums.WiredCurrentType]' = None
 
         @dataclass
         class WiredAssessedCurrent(ClusterAttributeDescriptor):
@@ -8783,9 +8783,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
         class WiredNominalVoltage(ClusterAttributeDescriptor):
@@ -8847,12 +8847,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[uint]])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[PowerSource.Enums.WiredFault]])
 
-            value: 'typing.Optional[typing.List[uint]]' = None
+            value: 'typing.Optional[typing.List[PowerSource.Enums.WiredFault]]' = None
 
         @dataclass
-        class BatteryVoltage(ClusterAttributeDescriptor):
+        class BatVoltage(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8863,12 +8863,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
-        class BatteryPercentRemaining(ClusterAttributeDescriptor):
+        class BatPercentRemaining(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8879,12 +8879,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
-        class BatteryTimeRemaining(ClusterAttributeDescriptor):
+        class BatTimeRemaining(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8895,12 +8895,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
-        class BatteryChargeLevel(ClusterAttributeDescriptor):
+        class BatChargeLevel(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8911,12 +8911,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[PowerSource.Enums.BatChargeLevel])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Optional[PowerSource.Enums.BatChargeLevel]' = None
 
         @dataclass
-        class BatteryReplacementNeeded(ClusterAttributeDescriptor):
+        class BatReplacementNeeded(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8932,7 +8932,7 @@
             value: 'typing.Optional[bool]' = None
 
         @dataclass
-        class BatteryReplaceability(ClusterAttributeDescriptor):
+        class BatReplaceability(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8943,12 +8943,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[PowerSource.Enums.BatReplaceability])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Optional[PowerSource.Enums.BatReplaceability]' = None
 
         @dataclass
-        class BatteryPresent(ClusterAttributeDescriptor):
+        class BatPresent(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8964,7 +8964,7 @@
             value: 'typing.Optional[bool]' = None
 
         @dataclass
-        class ActiveBatteryFaults(ClusterAttributeDescriptor):
+        class ActiveBatFaults(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8975,12 +8975,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[uint]])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[PowerSource.Enums.BatFault]])
 
-            value: 'typing.Optional[typing.List[uint]]' = None
+            value: 'typing.Optional[typing.List[PowerSource.Enums.BatFault]]' = None
 
         @dataclass
-        class BatteryReplacementDescription(ClusterAttributeDescriptor):
+        class BatReplacementDescription(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -8996,7 +8996,7 @@
             value: 'typing.Optional[str]' = None
 
         @dataclass
-        class BatteryCommonDesignation(ClusterAttributeDescriptor):
+        class BatCommonDesignation(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9012,7 +9012,7 @@
             value: 'typing.Optional[uint]' = None
 
         @dataclass
-        class BatteryANSIDesignation(ClusterAttributeDescriptor):
+        class BatANSIDesignation(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9028,7 +9028,7 @@
             value: 'typing.Optional[str]' = None
 
         @dataclass
-        class BatteryIECDesignation(ClusterAttributeDescriptor):
+        class BatIECDesignation(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9044,7 +9044,7 @@
             value: 'typing.Optional[str]' = None
 
         @dataclass
-        class BatteryApprovedChemistry(ClusterAttributeDescriptor):
+        class BatApprovedChemistry(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9060,7 +9060,7 @@
             value: 'typing.Optional[uint]' = None
 
         @dataclass
-        class BatteryCapacity(ClusterAttributeDescriptor):
+        class BatCapacity(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9076,7 +9076,7 @@
             value: 'typing.Optional[uint]' = None
 
         @dataclass
-        class BatteryQuantity(ClusterAttributeDescriptor):
+        class BatQuantity(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9092,7 +9092,7 @@
             value: 'typing.Optional[uint]' = None
 
         @dataclass
-        class BatteryChargeState(ClusterAttributeDescriptor):
+        class BatChargeState(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9103,12 +9103,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[PowerSource.Enums.BatChargeState])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Optional[PowerSource.Enums.BatChargeState]' = None
 
         @dataclass
-        class BatteryTimeToFullCharge(ClusterAttributeDescriptor):
+        class BatTimeToFullCharge(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9119,12 +9119,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
-        class BatteryFunctionalWhileCharging(ClusterAttributeDescriptor):
+        class BatFunctionalWhileCharging(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9140,7 +9140,7 @@
             value: 'typing.Optional[bool]' = None
 
         @dataclass
-        class BatteryChargingCurrent(ClusterAttributeDescriptor):
+        class BatChargingCurrent(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9151,12 +9151,12 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+                return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, uint])
 
-            value: 'typing.Optional[uint]' = None
+            value: 'typing.Union[None, Nullable, uint]' = None
 
         @dataclass
-        class ActiveBatteryChargeFaults(ClusterAttributeDescriptor):
+        class ActiveBatChargeFaults(ClusterAttributeDescriptor):
             @ChipUtility.classproperty
             def cluster_id(cls) -> int:
                 return 0x002F
@@ -9167,9 +9167,9 @@
 
             @ChipUtility.classproperty
             def attribute_type(cls) -> ClusterObjectFieldDescriptor:
-                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[uint]])
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[PowerSource.Enums.BatChargeFault]])
 
-            value: 'typing.Optional[typing.List[uint]]' = None
+            value: 'typing.Optional[typing.List[PowerSource.Enums.BatChargeFault]]' = None
 
         @dataclass
         class GeneratedCommandList(ClusterAttributeDescriptor):
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index 9bf7ccc..254177c 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -3266,7 +3266,7 @@
                 return nil;
             }
             NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
+            value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
             return value;
         }
         case Attributes::Order::Id: {
@@ -3298,8 +3298,12 @@
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
             return value;
         }
         case Attributes::WiredAssessedInputFrequency::Id: {
@@ -3309,8 +3313,12 @@
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedShort:cppValue];
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedShort:cppValue.Value()];
+            }
             return value;
         }
         case Attributes::WiredCurrentType::Id: {
@@ -3321,7 +3329,7 @@
                 return nil;
             }
             NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
+            value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
             return value;
         }
         case Attributes::WiredAssessedCurrent::Id: {
@@ -3331,8 +3339,12 @@
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
             return value;
         }
         case Attributes::WiredNominalVoltage::Id: {
@@ -3382,7 +3394,7 @@
                 while (iter_0.Next()) {
                     auto & entry_0 = iter_0.GetValue();
                     NSNumber * newElement_0;
-                    newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+                    newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
                     [array_0 addObject:newElement_0];
                 }
                 CHIP_ERROR err = iter_0.GetStatus();
@@ -3394,52 +3406,64 @@
             }
             return value;
         }
-        case Attributes::BatteryVoltage::Id: {
-            using TypeInfo = Attributes::BatteryVoltage::TypeInfo;
+        case Attributes::BatVoltage::Id: {
+            using TypeInfo = Attributes::BatVoltage::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR) {
+                return nil;
+            }
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
+            return value;
+        }
+        case Attributes::BatPercentRemaining::Id: {
+            using TypeInfo = Attributes::BatPercentRemaining::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR) {
+                return nil;
+            }
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedChar:cppValue.Value()];
+            }
+            return value;
+        }
+        case Attributes::BatTimeRemaining::Id: {
+            using TypeInfo = Attributes::BatTimeRemaining::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR) {
+                return nil;
+            }
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
+            return value;
+        }
+        case Attributes::BatChargeLevel::Id: {
+            using TypeInfo = Attributes::BatChargeLevel::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
             NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
+            value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
             return value;
         }
-        case Attributes::BatteryPercentRemaining::Id: {
-            using TypeInfo = Attributes::BatteryPercentRemaining::TypeInfo;
-            TypeInfo::DecodableType cppValue;
-            *aError = DataModel::Decode(aReader, cppValue);
-            if (*aError != CHIP_NO_ERROR) {
-                return nil;
-            }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
-            return value;
-        }
-        case Attributes::BatteryTimeRemaining::Id: {
-            using TypeInfo = Attributes::BatteryTimeRemaining::TypeInfo;
-            TypeInfo::DecodableType cppValue;
-            *aError = DataModel::Decode(aReader, cppValue);
-            if (*aError != CHIP_NO_ERROR) {
-                return nil;
-            }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
-            return value;
-        }
-        case Attributes::BatteryChargeLevel::Id: {
-            using TypeInfo = Attributes::BatteryChargeLevel::TypeInfo;
-            TypeInfo::DecodableType cppValue;
-            *aError = DataModel::Decode(aReader, cppValue);
-            if (*aError != CHIP_NO_ERROR) {
-                return nil;
-            }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
-            return value;
-        }
-        case Attributes::BatteryReplacementNeeded::Id: {
-            using TypeInfo = Attributes::BatteryReplacementNeeded::TypeInfo;
+        case Attributes::BatReplacementNeeded::Id: {
+            using TypeInfo = Attributes::BatReplacementNeeded::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3449,19 +3473,19 @@
             value = [NSNumber numberWithBool:cppValue];
             return value;
         }
-        case Attributes::BatteryReplaceability::Id: {
-            using TypeInfo = Attributes::BatteryReplaceability::TypeInfo;
+        case Attributes::BatReplaceability::Id: {
+            using TypeInfo = Attributes::BatReplaceability::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
             NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
+            value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
             return value;
         }
-        case Attributes::BatteryPresent::Id: {
-            using TypeInfo = Attributes::BatteryPresent::TypeInfo;
+        case Attributes::BatPresent::Id: {
+            using TypeInfo = Attributes::BatPresent::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3471,8 +3495,8 @@
             value = [NSNumber numberWithBool:cppValue];
             return value;
         }
-        case Attributes::ActiveBatteryFaults::Id: {
-            using TypeInfo = Attributes::ActiveBatteryFaults::TypeInfo;
+        case Attributes::ActiveBatFaults::Id: {
+            using TypeInfo = Attributes::ActiveBatFaults::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3485,7 +3509,7 @@
                 while (iter_0.Next()) {
                     auto & entry_0 = iter_0.GetValue();
                     NSNumber * newElement_0;
-                    newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+                    newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
                     [array_0 addObject:newElement_0];
                 }
                 CHIP_ERROR err = iter_0.GetStatus();
@@ -3497,8 +3521,8 @@
             }
             return value;
         }
-        case Attributes::BatteryReplacementDescription::Id: {
-            using TypeInfo = Attributes::BatteryReplacementDescription::TypeInfo;
+        case Attributes::BatReplacementDescription::Id: {
+            using TypeInfo = Attributes::BatReplacementDescription::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3508,8 +3532,8 @@
             value = [[NSString alloc] initWithBytes:cppValue.data() length:cppValue.size() encoding:NSUTF8StringEncoding];
             return value;
         }
-        case Attributes::BatteryCommonDesignation::Id: {
-            using TypeInfo = Attributes::BatteryCommonDesignation::TypeInfo;
+        case Attributes::BatCommonDesignation::Id: {
+            using TypeInfo = Attributes::BatCommonDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3519,8 +3543,8 @@
             value = [NSNumber numberWithUnsignedInt:cppValue];
             return value;
         }
-        case Attributes::BatteryANSIDesignation::Id: {
-            using TypeInfo = Attributes::BatteryANSIDesignation::TypeInfo;
+        case Attributes::BatANSIDesignation::Id: {
+            using TypeInfo = Attributes::BatANSIDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3530,8 +3554,8 @@
             value = [[NSString alloc] initWithBytes:cppValue.data() length:cppValue.size() encoding:NSUTF8StringEncoding];
             return value;
         }
-        case Attributes::BatteryIECDesignation::Id: {
-            using TypeInfo = Attributes::BatteryIECDesignation::TypeInfo;
+        case Attributes::BatIECDesignation::Id: {
+            using TypeInfo = Attributes::BatIECDesignation::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3541,8 +3565,8 @@
             value = [[NSString alloc] initWithBytes:cppValue.data() length:cppValue.size() encoding:NSUTF8StringEncoding];
             return value;
         }
-        case Attributes::BatteryApprovedChemistry::Id: {
-            using TypeInfo = Attributes::BatteryApprovedChemistry::TypeInfo;
+        case Attributes::BatApprovedChemistry::Id: {
+            using TypeInfo = Attributes::BatApprovedChemistry::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3552,8 +3576,8 @@
             value = [NSNumber numberWithUnsignedInt:cppValue];
             return value;
         }
-        case Attributes::BatteryCapacity::Id: {
-            using TypeInfo = Attributes::BatteryCapacity::TypeInfo;
+        case Attributes::BatCapacity::Id: {
+            using TypeInfo = Attributes::BatCapacity::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3563,8 +3587,8 @@
             value = [NSNumber numberWithUnsignedInt:cppValue];
             return value;
         }
-        case Attributes::BatteryQuantity::Id: {
-            using TypeInfo = Attributes::BatteryQuantity::TypeInfo;
+        case Attributes::BatQuantity::Id: {
+            using TypeInfo = Attributes::BatQuantity::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3574,30 +3598,34 @@
             value = [NSNumber numberWithUnsignedChar:cppValue];
             return value;
         }
-        case Attributes::BatteryChargeState::Id: {
-            using TypeInfo = Attributes::BatteryChargeState::TypeInfo;
+        case Attributes::BatChargeState::Id: {
+            using TypeInfo = Attributes::BatChargeState::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
             NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedChar:cppValue];
+            value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
             return value;
         }
-        case Attributes::BatteryTimeToFullCharge::Id: {
-            using TypeInfo = Attributes::BatteryTimeToFullCharge::TypeInfo;
+        case Attributes::BatTimeToFullCharge::Id: {
+            using TypeInfo = Attributes::BatTimeToFullCharge::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
             return value;
         }
-        case Attributes::BatteryFunctionalWhileCharging::Id: {
-            using TypeInfo = Attributes::BatteryFunctionalWhileCharging::TypeInfo;
+        case Attributes::BatFunctionalWhileCharging::Id: {
+            using TypeInfo = Attributes::BatFunctionalWhileCharging::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3607,19 +3635,23 @@
             value = [NSNumber numberWithBool:cppValue];
             return value;
         }
-        case Attributes::BatteryChargingCurrent::Id: {
-            using TypeInfo = Attributes::BatteryChargingCurrent::TypeInfo;
+        case Attributes::BatChargingCurrent::Id: {
+            using TypeInfo = Attributes::BatChargingCurrent::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
                 return nil;
             }
-            NSNumber * _Nonnull value;
-            value = [NSNumber numberWithUnsignedInt:cppValue];
+            NSNumber * _Nullable value;
+            if (cppValue.IsNull()) {
+                value = nil;
+            } else {
+                value = [NSNumber numberWithUnsignedInt:cppValue.Value()];
+            }
             return value;
         }
-        case Attributes::ActiveBatteryChargeFaults::Id: {
-            using TypeInfo = Attributes::ActiveBatteryChargeFaults::TypeInfo;
+        case Attributes::ActiveBatChargeFaults::Id: {
+            using TypeInfo = Attributes::ActiveBatChargeFaults::TypeInfo;
             TypeInfo::DecodableType cppValue;
             *aError = DataModel::Decode(aReader, cppValue);
             if (*aError != CHIP_NO_ERROR) {
@@ -3632,7 +3664,7 @@
                 while (iter_0.Next()) {
                     auto & entry_0 = iter_0.GetValue();
                     NSNumber * newElement_0;
-                    newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+                    newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
                     [array_0 addObject:newElement_0];
                 }
                 CHIP_ERROR err = iter_0.GetStatus();
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index d8cda4d..9987040 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -3823,380 +3823,370 @@
                                        completionHandler:
                                            (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryVoltageWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeBatVoltageWithCompletionHandler:(void (^)(
+                                                         NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatVoltageWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                             params:(MTRSubscribeParams * _Nullable)params
+                            subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatVoltageWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                         endpoint:(NSNumber *)endpoint
+                                            queue:(dispatch_queue_t)queue
+                                completionHandler:
+                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatPercentRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                  NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatPercentRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                      params:(MTRSubscribeParams * _Nullable)params
+                                     subscriptionEstablished:
+                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                               reportHandler:
+                                                   (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatPercentRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                  endpoint:(NSNumber *)endpoint
+                                                     queue:(dispatch_queue_t)queue
+                                         completionHandler:
+                                             (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatTimeRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                               NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatTimeRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                              maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                   params:(MTRSubscribeParams * _Nullable)params
+                                  subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                            reportHandler:
+                                                (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatTimeRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                               endpoint:(NSNumber *)endpoint
+                                                  queue:(dispatch_queue_t)queue
+                                      completionHandler:
+                                          (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatChargeLevelWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                              NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeBatteryVoltageWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatChargeLevelWithMinInterval:(NSNumber * _Nonnull)minInterval
                                             maxInterval:(NSNumber * _Nonnull)maxInterval
                                                  params:(MTRSubscribeParams * _Nullable)params
                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                           reportHandler:
                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryVoltageWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatChargeLevelWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                              endpoint:(NSNumber *)endpoint
                                                 queue:(dispatch_queue_t)queue
                                     completionHandler:
                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryPercentRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryPercentRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                     maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                          params:(MTRSubscribeParams * _Nullable)params
-                                         subscriptionEstablished:
-                                             (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                   reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryPercentRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                      endpoint:(NSNumber *)endpoint
-                                                         queue:(dispatch_queue_t)queue
-                                             completionHandler:
-                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryTimeRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeBatReplacementNeededWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                    NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeBatteryTimeRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatReplacementNeededWithMinInterval:(NSNumber * _Nonnull)minInterval
                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
                                                        params:(MTRSubscribeParams * _Nullable)params
                                       subscriptionEstablished:
                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                                 reportHandler:
                                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryTimeRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatReplacementNeededWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                                    endpoint:(NSNumber *)endpoint
                                                       queue:(dispatch_queue_t)queue
                                           completionHandler:
                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryChargeLevelWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                 NSError * _Nullable error))completionHandler;
+- (void)readAttributeBatReplaceabilityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeBatteryChargeLevelWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                     params:(MTRSubscribeParams * _Nullable)params
-                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                              reportHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryChargeLevelWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                 endpoint:(NSNumber *)endpoint
-                                                    queue:(dispatch_queue_t)queue
-                                        completionHandler:
-                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+- (void)subscribeAttributeBatReplaceabilityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                               maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                    params:(MTRSubscribeParams * _Nullable)params
+                                   subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                             reportHandler:
+                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatReplaceabilityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                endpoint:(NSNumber *)endpoint
+                                                   queue:(dispatch_queue_t)queue
+                                       completionHandler:
+                                           (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryReplacementNeededWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler;
+- (void)readAttributeBatPresentWithCompletionHandler:(void (^)(
+                                                         NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeBatteryReplacementNeededWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryReplacementNeededWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler;
+- (void)subscribeAttributeBatPresentWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                             params:(MTRSubscribeParams * _Nullable)params
+                            subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatPresentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                         endpoint:(NSNumber *)endpoint
+                                            queue:(dispatch_queue_t)queue
+                                completionHandler:
+                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryReplaceabilityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryReplaceabilityWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                        params:(MTRSubscribeParams * _Nullable)params
-                                       subscriptionEstablished:
-                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                 reportHandler:
-                                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryReplaceabilityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                    endpoint:(NSNumber *)endpoint
-                                                       queue:(dispatch_queue_t)queue
-                                           completionHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryPresentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                             NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryPresentWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                            maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                 params:(MTRSubscribeParams * _Nullable)params
-                                subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                          reportHandler:
-                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryPresentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                             endpoint:(NSNumber *)endpoint
-                                                queue:(dispatch_queue_t)queue
-                                    completionHandler:
-                                        (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeActiveBatteryFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
-                                                                  NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeActiveBatteryFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                      params:(MTRSubscribeParams * _Nullable)params
-                                     subscriptionEstablished:
-                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                               reportHandler:
-                                                   (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeActiveBatteryFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                  endpoint:(NSNumber *)endpoint
-                                                     queue:(dispatch_queue_t)queue
-                                         completionHandler:
-                                             (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryReplacementDescriptionWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                            NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryReplacementDescriptionWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                           maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                                params:(MTRSubscribeParams * _Nullable)params
-                                               subscriptionEstablished:
-                                                   (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                         reportHandler:(void (^)(NSString * _Nullable value,
-                                                                           NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryReplacementDescriptionWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                            endpoint:(NSNumber *)endpoint
-                                                               queue:(dispatch_queue_t)queue
-                                                   completionHandler:(void (^)(NSString * _Nullable value,
-                                                                         NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryCommonDesignationWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryCommonDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryCommonDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryANSIDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                     NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryANSIDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                    maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                         params:(MTRSubscribeParams * _Nullable)params
-                                        subscriptionEstablished:
-                                            (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                  reportHandler:(void (^)(NSString * _Nullable value,
-                                                                    NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryANSIDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                     endpoint:(NSNumber *)endpoint
-                                                        queue:(dispatch_queue_t)queue
-                                            completionHandler:
-                                                (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryIECDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryIECDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                        params:(MTRSubscribeParams * _Nullable)params
-                                       subscriptionEstablished:
-                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                 reportHandler:
-                                                     (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryIECDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                    endpoint:(NSNumber *)endpoint
-                                                       queue:(dispatch_queue_t)queue
-                                           completionHandler:
-                                               (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryApprovedChemistryWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryApprovedChemistryWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryApprovedChemistryWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryCapacityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeActiveBatFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
                                                               NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeBatteryCapacityWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeActiveBatFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
                                              maxInterval:(NSNumber * _Nonnull)maxInterval
                                                   params:(MTRSubscribeParams * _Nullable)params
                                  subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                            reportHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryCapacityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                               (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeActiveBatFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                               endpoint:(NSNumber *)endpoint
                                                  queue:(dispatch_queue_t)queue
                                      completionHandler:
-                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+                                         (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler;
 
-- (void)readAttributeBatteryQuantityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                              NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryQuantityWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                             maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                  params:(MTRSubscribeParams * _Nullable)params
-                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                           reportHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryQuantityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                              endpoint:(NSNumber *)endpoint
-                                                 queue:(dispatch_queue_t)queue
-                                     completionHandler:
-                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryChargeStateWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                 NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryChargeStateWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                     params:(MTRSubscribeParams * _Nullable)params
-                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                              reportHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryChargeStateWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                 endpoint:(NSNumber *)endpoint
-                                                    queue:(dispatch_queue_t)queue
-                                        completionHandler:
-                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryTimeToFullChargeWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryTimeToFullChargeWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                     maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                          params:(MTRSubscribeParams * _Nullable)params
-                                         subscriptionEstablished:
-                                             (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                   reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryTimeToFullChargeWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                      endpoint:(NSNumber *)endpoint
-                                                         queue:(dispatch_queue_t)queue
-                                             completionHandler:
-                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryFunctionalWhileChargingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                             NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryFunctionalWhileChargingWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                            maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                                 params:(MTRSubscribeParams * _Nullable)params
-                                                subscriptionEstablished:
-                                                    (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                          reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                            NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryFunctionalWhileChargingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                             endpoint:(NSNumber *)endpoint
-                                                                queue:(dispatch_queue_t)queue
-                                                    completionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                          NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeBatteryChargingCurrentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))completionHandler;
-/**
- * This API does not support setting autoResubscribe to NO in the
- * MTRSubscribeParams.
- */
-- (void)subscribeAttributeBatteryChargingCurrentWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                    maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                         params:(MTRSubscribeParams * _Nullable)params
-                                        subscriptionEstablished:
-                                            (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                  reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))reportHandler;
-+ (void)readAttributeBatteryChargingCurrentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                     endpoint:(NSNumber *)endpoint
-                                                        queue:(dispatch_queue_t)queue
-                                            completionHandler:
-                                                (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
-
-- (void)readAttributeActiveBatteryChargeFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
+- (void)readAttributeBatReplacementDescriptionWithCompletionHandler:(void (^)(NSString * _Nullable value,
                                                                         NSError * _Nullable error))completionHandler;
 /**
  * This API does not support setting autoResubscribe to NO in the
  * MTRSubscribeParams.
  */
-- (void)subscribeAttributeActiveBatteryChargeFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatReplacementDescriptionWithMinInterval:(NSNumber * _Nonnull)minInterval
                                                        maxInterval:(NSNumber * _Nonnull)maxInterval
                                                             params:(MTRSubscribeParams * _Nullable)params
                                            subscriptionEstablished:
                                                (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                     reportHandler:(void (^)(NSArray * _Nullable value,
+                                                     reportHandler:(void (^)(NSString * _Nullable value,
                                                                        NSError * _Nullable error))reportHandler;
-+ (void)readAttributeActiveBatteryChargeFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatReplacementDescriptionWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                                         endpoint:(NSNumber *)endpoint
                                                            queue:(dispatch_queue_t)queue
-                                               completionHandler:(void (^)(NSArray * _Nullable value,
+                                               completionHandler:(void (^)(NSString * _Nullable value,
                                                                      NSError * _Nullable error))completionHandler;
 
+- (void)readAttributeBatCommonDesignationWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                   NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatCommonDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                  maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                       params:(MTRSubscribeParams * _Nullable)params
+                                      subscriptionEstablished:
+                                          (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                reportHandler:
+                                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatCommonDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                   endpoint:(NSNumber *)endpoint
+                                                      queue:(dispatch_queue_t)queue
+                                          completionHandler:
+                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatANSIDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
+                                                                 NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatANSIDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                     params:(MTRSubscribeParams * _Nullable)params
+                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                              reportHandler:
+                                                  (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatANSIDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                 endpoint:(NSNumber *)endpoint
+                                                    queue:(dispatch_queue_t)queue
+                                        completionHandler:
+                                            (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatIECDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
+                                                                NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatIECDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                               maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                    params:(MTRSubscribeParams * _Nullable)params
+                                   subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                             reportHandler:
+                                                 (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatIECDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                endpoint:(NSNumber *)endpoint
+                                                   queue:(dispatch_queue_t)queue
+                                       completionHandler:
+                                           (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatApprovedChemistryWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                   NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatApprovedChemistryWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                  maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                       params:(MTRSubscribeParams * _Nullable)params
+                                      subscriptionEstablished:
+                                          (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                reportHandler:
+                                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatApprovedChemistryWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                   endpoint:(NSNumber *)endpoint
+                                                      queue:(dispatch_queue_t)queue
+                                          completionHandler:
+                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatCapacityWithCompletionHandler:(void (^)(
+                                                          NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatCapacityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                         maxInterval:(NSNumber * _Nonnull)maxInterval
+                                              params:(MTRSubscribeParams * _Nullable)params
+                             subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatCapacityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                          endpoint:(NSNumber *)endpoint
+                                             queue:(dispatch_queue_t)queue
+                                 completionHandler:
+                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatQuantityWithCompletionHandler:(void (^)(
+                                                          NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatQuantityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                         maxInterval:(NSNumber * _Nonnull)maxInterval
+                                              params:(MTRSubscribeParams * _Nullable)params
+                             subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatQuantityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                          endpoint:(NSNumber *)endpoint
+                                             queue:(dispatch_queue_t)queue
+                                 completionHandler:
+                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatChargeStateWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                             NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatChargeStateWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                            maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                 params:(MTRSubscribeParams * _Nullable)params
+                                subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                          reportHandler:
+                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatChargeStateWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                             endpoint:(NSNumber *)endpoint
+                                                queue:(dispatch_queue_t)queue
+                                    completionHandler:
+                                        (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatTimeToFullChargeWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                  NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatTimeToFullChargeWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                      params:(MTRSubscribeParams * _Nullable)params
+                                     subscriptionEstablished:
+                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                               reportHandler:
+                                                   (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatTimeToFullChargeWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                  endpoint:(NSNumber *)endpoint
+                                                     queue:(dispatch_queue_t)queue
+                                         completionHandler:
+                                             (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatFunctionalWhileChargingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                         NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatFunctionalWhileChargingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                             params:(MTRSubscribeParams * _Nullable)params
+                                            subscriptionEstablished:
+                                                (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                      reportHandler:(void (^)(NSNumber * _Nullable value,
+                                                                        NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatFunctionalWhileChargingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                         endpoint:(NSNumber *)endpoint
+                                                            queue:(dispatch_queue_t)queue
+                                                completionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                      NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeBatChargingCurrentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                 NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeBatChargingCurrentWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                     params:(MTRSubscribeParams * _Nullable)params
+                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                              reportHandler:
+                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeBatChargingCurrentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                 endpoint:(NSNumber *)endpoint
+                                                    queue:(dispatch_queue_t)queue
+                                        completionHandler:
+                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler;
+
+- (void)readAttributeActiveBatChargeFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
+                                                                    NSError * _Nullable error))completionHandler;
+/**
+ * This API does not support setting autoResubscribe to NO in the
+ * MTRSubscribeParams.
+ */
+- (void)subscribeAttributeActiveBatChargeFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                        params:(MTRSubscribeParams * _Nullable)params
+                                       subscriptionEstablished:
+                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                 reportHandler:
+                                                     (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler;
++ (void)readAttributeActiveBatChargeFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                    endpoint:(NSNumber *)endpoint
+                                                       queue:(dispatch_queue_t)queue
+                                           completionHandler:
+                                               (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler;
+
 - (void)readAttributeGeneratedCommandListWithCompletionHandler:(void (^)(NSArray * _Nullable value,
                                                                    NSError * _Nullable error))completionHandler;
 /**
@@ -21868,18 +21858,18 @@
     MTRUnitLocalizationFeatureTemperatureUnit = 0x1,
 };
 
-typedef NS_ENUM(uint8_t, MTRPowerSourceBatChargeFaultType) {
-    MTRPowerSourceBatChargeFaultTypeUnspecfied = 0x00,
-    MTRPowerSourceBatChargeFaultTypeAmbientTooHot = 0x01,
-    MTRPowerSourceBatChargeFaultTypeAmbientTooCold = 0x02,
-    MTRPowerSourceBatChargeFaultTypeBatteryTooHot = 0x03,
-    MTRPowerSourceBatChargeFaultTypeBatteryTooCold = 0x04,
-    MTRPowerSourceBatChargeFaultTypeBatteryAbsent = 0x05,
-    MTRPowerSourceBatChargeFaultTypeBatteryOverVoltage = 0x06,
-    MTRPowerSourceBatChargeFaultTypeBatteryUnderVoltage = 0x07,
-    MTRPowerSourceBatChargeFaultTypeChargerOverVoltage = 0x08,
-    MTRPowerSourceBatChargeFaultTypeChargerUnderVoltage = 0x09,
-    MTRPowerSourceBatChargeFaultTypeSafetyTimeout = 0x0A,
+typedef NS_ENUM(uint8_t, MTRPowerSourceBatChargeFault) {
+    MTRPowerSourceBatChargeFaultUnspecfied = 0x00,
+    MTRPowerSourceBatChargeFaultAmbientTooHot = 0x01,
+    MTRPowerSourceBatChargeFaultAmbientTooCold = 0x02,
+    MTRPowerSourceBatChargeFaultBatteryTooHot = 0x03,
+    MTRPowerSourceBatChargeFaultBatteryTooCold = 0x04,
+    MTRPowerSourceBatChargeFaultBatteryAbsent = 0x05,
+    MTRPowerSourceBatChargeFaultBatteryOverVoltage = 0x06,
+    MTRPowerSourceBatChargeFaultBatteryUnderVoltage = 0x07,
+    MTRPowerSourceBatChargeFaultChargerOverVoltage = 0x08,
+    MTRPowerSourceBatChargeFaultChargerUnderVoltage = 0x09,
+    MTRPowerSourceBatChargeFaultSafetyTimeout = 0x0A,
 };
 
 typedef NS_ENUM(uint8_t, MTRPowerSourceBatChargeLevel) {
@@ -21895,10 +21885,10 @@
     MTRPowerSourceBatChargeStateIsNotCharging = 0x03,
 };
 
-typedef NS_ENUM(uint8_t, MTRPowerSourceBatFaultType) {
-    MTRPowerSourceBatFaultTypeUnspecfied = 0x00,
-    MTRPowerSourceBatFaultTypeOverTemp = 0x01,
-    MTRPowerSourceBatFaultTypeUnderTemp = 0x02,
+typedef NS_ENUM(uint8_t, MTRPowerSourceBatFault) {
+    MTRPowerSourceBatFaultUnspecfied = 0x00,
+    MTRPowerSourceBatFaultOverTemp = 0x01,
+    MTRPowerSourceBatFaultUnderTemp = 0x02,
 };
 
 typedef NS_ENUM(uint8_t, MTRPowerSourceBatReplaceability) {
@@ -21920,10 +21910,10 @@
     MTRPowerSourceWiredCurrentTypeDC = 0x01,
 };
 
-typedef NS_ENUM(uint8_t, MTRPowerSourceWiredFaultType) {
-    MTRPowerSourceWiredFaultTypeUnspecfied = 0x00,
-    MTRPowerSourceWiredFaultTypeOverVoltage = 0x01,
-    MTRPowerSourceWiredFaultTypeUnderVoltage = 0x02,
+typedef NS_ENUM(uint8_t, MTRPowerSourceWiredFault) {
+    MTRPowerSourceWiredFaultUnspecfied = 0x00,
+    MTRPowerSourceWiredFaultOverVoltage = 0x01,
+    MTRPowerSourceWiredFaultUnderVoltage = 0x02,
 };
 
 typedef NS_OPTIONS(uint32_t, MTRPowerSourceFeature) {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index 45b7761..a90cdb0 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -14259,12 +14259,13 @@
 
 - (void)readAttributeStatusWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::Status::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::Status::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterPowerSourceStatusAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
 - (void)subscribeAttributeStatusWithMinInterval:(NSNumber * _Nonnull)minInterval
@@ -14273,7 +14274,7 @@
                         subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
+    new MTRPowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -14281,11 +14282,11 @@
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
             using TypeInfo = PowerSource::Attributes::Status::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<PowerSourceClusterPowerSourceStatusAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRPowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
@@ -14297,23 +14298,24 @@
                                         queue:(dispatch_queue_t)queue
                             completionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::Status::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
+    new MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge(
+        queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            if (attributeCacheContainer.cppAttributeCache) {
+                chip::app::ConcreteAttributePath path;
+                using TypeInfo = PowerSource::Attributes::Status::TypeInfo;
+                path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+                path.mClusterId = TypeInfo::GetClusterId();
+                path.mAttributeId = TypeInfo::GetAttributeId();
+                TypeInfo::DecodableType value;
+                CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+                auto successFn = Callback<PowerSourceClusterPowerSourceStatusAttributeCallback>::FromCancelable(success);
+                if (err == CHIP_NO_ERROR) {
+                    successFn->mCall(successFn->mContext, value);
+                }
+                return err;
             }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
+            return CHIP_ERROR_NOT_FOUND;
+        });
 }
 
 - (void)readAttributeOrderWithCompletionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
@@ -14439,12 +14441,13 @@
 - (void)readAttributeWiredAssessedInputVoltageWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                         NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::WiredAssessedInputVoltage::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::WiredAssessedInputVoltage::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
 - (void)subscribeAttributeWiredAssessedInputVoltageWithMinInterval:(NSNumber * _Nonnull)minInterval
@@ -14455,7 +14458,7 @@
                                                      reportHandler:(void (^)(NSNumber * _Nullable value,
                                                                        NSError * _Nullable error))reportHandler
 {
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -14463,11 +14466,11 @@
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
             using TypeInfo = PowerSource::Attributes::WiredAssessedInputVoltage::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
@@ -14480,7 +14483,7 @@
                                                completionHandler:(void (^)(NSNumber * _Nullable value,
                                                                      NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
             using TypeInfo = PowerSource::Attributes::WiredAssessedInputVoltage::TypeInfo;
@@ -14489,7 +14492,7 @@
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -14502,12 +14505,13 @@
 - (void)readAttributeWiredAssessedInputFrequencyWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                           NSError * _Nullable error))completionHandler
 {
-    new MTRInt16uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::WiredAssessedInputFrequency::TypeInfo;
-        auto successFn = Callback<Int16uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRNullableInt16uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::WiredAssessedInputFrequency::TypeInfo;
+            auto successFn = Callback<NullableInt16uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
 - (void)subscribeAttributeWiredAssessedInputFrequencyWithMinInterval:(NSNumber * _Nonnull)minInterval
@@ -14518,7 +14522,7 @@
                                                        reportHandler:(void (^)(NSNumber * _Nullable value,
                                                                          NSError * _Nullable error))reportHandler
 {
-    new MTRInt16uAttributeCallbackSubscriptionBridge(
+    new MTRNullableInt16uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -14526,11 +14530,11 @@
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
             using TypeInfo = PowerSource::Attributes::WiredAssessedInputFrequency::TypeInfo;
-            auto successFn = Callback<Int16uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt16uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt16uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRNullableInt16uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
@@ -14543,7 +14547,7 @@
                                                  completionHandler:(void (^)(NSNumber * _Nullable value,
                                                                        NSError * _Nullable error))completionHandler
 {
-    new MTRInt16uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRNullableInt16uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
             using TypeInfo = PowerSource::Attributes::WiredAssessedInputFrequency::TypeInfo;
@@ -14552,7 +14556,7 @@
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int16uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt16uAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -14565,12 +14569,13 @@
 - (void)readAttributeWiredCurrentTypeWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::WiredCurrentType::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::WiredCurrentType::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterWiredCurrentTypeAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
 - (void)subscribeAttributeWiredCurrentTypeWithMinInterval:(NSNumber * _Nonnull)minInterval
@@ -14580,7 +14585,7 @@
                                             reportHandler:
                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
+    new MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -14588,11 +14593,11 @@
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
             using TypeInfo = PowerSource::Attributes::WiredCurrentType::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<PowerSourceClusterWiredCurrentTypeAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
@@ -14605,34 +14610,36 @@
                                       completionHandler:
                                           (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::WiredCurrentType::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
+    new MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(
+        queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            if (attributeCacheContainer.cppAttributeCache) {
+                chip::app::ConcreteAttributePath path;
+                using TypeInfo = PowerSource::Attributes::WiredCurrentType::TypeInfo;
+                path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+                path.mClusterId = TypeInfo::GetClusterId();
+                path.mAttributeId = TypeInfo::GetAttributeId();
+                TypeInfo::DecodableType value;
+                CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+                auto successFn = Callback<PowerSourceClusterWiredCurrentTypeAttributeCallback>::FromCancelable(success);
+                if (err == CHIP_NO_ERROR) {
+                    successFn->mCall(successFn->mContext, value);
+                }
+                return err;
             }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
+            return CHIP_ERROR_NOT_FOUND;
+        });
 }
 
 - (void)readAttributeWiredAssessedCurrentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                    NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::WiredAssessedCurrent::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::WiredAssessedCurrent::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
 - (void)subscribeAttributeWiredAssessedCurrentWithMinInterval:(NSNumber * _Nonnull)minInterval
@@ -14643,7 +14650,7 @@
                                                 reportHandler:
                                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
@@ -14651,11 +14658,11 @@
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
             using TypeInfo = PowerSource::Attributes::WiredAssessedCurrent::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
@@ -14668,7 +14675,7 @@
                                           completionHandler:
                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
             using TypeInfo = PowerSource::Attributes::WiredAssessedCurrent::TypeInfo;
@@ -14677,7 +14684,7 @@
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -14938,122 +14945,312 @@
         });
 }
 
-- (void)readAttributeBatteryVoltageWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                             NSError * _Nullable error))completionHandler
+- (void)readAttributeBatVoltageWithCompletionHandler:(void (^)(
+                                                         NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryVoltage::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatVoltage::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeBatVoltageWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                             params:(MTRSubscribeParams * _Nullable)params
+                            subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatVoltage::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatVoltageWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                         endpoint:(NSNumber *)endpoint
+                                            queue:(dispatch_queue_t)queue
+                                completionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatVoltage::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
     });
 }
 
-- (void)subscribeAttributeBatteryVoltageWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)readAttributeBatPercentRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                  NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt8uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatPercentRemaining::TypeInfo;
+            auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeBatPercentRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                      params:(MTRSubscribeParams * _Nullable)params
+                                     subscriptionEstablished:
+                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                               reportHandler:
+                                                   (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRNullableInt8uAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatPercentRemaining::TypeInfo;
+            auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRNullableInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatPercentRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                  endpoint:(NSNumber *)endpoint
+                                                     queue:(dispatch_queue_t)queue
+                                         completionHandler:
+                                             (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatPercentRemaining::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<NullableInt8uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatTimeRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                               NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatTimeRemaining::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeBatTimeRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                              maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                   params:(MTRSubscribeParams * _Nullable)params
+                                  subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                            reportHandler:
+                                                (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatTimeRemaining::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatTimeRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                               endpoint:(NSNumber *)endpoint
+                                                  queue:(dispatch_queue_t)queue
+                                      completionHandler:
+                                          (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatTimeRemaining::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatChargeLevelWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                             NSError * _Nullable error))completionHandler
+{
+    new MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatChargeLevel::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatChargeLevelAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeBatChargeLevelWithMinInterval:(NSNumber * _Nonnull)minInterval
                                             maxInterval:(NSNumber * _Nonnull)maxInterval
                                                  params:(MTRSubscribeParams * _Nullable)params
                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                           reportHandler:
                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
+    new MTRPowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryVoltage::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatChargeLevel::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatChargeLevelAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRPowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryVoltageWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatChargeLevelWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                              endpoint:(NSNumber *)endpoint
                                                 queue:(dispatch_queue_t)queue
                                     completionHandler:
                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryVoltage::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
+    new MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge(
+        queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            if (attributeCacheContainer.cppAttributeCache) {
+                chip::app::ConcreteAttributePath path;
+                using TypeInfo = PowerSource::Attributes::BatChargeLevel::TypeInfo;
+                path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+                path.mClusterId = TypeInfo::GetClusterId();
+                path.mAttributeId = TypeInfo::GetAttributeId();
+                TypeInfo::DecodableType value;
+                CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+                auto successFn = Callback<PowerSourceClusterBatChargeLevelAttributeCallback>::FromCancelable(success);
+                if (err == CHIP_NO_ERROR) {
+                    successFn->mCall(successFn->mContext, value);
+                }
+                return err;
             }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
+            return CHIP_ERROR_NOT_FOUND;
+        });
 }
 
-- (void)readAttributeBatteryPercentRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))completionHandler
+- (void)readAttributeBatReplacementNeededWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                   NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryPercentRemaining::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+    new MTRBooleanAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatReplacementNeeded::TypeInfo;
+        auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryPercentRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                     maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                          params:(MTRSubscribeParams * _Nullable)params
-                                         subscriptionEstablished:
-                                             (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                   reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatReplacementNeededWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                  maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                       params:(MTRSubscribeParams * _Nullable)params
+                                      subscriptionEstablished:
+                                          (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                reportHandler:
+                                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
+    new MTRBooleanAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryPercentRemaining::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatReplacementNeeded::TypeInfo;
+            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRBooleanAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryPercentRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                      endpoint:(NSNumber *)endpoint
-                                                         queue:(dispatch_queue_t)queue
-                                             completionHandler:
-                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
++ (void)readAttributeBatReplacementNeededWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                   endpoint:(NSNumber *)endpoint
+                                                      queue:(dispatch_queue_t)queue
+                                          completionHandler:
+                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRBooleanAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryPercentRemaining::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatReplacementNeeded::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -15063,18 +15260,269 @@
     });
 }
 
-- (void)readAttributeBatteryTimeRemainingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeBatReplaceabilityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                NSError * _Nullable error))completionHandler
+{
+    new MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatReplaceability::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatReplaceabilityAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeBatReplaceabilityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                               maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                    params:(MTRSubscribeParams * _Nullable)params
+                                   subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                             reportHandler:
+                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRPowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatReplaceability::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatReplaceabilityAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRPowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatReplaceabilityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                endpoint:(NSNumber *)endpoint
+                                                   queue:(dispatch_queue_t)queue
+                                       completionHandler:
+                                           (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge(
+        queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            if (attributeCacheContainer.cppAttributeCache) {
+                chip::app::ConcreteAttributePath path;
+                using TypeInfo = PowerSource::Attributes::BatReplaceability::TypeInfo;
+                path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+                path.mClusterId = TypeInfo::GetClusterId();
+                path.mAttributeId = TypeInfo::GetAttributeId();
+                TypeInfo::DecodableType value;
+                CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+                auto successFn = Callback<PowerSourceClusterBatReplaceabilityAttributeCallback>::FromCancelable(success);
+                if (err == CHIP_NO_ERROR) {
+                    successFn->mCall(successFn->mContext, value);
+                }
+                return err;
+            }
+            return CHIP_ERROR_NOT_FOUND;
+        });
+}
+
+- (void)readAttributeBatPresentWithCompletionHandler:(void (^)(
+                                                         NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRBooleanAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatPresent::TypeInfo;
+        auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+    });
+}
+
+- (void)subscribeAttributeBatPresentWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                             params:(MTRSubscribeParams * _Nullable)params
+                            subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRBooleanAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatPresent::TypeInfo;
+            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRBooleanAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatPresentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                         endpoint:(NSNumber *)endpoint
+                                            queue:(dispatch_queue_t)queue
+                                completionHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRBooleanAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatPresent::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeActiveBatFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
+                                                              NSError * _Nullable error))completionHandler
+{
+    new MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::ActiveBatFaults::TypeInfo;
+            auto successFn = Callback<PowerSourceActiveBatFaultsListAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
+}
+
+- (void)subscribeAttributeActiveBatFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                             maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                  params:(MTRSubscribeParams * _Nullable)params
+                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                           reportHandler:
+                                               (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::ActiveBatFaults::TypeInfo;
+            auto successFn = Callback<PowerSourceActiveBatFaultsListAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeActiveBatFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                              endpoint:(NSNumber *)endpoint
+                                                 queue:(dispatch_queue_t)queue
+                                     completionHandler:
+                                         (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(
+        queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            if (attributeCacheContainer.cppAttributeCache) {
+                chip::app::ConcreteAttributePath path;
+                using TypeInfo = PowerSource::Attributes::ActiveBatFaults::TypeInfo;
+                path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+                path.mClusterId = TypeInfo::GetClusterId();
+                path.mAttributeId = TypeInfo::GetAttributeId();
+                TypeInfo::DecodableType value;
+                CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+                auto successFn = Callback<PowerSourceActiveBatFaultsListAttributeCallback>::FromCancelable(success);
+                if (err == CHIP_NO_ERROR) {
+                    successFn->mCall(successFn->mContext, value);
+                }
+                return err;
+            }
+            return CHIP_ERROR_NOT_FOUND;
+        });
+}
+
+- (void)readAttributeBatReplacementDescriptionWithCompletionHandler:(void (^)(NSString * _Nullable value,
+                                                                        NSError * _Nullable error))completionHandler
+{
+    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatReplacementDescription::TypeInfo;
+        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
+        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+    });
+}
+
+- (void)subscribeAttributeBatReplacementDescriptionWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                       maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                            params:(MTRSubscribeParams * _Nullable)params
+                                           subscriptionEstablished:
+                                               (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                     reportHandler:(void (^)(NSString * _Nullable value,
+                                                                       NSError * _Nullable error))reportHandler
+{
+    new MTRCharStringAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatReplacementDescription::TypeInfo;
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatReplacementDescriptionWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                        endpoint:(NSNumber *)endpoint
+                                                           queue:(dispatch_queue_t)queue
+                                               completionHandler:(void (^)(NSString * _Nullable value,
+                                                                     NSError * _Nullable error))completionHandler
+{
+    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatReplacementDescription::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatCommonDesignationWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                    NSError * _Nullable error))completionHandler
 {
     new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryTimeRemaining::TypeInfo;
+        using TypeInfo = PowerSource::Attributes::BatCommonDesignation::TypeInfo;
         auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryTimeRemainingWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatCommonDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
                                                        params:(MTRSubscribeParams * _Nullable)params
                                       subscriptionEstablished:
@@ -15089,7 +15537,7 @@
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryTimeRemaining::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatCommonDesignation::TypeInfo;
             auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
@@ -15101,7 +15549,7 @@
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryTimeRemainingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatCommonDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                                    endpoint:(NSNumber *)endpoint
                                                       queue:(dispatch_queue_t)queue
                                           completionHandler:
@@ -15110,7 +15558,7 @@
     new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryTimeRemaining::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatCommonDesignation::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
@@ -15126,59 +15574,59 @@
     });
 }
 
-- (void)readAttributeBatteryChargeLevelWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeBatANSIDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
                                                                  NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryChargeLevel::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatANSIDesignation::TypeInfo;
+        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryChargeLevelWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatANSIDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
                                                      params:(MTRSubscribeParams * _Nullable)params
                                     subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                               reportHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+                                                  (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
+    new MTRCharStringAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryChargeLevel::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatANSIDesignation::TypeInfo;
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryChargeLevelWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatANSIDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                                  endpoint:(NSNumber *)endpoint
                                                     queue:(dispatch_queue_t)queue
                                         completionHandler:
-                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+                                            (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryChargeLevel::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatANSIDesignation::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -15188,60 +15636,59 @@
     });
 }
 
-- (void)readAttributeBatteryReplacementNeededWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler
+- (void)readAttributeBatIECDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
+                                                                NSError * _Nullable error))completionHandler
 {
-    new MTRBooleanAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryReplacementNeeded::TypeInfo;
-        auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatIECDesignation::TypeInfo;
+        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryReplacementNeededWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatIECDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                               maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                    params:(MTRSubscribeParams * _Nullable)params
+                                   subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                             reportHandler:
+                                                 (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRBooleanAttributeCallbackSubscriptionBridge(
+    new MTRCharStringAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryReplacementNeeded::TypeInfo;
-            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatIECDesignation::TypeInfo;
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRBooleanAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryReplacementNeededWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
++ (void)readAttributeBatIECDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                endpoint:(NSNumber *)endpoint
+                                                   queue:(dispatch_queue_t)queue
+                                       completionHandler:
+                                           (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRBooleanAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryReplacementNeeded::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatIECDesignation::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -15251,24 +15698,146 @@
     });
 }
 
-- (void)readAttributeBatteryReplaceabilityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler
+- (void)readAttributeBatApprovedChemistryWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                   NSError * _Nullable error))completionHandler
+{
+    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatApprovedChemistry::TypeInfo;
+        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+    });
+}
+
+- (void)subscribeAttributeBatApprovedChemistryWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                  maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                       params:(MTRSubscribeParams * _Nullable)params
+                                      subscriptionEstablished:
+                                          (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                reportHandler:
+                                                    (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRInt32uAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatApprovedChemistry::TypeInfo;
+            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatApprovedChemistryWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                   endpoint:(NSNumber *)endpoint
+                                                      queue:(dispatch_queue_t)queue
+                                          completionHandler:
+                                              (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatApprovedChemistry::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatCapacityWithCompletionHandler:(void (^)(
+                                                          NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        using TypeInfo = PowerSource::Attributes::BatCapacity::TypeInfo;
+        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+    });
+}
+
+- (void)subscribeAttributeBatCapacityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                         maxInterval:(NSNumber * _Nonnull)maxInterval
+                                              params:(MTRSubscribeParams * _Nullable)params
+                             subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    new MTRInt32uAttributeCallbackSubscriptionBridge(
+        self.callbackQueue, reportHandler,
+        ^(Cancelable * success, Cancelable * failure) {
+            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
+                // We don't support disabling auto-resubscribe.
+                return CHIP_ERROR_INVALID_ARGUMENT;
+            }
+            using TypeInfo = PowerSource::Attributes::BatCapacity::TypeInfo;
+            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
+                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
+                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
+                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
+        },
+        subscriptionEstablishedHandler);
+}
+
++ (void)readAttributeBatCapacityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                          endpoint:(NSNumber *)endpoint
+                                             queue:(dispatch_queue_t)queue
+                                 completionHandler:
+                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatCapacity::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatQuantityWithCompletionHandler:(void (^)(
+                                                          NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
     new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryReplaceability::TypeInfo;
+        using TypeInfo = PowerSource::Attributes::BatQuantity::TypeInfo;
         auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryReplaceabilityWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                        params:(MTRSubscribeParams * _Nullable)params
-                                       subscriptionEstablished:
-                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                 reportHandler:
-                                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatQuantityWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                         maxInterval:(NSNumber * _Nonnull)maxInterval
+                                              params:(MTRSubscribeParams * _Nullable)params
+                             subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
     new MTRInt8uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
@@ -15277,7 +15846,7 @@
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryReplaceability::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatQuantity::TypeInfo;
             auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
@@ -15289,16 +15858,16 @@
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryReplaceabilityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                    endpoint:(NSNumber *)endpoint
-                                                       queue:(dispatch_queue_t)queue
-                                           completionHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
++ (void)readAttributeBatQuantityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                          endpoint:(NSNumber *)endpoint
+                                             queue:(dispatch_queue_t)queue
+                                 completionHandler:
+                                     (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
     new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryReplaceability::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatQuantity::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
@@ -15314,124 +15883,61 @@
     });
 }
 
-- (void)readAttributeBatteryPresentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+- (void)readAttributeBatChargeStateWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                              NSError * _Nullable error))completionHandler
 {
-    new MTRBooleanAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryPresent::TypeInfo;
-        auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatChargeState::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatChargeStateAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
-- (void)subscribeAttributeBatteryPresentWithMinInterval:(NSNumber * _Nonnull)minInterval
+- (void)subscribeAttributeBatChargeStateWithMinInterval:(NSNumber * _Nonnull)minInterval
                                             maxInterval:(NSNumber * _Nonnull)maxInterval
                                                  params:(MTRSubscribeParams * _Nullable)params
                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
                                           reportHandler:
                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRBooleanAttributeCallbackSubscriptionBridge(
+    new MTRPowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryPresent::TypeInfo;
-            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatChargeState::TypeInfo;
+            auto successFn = Callback<PowerSourceClusterBatChargeStateAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRBooleanAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRPowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryPresentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
++ (void)readAttributeBatChargeStateWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
                                              endpoint:(NSNumber *)endpoint
                                                 queue:(dispatch_queue_t)queue
                                     completionHandler:
                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRBooleanAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryPresent::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeActiveBatteryFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
-                                                                  NSError * _Nullable error))completionHandler
-{
-    new MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(
-        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-            using TypeInfo = PowerSource::Attributes::ActiveBatteryFaults::TypeInfo;
-            auto successFn = Callback<PowerSourceActiveBatteryFaultsListAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-        });
-}
-
-- (void)subscribeAttributeActiveBatteryFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                      params:(MTRSubscribeParams * _Nullable)params
-                                     subscriptionEstablished:
-                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                               reportHandler:
-                                                   (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::ActiveBatteryFaults::TypeInfo;
-            auto successFn = Callback<PowerSourceActiveBatteryFaultsListAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeActiveBatteryFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                  endpoint:(NSNumber *)endpoint
-                                                     queue:(dispatch_queue_t)queue
-                                         completionHandler:
-                                             (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(
+    new MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge(
         queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
             if (attributeCacheContainer.cppAttributeCache) {
                 chip::app::ConcreteAttributePath path;
-                using TypeInfo = PowerSource::Attributes::ActiveBatteryFaults::TypeInfo;
+                using TypeInfo = PowerSource::Attributes::BatChargeState::TypeInfo;
                 path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
                 path.mClusterId = TypeInfo::GetClusterId();
                 path.mAttributeId = TypeInfo::GetAttributeId();
                 TypeInfo::DecodableType value;
                 CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-                auto successFn = Callback<PowerSourceActiveBatteryFaultsListAttributeCallback>::FromCancelable(success);
+                auto successFn = Callback<PowerSourceClusterBatChargeStateAttributeCallback>::FromCancelable(success);
                 if (err == CHIP_NO_ERROR) {
                     successFn->mCall(successFn->mContext, value);
                 }
@@ -15441,588 +15947,88 @@
         });
 }
 
-- (void)readAttributeBatteryReplacementDescriptionWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                            NSError * _Nullable error))completionHandler
+- (void)readAttributeBatTimeToFullChargeWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                  NSError * _Nullable error))completionHandler
 {
-    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryReplacementDescription::TypeInfo;
-        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatTimeToFullCharge::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
-- (void)subscribeAttributeBatteryReplacementDescriptionWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                           maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                                params:(MTRSubscribeParams * _Nullable)params
-                                               subscriptionEstablished:
-                                                   (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                         reportHandler:(void (^)(NSString * _Nullable value,
-                                                                           NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatTimeToFullChargeWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                 maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                      params:(MTRSubscribeParams * _Nullable)params
+                                     subscriptionEstablished:
+                                         (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                               reportHandler:
+                                                   (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRCharStringAttributeCallbackSubscriptionBridge(
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryReplacementDescription::TypeInfo;
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatTimeToFullCharge::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryReplacementDescriptionWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                            endpoint:(NSNumber *)endpoint
-                                                               queue:(dispatch_queue_t)queue
-                                                   completionHandler:(void (^)(NSString * _Nullable value,
++ (void)readAttributeBatTimeToFullChargeWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                  endpoint:(NSNumber *)endpoint
+                                                     queue:(dispatch_queue_t)queue
+                                         completionHandler:
+                                             (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
+{
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+        if (attributeCacheContainer.cppAttributeCache) {
+            chip::app::ConcreteAttributePath path;
+            using TypeInfo = PowerSource::Attributes::BatTimeToFullCharge::TypeInfo;
+            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
+            path.mClusterId = TypeInfo::GetClusterId();
+            path.mAttributeId = TypeInfo::GetAttributeId();
+            TypeInfo::DecodableType value;
+            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            if (err == CHIP_NO_ERROR) {
+                successFn->mCall(successFn->mContext, value);
+            }
+            return err;
+        }
+        return CHIP_ERROR_NOT_FOUND;
+    });
+}
+
+- (void)readAttributeBatFunctionalWhileChargingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
                                                                          NSError * _Nullable error))completionHandler
 {
-    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryReplacementDescription::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryCommonDesignationWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryCommonDesignation::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryCommonDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler
-{
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryCommonDesignation::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryCommonDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryCommonDesignation::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryANSIDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                     NSError * _Nullable error))completionHandler
-{
-    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryANSIDesignation::TypeInfo;
-        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryANSIDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                    maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                         params:(MTRSubscribeParams * _Nullable)params
-                                        subscriptionEstablished:
-                                            (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                  reportHandler:
-                                                      (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRCharStringAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryANSIDesignation::TypeInfo;
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryANSIDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                     endpoint:(NSNumber *)endpoint
-                                                        queue:(dispatch_queue_t)queue
-                                            completionHandler:
-                                                (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryANSIDesignation::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryIECDesignationWithCompletionHandler:(void (^)(NSString * _Nullable value,
-                                                                    NSError * _Nullable error))completionHandler
-{
-    new MTRCharStringAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryIECDesignation::TypeInfo;
-        auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryIECDesignationWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                        params:(MTRSubscribeParams * _Nullable)params
-                                       subscriptionEstablished:
-                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                 reportHandler:
-                                                     (void (^)(NSString * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRCharStringAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryIECDesignation::TypeInfo;
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRCharStringAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryIECDesignationWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                    endpoint:(NSNumber *)endpoint
-                                                       queue:(dispatch_queue_t)queue
-                                           completionHandler:
-                                               (void (^)(NSString * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRCharStringAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryIECDesignation::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<CharStringAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryApprovedChemistryWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                       NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryApprovedChemistry::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryApprovedChemistryWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                      maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                           params:(MTRSubscribeParams * _Nullable)params
-                                          subscriptionEstablished:
-                                              (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                    reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))reportHandler
-{
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryApprovedChemistry::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryApprovedChemistryWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                       endpoint:(NSNumber *)endpoint
-                                                          queue:(dispatch_queue_t)queue
-                                              completionHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryApprovedChemistry::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryCapacityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                              NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryCapacity::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryCapacityWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                             maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                  params:(MTRSubscribeParams * _Nullable)params
-                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                           reportHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryCapacity::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryCapacityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                              endpoint:(NSNumber *)endpoint
-                                                 queue:(dispatch_queue_t)queue
-                                     completionHandler:
-                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryCapacity::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryQuantityWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                              NSError * _Nullable error))completionHandler
-{
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryQuantity::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryQuantityWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                             maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                  params:(MTRSubscribeParams * _Nullable)params
-                                 subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                           reportHandler:
-                                               (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryQuantity::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryQuantityWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                              endpoint:(NSNumber *)endpoint
-                                                 queue:(dispatch_queue_t)queue
-                                     completionHandler:
-                                         (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryQuantity::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryChargeStateWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                 NSError * _Nullable error))completionHandler
-{
-    new MTRInt8uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryChargeState::TypeInfo;
-        auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryChargeStateWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                     params:(MTRSubscribeParams * _Nullable)params
-                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                              reportHandler:
-                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
-{
-    new MTRInt8uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryChargeState::TypeInfo;
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt8uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryChargeStateWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                 endpoint:(NSNumber *)endpoint
-                                                    queue:(dispatch_queue_t)queue
-                                        completionHandler:
-                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt8uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryChargeState::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int8uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryTimeToFullChargeWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                      NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryTimeToFullCharge::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
-}
-
-- (void)subscribeAttributeBatteryTimeToFullChargeWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                     maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                          params:(MTRSubscribeParams * _Nullable)params
-                                         subscriptionEstablished:
-                                             (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                   reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))reportHandler
-{
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
-        self.callbackQueue, reportHandler,
-        ^(Cancelable * success, Cancelable * failure) {
-            if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                // We don't support disabling auto-resubscribe.
-                return CHIP_ERROR_INVALID_ARGUMENT;
-            }
-            using TypeInfo = PowerSource::Attributes::BatteryTimeToFullCharge::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
-                [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
-                params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
-                params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
-        },
-        subscriptionEstablishedHandler);
-}
-
-+ (void)readAttributeBatteryTimeToFullChargeWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                      endpoint:(NSNumber *)endpoint
-                                                         queue:(dispatch_queue_t)queue
-                                             completionHandler:
-                                                 (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
-{
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        if (attributeCacheContainer.cppAttributeCache) {
-            chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryTimeToFullCharge::TypeInfo;
-            path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
-            path.mClusterId = TypeInfo::GetClusterId();
-            path.mAttributeId = TypeInfo::GetAttributeId();
-            TypeInfo::DecodableType value;
-            CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-            if (err == CHIP_NO_ERROR) {
-                successFn->mCall(successFn->mContext, value);
-            }
-            return err;
-        }
-        return CHIP_ERROR_NOT_FOUND;
-    });
-}
-
-- (void)readAttributeBatteryFunctionalWhileChargingWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                             NSError * _Nullable error))completionHandler
-{
     new MTRBooleanAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryFunctionalWhileCharging::TypeInfo;
+        using TypeInfo = PowerSource::Attributes::BatFunctionalWhileCharging::TypeInfo;
         auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
         auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
         return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
     });
 }
 
-- (void)subscribeAttributeBatteryFunctionalWhileChargingWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                            maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                                 params:(MTRSubscribeParams * _Nullable)params
-                                                subscriptionEstablished:
-                                                    (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                          reportHandler:(void (^)(NSNumber * _Nullable value,
-                                                                            NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatFunctionalWhileChargingWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                        maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                             params:(MTRSubscribeParams * _Nullable)params
+                                            subscriptionEstablished:
+                                                (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                      reportHandler:(void (^)(NSNumber * _Nullable value,
+                                                                        NSError * _Nullable error))reportHandler
 {
     new MTRBooleanAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
@@ -16031,7 +16037,7 @@
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryFunctionalWhileCharging::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatFunctionalWhileCharging::TypeInfo;
             auto successFn = Callback<BooleanAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
@@ -16043,16 +16049,16 @@
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryFunctionalWhileChargingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                             endpoint:(NSNumber *)endpoint
-                                                                queue:(dispatch_queue_t)queue
-                                                    completionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                          NSError * _Nullable error))completionHandler
++ (void)readAttributeBatFunctionalWhileChargingWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                         endpoint:(NSNumber *)endpoint
+                                                            queue:(dispatch_queue_t)queue
+                                                completionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                      NSError * _Nullable error))completionHandler
 {
     new MTRBooleanAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryFunctionalWhileCharging::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatFunctionalWhileCharging::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
@@ -16068,60 +16074,60 @@
     });
 }
 
-- (void)readAttributeBatteryChargingCurrentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
-                                                                     NSError * _Nullable error))completionHandler
+- (void)readAttributeBatChargingCurrentWithCompletionHandler:(void (^)(NSNumber * _Nullable value,
+                                                                 NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-        using TypeInfo = PowerSource::Attributes::BatteryChargingCurrent::TypeInfo;
-        auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
-        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-        return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
-    });
+    new MTRNullableInt32uAttributeCallbackBridge(
+        self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+            using TypeInfo = PowerSource::Attributes::BatChargingCurrent::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
+        });
 }
 
-- (void)subscribeAttributeBatteryChargingCurrentWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                    maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                         params:(MTRSubscribeParams * _Nullable)params
-                                        subscriptionEstablished:
-                                            (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                  reportHandler:
-                                                      (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeBatChargingCurrentWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                     params:(MTRSubscribeParams * _Nullable)params
+                                    subscriptionEstablished:(SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                              reportHandler:
+                                                  (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRInt32uAttributeCallbackSubscriptionBridge(
+    new MTRNullableInt32uAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::BatteryChargingCurrent::TypeInfo;
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::BatChargingCurrent::TypeInfo;
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRNullableInt32uAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeBatteryChargingCurrentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                     endpoint:(NSNumber *)endpoint
-                                                        queue:(dispatch_queue_t)queue
-                                            completionHandler:
-                                                (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
++ (void)readAttributeBatChargingCurrentWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                 endpoint:(NSNumber *)endpoint
+                                                    queue:(dispatch_queue_t)queue
+                                        completionHandler:
+                                            (void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
+    new MTRNullableInt32uAttributeCallbackBridge(queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
         if (attributeCacheContainer.cppAttributeCache) {
             chip::app::ConcreteAttributePath path;
-            using TypeInfo = PowerSource::Attributes::BatteryChargingCurrent::TypeInfo;
+            using TypeInfo = PowerSource::Attributes::BatChargingCurrent::TypeInfo;
             path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
             path.mClusterId = TypeInfo::GetClusterId();
             path.mAttributeId = TypeInfo::GetAttributeId();
             TypeInfo::DecodableType value;
             CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-            auto successFn = Callback<Int32uAttributeCallback>::FromCancelable(success);
+            auto successFn = Callback<NullableInt32uAttributeCallback>::FromCancelable(success);
             if (err == CHIP_NO_ERROR) {
                 successFn->mCall(successFn->mContext, value);
             }
@@ -16131,62 +16137,62 @@
     });
 }
 
-- (void)readAttributeActiveBatteryChargeFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
-                                                                        NSError * _Nullable error))completionHandler
+- (void)readAttributeActiveBatChargeFaultsWithCompletionHandler:(void (^)(NSArray * _Nullable value,
+                                                                    NSError * _Nullable error))completionHandler
 {
-    new MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge(
+    new MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(
         self.callbackQueue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
-            using TypeInfo = PowerSource::Attributes::ActiveBatteryChargeFaults::TypeInfo;
-            auto successFn = Callback<PowerSourceActiveBatteryChargeFaultsListAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::ActiveBatChargeFaults::TypeInfo;
+            auto successFn = Callback<PowerSourceActiveBatChargeFaultsListAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->ReadAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall);
         });
 }
 
-- (void)subscribeAttributeActiveBatteryChargeFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
-                                                       maxInterval:(NSNumber * _Nonnull)maxInterval
-                                                            params:(MTRSubscribeParams * _Nullable)params
-                                           subscriptionEstablished:
-                                               (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
-                                                     reportHandler:(void (^)(NSArray * _Nullable value,
-                                                                       NSError * _Nullable error))reportHandler
+- (void)subscribeAttributeActiveBatChargeFaultsWithMinInterval:(NSNumber * _Nonnull)minInterval
+                                                   maxInterval:(NSNumber * _Nonnull)maxInterval
+                                                        params:(MTRSubscribeParams * _Nullable)params
+                                       subscriptionEstablished:
+                                           (SubscriptionEstablishedHandler _Nullable)subscriptionEstablishedHandler
+                                                 reportHandler:
+                                                     (void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
 {
-    new MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge(
+    new MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge(
         self.callbackQueue, reportHandler,
         ^(Cancelable * success, Cancelable * failure) {
             if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
                 // We don't support disabling auto-resubscribe.
                 return CHIP_ERROR_INVALID_ARGUMENT;
             }
-            using TypeInfo = PowerSource::Attributes::ActiveBatteryChargeFaults::TypeInfo;
-            auto successFn = Callback<PowerSourceActiveBatteryChargeFaultsListAttributeCallback>::FromCancelable(success);
+            using TypeInfo = PowerSource::Attributes::ActiveBatChargeFaults::TypeInfo;
+            auto successFn = Callback<PowerSourceActiveBatChargeFaultsListAttributeCallback>::FromCancelable(success);
             auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
             return self.cppCluster->SubscribeAttribute<TypeInfo>(successFn->mContext, successFn->mCall, failureFn->mCall,
                 [minInterval unsignedShortValue], [maxInterval unsignedShortValue],
-                MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
+                MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished, nil,
                 params == nil || params.fabricFiltered == nil || [params.fabricFiltered boolValue],
                 params != nil && params.keepPreviousSubscriptions != nil && [params.keepPreviousSubscriptions boolValue]);
         },
         subscriptionEstablishedHandler);
 }
 
-+ (void)readAttributeActiveBatteryChargeFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
-                                                        endpoint:(NSNumber *)endpoint
-                                                           queue:(dispatch_queue_t)queue
-                                               completionHandler:
-                                                   (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler
++ (void)readAttributeActiveBatChargeFaultsWithAttributeCache:(MTRAttributeCacheContainer *)attributeCacheContainer
+                                                    endpoint:(NSNumber *)endpoint
+                                                       queue:(dispatch_queue_t)queue
+                                           completionHandler:
+                                               (void (^)(NSArray * _Nullable value, NSError * _Nullable error))completionHandler
 {
-    new MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge(
+    new MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(
         queue, completionHandler, ^(Cancelable * success, Cancelable * failure) {
             if (attributeCacheContainer.cppAttributeCache) {
                 chip::app::ConcreteAttributePath path;
-                using TypeInfo = PowerSource::Attributes::ActiveBatteryChargeFaults::TypeInfo;
+                using TypeInfo = PowerSource::Attributes::ActiveBatChargeFaults::TypeInfo;
                 path.mEndpointId = static_cast<chip::EndpointId>([endpoint unsignedShortValue]);
                 path.mClusterId = TypeInfo::GetClusterId();
                 path.mAttributeId = TypeInfo::GetAttributeId();
                 TypeInfo::DecodableType value;
                 CHIP_ERROR err = attributeCacheContainer.cppAttributeCache->Get<TypeInfo>(path, value);
-                auto successFn = Callback<PowerSourceActiveBatteryChargeFaultsListAttributeCallback>::FromCancelable(success);
+                auto successFn = Callback<PowerSourceActiveBatChargeFaultsListAttributeCallback>::FromCancelable(success);
                 if (err == CHIP_NO_ERROR) {
                     successFn->mCall(successFn->mContext, value);
                 }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
index 8b4168c..b3ca2f7 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm
@@ -3503,7 +3503,7 @@
 }
 
 void MTRPowerSourceActiveWiredFaultsListAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & value)
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & value)
 {
     NSArray * _Nonnull objCValue;
     { // Scope for our temporary variables
@@ -3512,7 +3512,7 @@
         while (iter_0.Next()) {
             auto & entry_0 = iter_0.GetValue();
             NSNumber * newElement_0;
-            newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+            newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
             [array_0 addObject:newElement_0];
         }
         CHIP_ERROR err = iter_0.GetStatus();
@@ -3541,8 +3541,8 @@
     }
 }
 
-void MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & value)
+void MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge::OnSuccessFn(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & value)
 {
     NSArray * _Nonnull objCValue;
     { // Scope for our temporary variables
@@ -3551,7 +3551,7 @@
         while (iter_0.Next()) {
             auto & entry_0 = iter_0.GetValue();
             NSNumber * newElement_0;
-            newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+            newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
             [array_0 addObject:newElement_0];
         }
         CHIP_ERROR err = iter_0.GetStatus();
@@ -3564,9 +3564,9 @@
     DispatchSuccess(context, objCValue);
 };
 
-void MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -3580,8 +3580,8 @@
     }
 }
 
-void MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & value)
+void MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge::OnSuccessFn(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & value)
 {
     NSArray * _Nonnull objCValue;
     { // Scope for our temporary variables
@@ -3590,7 +3590,7 @@
         while (iter_0.Next()) {
             auto & entry_0 = iter_0.GetValue();
             NSNumber * newElement_0;
-            newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+            newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
             [array_0 addObject:newElement_0];
         }
         CHIP_ERROR err = iter_0.GetStatus();
@@ -3603,9 +3603,9 @@
     DispatchSuccess(context, objCValue);
 };
 
-void MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -14734,17 +14734,17 @@
     }
 }
 
-void MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, chip::app::Clusters::PowerSource::BatChargeFaultType value)
+void MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, chip::app::Clusters::PowerSource::BatChargeFault value)
 {
     NSNumber * _Nonnull objCValue;
     objCValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(value)];
     DispatchSuccess(context, objCValue);
 };
 
-void MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -14758,8 +14758,8 @@
     }
 }
 
-void MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFaultType> & value)
+void MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFault> & value)
 {
     NSNumber * _Nullable objCValue;
     if (value.IsNull()) {
@@ -14770,9 +14770,9 @@
     DispatchSuccess(context, objCValue);
 };
 
-void MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -14890,17 +14890,17 @@
     }
 }
 
-void MTRPowerSourceClusterBatFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, chip::app::Clusters::PowerSource::BatFaultType value)
+void MTRPowerSourceClusterBatFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, chip::app::Clusters::PowerSource::BatFault value)
 {
     NSNumber * _Nonnull objCValue;
     objCValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(value)];
     DispatchSuccess(context, objCValue);
 };
 
-void MTRPowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRPowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -14914,8 +14914,8 @@
     }
 }
 
-void MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFaultType> & value)
+void MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFault> & value)
 {
     NSNumber * _Nullable objCValue;
     if (value.IsNull()) {
@@ -14926,9 +14926,9 @@
     DispatchSuccess(context, objCValue);
 };
 
-void MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -15098,17 +15098,17 @@
     }
 }
 
-void MTRPowerSourceClusterWiredFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, chip::app::Clusters::PowerSource::WiredFaultType value)
+void MTRPowerSourceClusterWiredFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, chip::app::Clusters::PowerSource::WiredFault value)
 {
     NSNumber * _Nonnull objCValue;
     objCValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(value)];
     DispatchSuccess(context, objCValue);
 };
 
-void MTRPowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRPowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
@@ -15122,8 +15122,8 @@
     }
 }
 
-void MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackBridge::OnSuccessFn(
-    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFaultType> & value)
+void MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge::OnSuccessFn(
+    void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFault> & value)
 {
     NSNumber * _Nullable objCValue;
     if (value.IsNull()) {
@@ -15134,9 +15134,9 @@
     DispatchSuccess(context, objCValue);
 };
 
-void MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
+void MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished(void * context)
 {
-    auto * self = static_cast<MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge *>(context);
+    auto * self = static_cast<MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge *>(context);
     if (!self->mQueue) {
         return;
     }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
index 6424599..c8bd645 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge_internal.h
@@ -238,18 +238,18 @@
 typedef void (*UnitLocalizationClusterTempUnitAttributeCallback)(void *, chip::app::Clusters::UnitLocalization::TempUnit);
 typedef void (*NullableUnitLocalizationClusterTempUnitAttributeCallback)(
     void *, const chip::app::DataModel::Nullable<chip::app::Clusters::UnitLocalization::TempUnit> &);
-typedef void (*PowerSourceClusterBatChargeFaultTypeAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeFaultType);
-typedef void (*NullablePowerSourceClusterBatChargeFaultTypeAttributeCallback)(
-    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFaultType> &);
+typedef void (*PowerSourceClusterBatChargeFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeFault);
+typedef void (*NullablePowerSourceClusterBatChargeFaultAttributeCallback)(
+    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFault> &);
 typedef void (*PowerSourceClusterBatChargeLevelAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeLevel);
 typedef void (*NullablePowerSourceClusterBatChargeLevelAttributeCallback)(
     void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeLevel> &);
 typedef void (*PowerSourceClusterBatChargeStateAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeState);
 typedef void (*NullablePowerSourceClusterBatChargeStateAttributeCallback)(
     void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeState> &);
-typedef void (*PowerSourceClusterBatFaultTypeAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatFaultType);
-typedef void (*NullablePowerSourceClusterBatFaultTypeAttributeCallback)(
-    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFaultType> &);
+typedef void (*PowerSourceClusterBatFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatFault);
+typedef void (*NullablePowerSourceClusterBatFaultAttributeCallback)(
+    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFault> &);
 typedef void (*PowerSourceClusterBatReplaceabilityAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatReplaceability);
 typedef void (*NullablePowerSourceClusterBatReplaceabilityAttributeCallback)(
     void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatReplaceability> &);
@@ -259,9 +259,9 @@
 typedef void (*PowerSourceClusterWiredCurrentTypeAttributeCallback)(void *, chip::app::Clusters::PowerSource::WiredCurrentType);
 typedef void (*NullablePowerSourceClusterWiredCurrentTypeAttributeCallback)(
     void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredCurrentType> &);
-typedef void (*PowerSourceClusterWiredFaultTypeAttributeCallback)(void *, chip::app::Clusters::PowerSource::WiredFaultType);
-typedef void (*NullablePowerSourceClusterWiredFaultTypeAttributeCallback)(
-    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFaultType> &);
+typedef void (*PowerSourceClusterWiredFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::WiredFault);
+typedef void (*NullablePowerSourceClusterWiredFaultAttributeCallback)(
+    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFault> &);
 typedef void (*GeneralCommissioningClusterCommissioningErrorAttributeCallback)(
     void *, chip::app::Clusters::GeneralCommissioning::CommissioningError);
 typedef void (*NullableGeneralCommissioningClusterCommissioningErrorAttributeCallback)(
@@ -706,12 +706,12 @@
     void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
 typedef void (*PowerSourceConfigurationAttributeListListAttributeCallback)(
     void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
-typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)(void * context,
-                                                                  const chip::app::DataModel::DecodableList<uint8_t> & data);
-typedef void (*PowerSourceActiveBatteryFaultsListAttributeCallback)(void * context,
-                                                                    const chip::app::DataModel::DecodableList<uint8_t> & data);
-typedef void (*PowerSourceActiveBatteryChargeFaultsListAttributeCallback)(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & data);
+typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & data);
+typedef void (*PowerSourceActiveBatFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & data);
+typedef void (*PowerSourceActiveBatChargeFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & data);
 typedef void (*PowerSourceGeneratedCommandListListAttributeCallback)(
     void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
 typedef void (*PowerSourceAcceptedCommandListListAttributeCallback)(
@@ -3757,7 +3757,8 @@
                                                                MTRActionBlock action, bool keepAlive = false) :
         MTRCallbackBridge<PowerSourceActiveWiredFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
+    static void OnSuccessFn(void * context,
+                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & value);
 };
 
 class MTRPowerSourceActiveWiredFaultsListAttributeCallbackSubscriptionBridge
@@ -3777,25 +3778,26 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge
-    : public MTRCallbackBridge<PowerSourceActiveBatteryFaultsListAttributeCallback>
+class MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge
+    : public MTRCallbackBridge<PowerSourceActiveBatFaultsListAttributeCallback>
 {
 public:
-    MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                 MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<PowerSourceActiveBatteryFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
+    MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
+                                                             bool keepAlive = false) :
+        MTRCallbackBridge<PowerSourceActiveBatFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
+    static void OnSuccessFn(void * context,
+                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & value);
 };
 
-class MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge
-    : public MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge
+class MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge
+    : public MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge
 {
 public:
-    MTRPowerSourceActiveBatteryFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                             MTRActionBlock action,
-                                                                             SubscriptionEstablishedHandler establishedHandler) :
-        MTRPowerSourceActiveBatteryFaultsListAttributeCallbackBridge(queue, handler, action, true),
+    MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                         MTRActionBlock action,
+                                                                         SubscriptionEstablishedHandler establishedHandler) :
+        MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -3805,25 +3807,26 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge
-    : public MTRCallbackBridge<PowerSourceActiveBatteryChargeFaultsListAttributeCallback>
+class MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge
+    : public MTRCallbackBridge<PowerSourceActiveBatChargeFaultsListAttributeCallback>
 {
 public:
-    MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                       MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<PowerSourceActiveBatteryChargeFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
-                                                                                     keepAlive){};
+    MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                   MTRActionBlock action, bool keepAlive = false) :
+        MTRCallbackBridge<PowerSourceActiveBatChargeFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
+    static void OnSuccessFn(void * context,
+                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & value);
 };
 
-class MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge
-    : public MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge
+class MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge
+    : public MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge
 {
 public:
-    MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackSubscriptionBridge(
-        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
-        MTRPowerSourceActiveBatteryChargeFaultsListAttributeCallbackBridge(queue, handler, action, true),
+    MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                               MTRActionBlock action,
+                                                                               SubscriptionEstablishedHandler establishedHandler) :
+        MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -11594,25 +11597,25 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<PowerSourceClusterBatChargeFaultTypeAttributeCallback>
+class MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge
+    : public MTRCallbackBridge<PowerSourceClusterBatChargeFaultAttributeCallback>
 {
 public:
-    MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                   MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<PowerSourceClusterBatChargeFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
+    MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                               MTRActionBlock action, bool keepAlive = false) :
+        MTRCallbackBridge<PowerSourceClusterBatChargeFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatChargeFaultType value);
+    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatChargeFault value);
 };
 
-class MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge
+class MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge
+    : public MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge
 {
 public:
-    MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                               MTRActionBlock action,
-                                                                               SubscriptionEstablishedHandler establishedHandler) :
-        MTRPowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+    MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                           MTRActionBlock action,
+                                                                           SubscriptionEstablishedHandler establishedHandler) :
+        MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -11622,26 +11625,26 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultTypeAttributeCallback>
+class MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge
+    : public MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultAttributeCallback>
 {
 public:
-    MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                           MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
-                                                                                         keepAlive){};
+    MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                       MTRActionBlock action, bool keepAlive = false) :
+        MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultAttributeCallback>(queue, handler, action, OnSuccessFn,
+                                                                                     keepAlive){};
 
     static void OnSuccessFn(void * context,
-                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFaultType> & value);
+                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFault> & value);
 };
 
-class MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge
+class MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge
+    : public MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge
 {
 public:
-    MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackSubscriptionBridge(
+    MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge(
         dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
-        MTRNullablePowerSourceClusterBatChargeFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+        MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -11765,25 +11768,23 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRPowerSourceClusterBatFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<PowerSourceClusterBatFaultTypeAttributeCallback>
+class MTRPowerSourceClusterBatFaultAttributeCallbackBridge : public MTRCallbackBridge<PowerSourceClusterBatFaultAttributeCallback>
 {
 public:
-    MTRPowerSourceClusterBatFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
-                                                             bool keepAlive = false) :
-        MTRCallbackBridge<PowerSourceClusterBatFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
+    MTRPowerSourceClusterBatFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
+                                                         bool keepAlive = false) :
+        MTRCallbackBridge<PowerSourceClusterBatFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatFaultType value);
+    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatFault value);
 };
 
-class MTRPowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRPowerSourceClusterBatFaultTypeAttributeCallbackBridge
+class MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge : public MTRPowerSourceClusterBatFaultAttributeCallbackBridge
 {
 public:
-    MTRPowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                         MTRActionBlock action,
-                                                                         SubscriptionEstablishedHandler establishedHandler) :
-        MTRPowerSourceClusterBatFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+    MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                     MTRActionBlock action,
+                                                                     SubscriptionEstablishedHandler establishedHandler) :
+        MTRPowerSourceClusterBatFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -11793,26 +11794,26 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<NullablePowerSourceClusterBatFaultTypeAttributeCallback>
+class MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge
+    : public MTRCallbackBridge<NullablePowerSourceClusterBatFaultAttributeCallback>
 {
 public:
-    MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                     MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<NullablePowerSourceClusterBatFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
-                                                                                   keepAlive){};
+    MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                 MTRActionBlock action, bool keepAlive = false) :
+        MTRCallbackBridge<NullablePowerSourceClusterBatFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
     static void OnSuccessFn(void * context,
-                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFaultType> & value);
+                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFault> & value);
 };
 
-class MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackBridge
+class MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge
+    : public MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge
 {
 public:
-    MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackSubscriptionBridge(
-        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
-        MTRNullablePowerSourceClusterBatFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+    MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                             MTRActionBlock action,
+                                                                             SubscriptionEstablishedHandler establishedHandler) :
+        MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -11993,25 +11994,25 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRPowerSourceClusterWiredFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<PowerSourceClusterWiredFaultTypeAttributeCallback>
+class MTRPowerSourceClusterWiredFaultAttributeCallbackBridge
+    : public MTRCallbackBridge<PowerSourceClusterWiredFaultAttributeCallback>
 {
 public:
-    MTRPowerSourceClusterWiredFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                               MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<PowerSourceClusterWiredFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
+    MTRPowerSourceClusterWiredFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
+                                                           bool keepAlive = false) :
+        MTRCallbackBridge<PowerSourceClusterWiredFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
-    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::WiredFaultType value);
+    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::WiredFault value);
 };
 
-class MTRPowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRPowerSourceClusterWiredFaultTypeAttributeCallbackBridge
+class MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge
+    : public MTRPowerSourceClusterWiredFaultAttributeCallbackBridge
 {
 public:
-    MTRPowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                           MTRActionBlock action,
-                                                                           SubscriptionEstablishedHandler establishedHandler) :
-        MTRPowerSourceClusterWiredFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+    MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                       MTRActionBlock action,
+                                                                       SubscriptionEstablishedHandler establishedHandler) :
+        MTRPowerSourceClusterWiredFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
@@ -12021,26 +12022,26 @@
     SubscriptionEstablishedHandler mEstablishedHandler;
 };
 
-class MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackBridge
-    : public MTRCallbackBridge<NullablePowerSourceClusterWiredFaultTypeAttributeCallback>
+class MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge
+    : public MTRCallbackBridge<NullablePowerSourceClusterWiredFaultAttributeCallback>
 {
 public:
-    MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
-                                                                       MTRActionBlock action, bool keepAlive = false) :
-        MTRCallbackBridge<NullablePowerSourceClusterWiredFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
-                                                                                     keepAlive){};
+    MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                   MTRActionBlock action, bool keepAlive = false) :
+        MTRCallbackBridge<NullablePowerSourceClusterWiredFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};
 
     static void OnSuccessFn(void * context,
-                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFaultType> & value);
+                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFault> & value);
 };
 
-class MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge
-    : public MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackBridge
+class MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge
+    : public MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge
 {
 public:
-    MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackSubscriptionBridge(
-        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
-        MTRNullablePowerSourceClusterWiredFaultTypeAttributeCallbackBridge(queue, handler, action, true),
+    MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
+                                                                               MTRActionBlock action,
+                                                                               SubscriptionEstablishedHandler establishedHandler) :
+        MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge(queue, handler, action, true),
         mEstablishedHandler(establishedHandler)
     {}
 
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
index 96d1a32..e271b9c 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
@@ -518,26 +518,26 @@
     MTRClusterPowerSourceAttributeWiredMaximumCurrentID = 0x00000008,
     MTRClusterPowerSourceAttributeWiredPresentID = 0x00000009,
     MTRClusterPowerSourceAttributeActiveWiredFaultsID = 0x0000000A,
-    MTRClusterPowerSourceAttributeBatteryVoltageID = 0x0000000B,
-    MTRClusterPowerSourceAttributeBatteryPercentRemainingID = 0x0000000C,
-    MTRClusterPowerSourceAttributeBatteryTimeRemainingID = 0x0000000D,
-    MTRClusterPowerSourceAttributeBatteryChargeLevelID = 0x0000000E,
-    MTRClusterPowerSourceAttributeBatteryReplacementNeededID = 0x0000000F,
-    MTRClusterPowerSourceAttributeBatteryReplaceabilityID = 0x00000010,
-    MTRClusterPowerSourceAttributeBatteryPresentID = 0x00000011,
-    MTRClusterPowerSourceAttributeActiveBatteryFaultsID = 0x00000012,
-    MTRClusterPowerSourceAttributeBatteryReplacementDescriptionID = 0x00000013,
-    MTRClusterPowerSourceAttributeBatteryCommonDesignationID = 0x00000014,
-    MTRClusterPowerSourceAttributeBatteryANSIDesignationID = 0x00000015,
-    MTRClusterPowerSourceAttributeBatteryIECDesignationID = 0x00000016,
-    MTRClusterPowerSourceAttributeBatteryApprovedChemistryID = 0x00000017,
-    MTRClusterPowerSourceAttributeBatteryCapacityID = 0x00000018,
-    MTRClusterPowerSourceAttributeBatteryQuantityID = 0x00000019,
-    MTRClusterPowerSourceAttributeBatteryChargeStateID = 0x0000001A,
-    MTRClusterPowerSourceAttributeBatteryTimeToFullChargeID = 0x0000001B,
-    MTRClusterPowerSourceAttributeBatteryFunctionalWhileChargingID = 0x0000001C,
-    MTRClusterPowerSourceAttributeBatteryChargingCurrentID = 0x0000001D,
-    MTRClusterPowerSourceAttributeActiveBatteryChargeFaultsID = 0x0000001E,
+    MTRClusterPowerSourceAttributeBatVoltageID = 0x0000000B,
+    MTRClusterPowerSourceAttributeBatPercentRemainingID = 0x0000000C,
+    MTRClusterPowerSourceAttributeBatTimeRemainingID = 0x0000000D,
+    MTRClusterPowerSourceAttributeBatChargeLevelID = 0x0000000E,
+    MTRClusterPowerSourceAttributeBatReplacementNeededID = 0x0000000F,
+    MTRClusterPowerSourceAttributeBatReplaceabilityID = 0x00000010,
+    MTRClusterPowerSourceAttributeBatPresentID = 0x00000011,
+    MTRClusterPowerSourceAttributeActiveBatFaultsID = 0x00000012,
+    MTRClusterPowerSourceAttributeBatReplacementDescriptionID = 0x00000013,
+    MTRClusterPowerSourceAttributeBatCommonDesignationID = 0x00000014,
+    MTRClusterPowerSourceAttributeBatANSIDesignationID = 0x00000015,
+    MTRClusterPowerSourceAttributeBatIECDesignationID = 0x00000016,
+    MTRClusterPowerSourceAttributeBatApprovedChemistryID = 0x00000017,
+    MTRClusterPowerSourceAttributeBatCapacityID = 0x00000018,
+    MTRClusterPowerSourceAttributeBatQuantityID = 0x00000019,
+    MTRClusterPowerSourceAttributeBatChargeStateID = 0x0000001A,
+    MTRClusterPowerSourceAttributeBatTimeToFullChargeID = 0x0000001B,
+    MTRClusterPowerSourceAttributeBatFunctionalWhileChargingID = 0x0000001C,
+    MTRClusterPowerSourceAttributeBatChargingCurrentID = 0x0000001D,
+    MTRClusterPowerSourceAttributeActiveBatChargeFaultsID = 0x0000001E,
     MTRClusterPowerSourceAttributeGeneratedCommandListID = MTRClusterGlobalAttributeGeneratedCommandListID,
     MTRClusterPowerSourceAttributeAcceptedCommandListID = MTRClusterGlobalAttributeAcceptedCommandListID,
     MTRClusterPowerSourceAttributeAttributeListID = MTRClusterGlobalAttributeAttributeListID,
diff --git a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
index 8c16bb9..11dd326 100644
--- a/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/all-clusters-app/zap-generated/endpoint_config.h
@@ -496,9 +496,9 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },             /* Status */                                 \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(3) },             /* Order */                                  \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(6) }, /* Description */                            \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },             /* BatteryChargeLevel */                     \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },             /* BatteryReplacementNeeded */               \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },               /* BatteryReplaceability */                  \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },             /* BatChargeLevel */                         \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },             /* BatReplacementNeeded */                   \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },               /* BatReplaceability */                      \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) },          /* FeatureMap */                             \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },            /* ClusterRevision */                        \
                                                                                                                                    \
@@ -851,9 +851,9 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },              /* Status */                                \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(2) },              /* Order */                                 \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(17) }, /* Description */                           \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },              /* BatteryChargeLevel */                    \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },              /* BatteryReplacementNeeded */              \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatteryReplaceability */                 \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },              /* BatChargeLevel */                        \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },              /* BatReplacementNeeded */                  \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatReplaceability */                     \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) },           /* FeatureMap */                            \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },             /* ClusterRevision */                       \
                                                                                                                                    \
@@ -1447,9 +1447,9 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },               /* Status */                               \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(1) },               /* Order */                                \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(206) }, /* Description */                          \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },               /* BatteryChargeLevel */                   \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },               /* BatteryReplacementNeeded */             \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                 /* BatteryReplaceability */                \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) },               /* BatChargeLevel */                       \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },               /* BatReplacementNeeded */                 \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                 /* BatReplaceability */                    \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) },            /* FeatureMap */                           \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },              /* ClusterRevision */                      \
                                                                                                                                    \
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
index 8fc6bb3..d10c866 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
@@ -6993,9 +6993,9 @@
 
 namespace Status {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::PowerSourceStatus * value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::PowerSourceStatus>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
@@ -7007,9 +7007,9 @@
     *value = Traits::StorageToWorking(temp);
     return status;
 }
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::PowerSourceStatus value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::PowerSourceStatus>;
     if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -7085,24 +7085,27 @@
 
 namespace WiredAssessedInputVoltage {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7112,28 +7115,50 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
 } // namespace WiredAssessedInputVoltage
 
 namespace WiredAssessedInputFrequency {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint16_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint16_t> & value)
 {
     using Traits = NumericAttributeTraits<uint16_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint16_t value)
 {
     using Traits = NumericAttributeTraits<uint16_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7143,13 +7168,32 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
 }
 
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint16_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
 } // namespace WiredAssessedInputFrequency
 
 namespace WiredCurrentType {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::WiredCurrentType * value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::WiredCurrentType>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
@@ -7161,9 +7205,9 @@
     *value = Traits::StorageToWorking(temp);
     return status;
 }
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::WiredCurrentType value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::WiredCurrentType>;
     if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -7178,24 +7222,27 @@
 
 namespace WiredAssessedCurrent {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7205,6 +7252,25 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
 } // namespace WiredAssessedCurrent
 
 namespace WiredNominalVoltage {
@@ -7300,26 +7366,29 @@
 
 } // namespace WiredPresent
 
-namespace BatteryVoltage {
+namespace BatVoltage {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7329,28 +7398,50 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryVoltage
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
 
-namespace BatteryPercentRemaining {
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+    return Set(endpoint, value.Value());
+}
+
+} // namespace BatVoltage
+
+namespace BatPercentRemaining {
+
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint8_t> & value)
 {
     using Traits = NumericAttributeTraits<uint8_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
 {
     using Traits = NumericAttributeTraits<uint8_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7360,28 +7451,50 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT8U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryPercentRemaining
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint8_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT8U_ATTRIBUTE_TYPE);
+}
 
-namespace BatteryTimeRemaining {
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint8_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+    return Set(endpoint, value.Value());
+}
+
+} // namespace BatPercentRemaining
+
+namespace BatTimeRemaining {
+
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7391,13 +7504,32 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryTimeRemaining
-
-namespace BatteryChargeLevel {
-
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus SetNull(chip::EndpointId endpoint)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
+} // namespace BatTimeRemaining
+
+namespace BatChargeLevel {
+
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeLevel * value)
+{
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatChargeLevel>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
@@ -7409,9 +7541,9 @@
     *value = Traits::StorageToWorking(temp);
     return status;
 }
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeLevel value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatChargeLevel>;
     if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -7422,9 +7554,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_ENUM8_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryChargeLevel
+} // namespace BatChargeLevel
 
-namespace BatteryReplacementNeeded {
+namespace BatReplacementNeeded {
 
 EmberAfStatus Get(chip::EndpointId endpoint, bool * value)
 {
@@ -7453,13 +7585,13 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_BOOLEAN_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryReplacementNeeded
+} // namespace BatReplacementNeeded
 
-namespace BatteryReplaceability {
+namespace BatReplaceability {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatReplaceability * value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatReplaceability>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
@@ -7471,9 +7603,9 @@
     *value = Traits::StorageToWorking(temp);
     return status;
 }
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatReplaceability value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatReplaceability>;
     if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -7484,9 +7616,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_ENUM8_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryReplaceability
+} // namespace BatReplaceability
 
-namespace BatteryPresent {
+namespace BatPresent {
 
 EmberAfStatus Get(chip::EndpointId endpoint, bool * value)
 {
@@ -7515,9 +7647,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_BOOLEAN_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryPresent
+} // namespace BatPresent
 
-namespace BatteryReplacementDescription {
+namespace BatReplacementDescription {
 
 EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value)
 {
@@ -7545,9 +7677,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, zclString, ZCL_CHAR_STRING_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryReplacementDescription
+} // namespace BatReplacementDescription
 
-namespace BatteryCommonDesignation {
+namespace BatCommonDesignation {
 
 EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
 {
@@ -7576,9 +7708,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryCommonDesignation
+} // namespace BatCommonDesignation
 
-namespace BatteryANSIDesignation {
+namespace BatANSIDesignation {
 
 EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value)
 {
@@ -7606,9 +7738,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, zclString, ZCL_CHAR_STRING_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryANSIDesignation
+} // namespace BatANSIDesignation
 
-namespace BatteryIECDesignation {
+namespace BatIECDesignation {
 
 EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value)
 {
@@ -7636,9 +7768,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, zclString, ZCL_CHAR_STRING_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryIECDesignation
+} // namespace BatIECDesignation
 
-namespace BatteryApprovedChemistry {
+namespace BatApprovedChemistry {
 
 EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
 {
@@ -7667,9 +7799,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryApprovedChemistry
+} // namespace BatApprovedChemistry
 
-namespace BatteryCapacity {
+namespace BatCapacity {
 
 EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
 {
@@ -7698,9 +7830,9 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryCapacity
+} // namespace BatCapacity
 
-namespace BatteryQuantity {
+namespace BatQuantity {
 
 EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
 {
@@ -7729,13 +7861,13 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT8U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryQuantity
+} // namespace BatQuantity
 
-namespace BatteryChargeState {
+namespace BatChargeState {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeState * value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatChargeState>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
@@ -7747,9 +7879,9 @@
     *value = Traits::StorageToWorking(temp);
     return status;
 }
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value)
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeState value)
 {
-    using Traits = NumericAttributeTraits<uint8_t>;
+    using Traits = NumericAttributeTraits<chip::app::Clusters::PowerSource::BatChargeState>;
     if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
@@ -7760,28 +7892,31 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_ENUM8_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryChargeState
+} // namespace BatChargeState
 
-namespace BatteryTimeToFullCharge {
+namespace BatTimeToFullCharge {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7791,9 +7926,28 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryTimeToFullCharge
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
 
-namespace BatteryFunctionalWhileCharging {
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
+} // namespace BatTimeToFullCharge
+
+namespace BatFunctionalWhileCharging {
 
 EmberAfStatus Get(chip::EndpointId endpoint, bool * value)
 {
@@ -7822,28 +7976,31 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_BOOLEAN_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryFunctionalWhileCharging
+} // namespace BatFunctionalWhileCharging
 
-namespace BatteryChargingCurrent {
+namespace BatChargingCurrent {
 
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value)
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
     Traits::StorageType temp;
     uint8_t * readable   = Traits::ToAttributeStoreRepresentation(temp);
     EmberAfStatus status = emberAfReadServerAttribute(endpoint, Clusters::PowerSource::Id, Id, readable, sizeof(temp));
     VerifyOrReturnError(EMBER_ZCL_STATUS_SUCCESS == status, status);
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    if (Traits::IsNullValue(temp))
     {
-        return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
+        value.SetNull();
     }
-    *value = Traits::StorageToWorking(temp);
+    else
+    {
+        value.SetNonNull() = Traits::StorageToWorking(temp);
+    }
     return status;
 }
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value)
 {
     using Traits = NumericAttributeTraits<uint32_t>;
-    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    if (!Traits::CanRepresentValue(/* isNullable = */ true, value))
     {
         return EMBER_ZCL_STATUS_CONSTRAINT_ERROR;
     }
@@ -7853,7 +8010,26 @@
     return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
 }
 
-} // namespace BatteryChargingCurrent
+EmberAfStatus SetNull(chip::EndpointId endpoint)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType value;
+    Traits::SetNull(value);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(value);
+    return emberAfWriteServerAttribute(endpoint, Clusters::PowerSource::Id, Id, writable, ZCL_INT32U_ATTRIBUTE_TYPE);
+}
+
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value)
+{
+    if (value.IsNull())
+    {
+        return SetNull(endpoint);
+    }
+
+    return Set(endpoint, value.Value());
+}
+
+} // namespace BatChargingCurrent
 
 namespace FeatureMap {
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
index e6be530..0263f3f 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
@@ -1277,8 +1277,8 @@
 namespace Attributes {
 
 namespace Status {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::PowerSourceStatus * value); // PowerSourceStatus
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::PowerSourceStatus value);
 } // namespace Status
 
 namespace Order {
@@ -1292,23 +1292,29 @@
 } // namespace Description
 
 namespace WiredAssessedInputVoltage {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
 } // namespace WiredAssessedInputVoltage
 
 namespace WiredAssessedInputFrequency {
-EmberAfStatus Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint16_t> & value); // int16u
 EmberAfStatus Set(chip::EndpointId endpoint, uint16_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint16_t> & value);
 } // namespace WiredAssessedInputFrequency
 
 namespace WiredCurrentType {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::WiredCurrentType * value); // WiredCurrentType
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::WiredCurrentType value);
 } // namespace WiredCurrentType
 
 namespace WiredAssessedCurrent {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
 } // namespace WiredAssessedCurrent
 
 namespace WiredNominalVoltage {
@@ -1326,95 +1332,105 @@
 EmberAfStatus Set(chip::EndpointId endpoint, bool value);
 } // namespace WiredPresent
 
-namespace BatteryVoltage {
+namespace BatVoltage {
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
+EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
+} // namespace BatVoltage
+
+namespace BatPercentRemaining {
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint8_t> & value); // int8u
+EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint8_t> & value);
+} // namespace BatPercentRemaining
+
+namespace BatTimeRemaining {
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
+EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
+} // namespace BatTimeRemaining
+
+namespace BatChargeLevel {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeLevel * value); // BatChargeLevel
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeLevel value);
+} // namespace BatChargeLevel
+
+namespace BatReplacementNeeded {
+EmberAfStatus Get(chip::EndpointId endpoint, bool * value); // boolean
+EmberAfStatus Set(chip::EndpointId endpoint, bool value);
+} // namespace BatReplacementNeeded
+
+namespace BatReplaceability {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatReplaceability * value); // BatReplaceability
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatReplaceability value);
+} // namespace BatReplaceability
+
+namespace BatPresent {
+EmberAfStatus Get(chip::EndpointId endpoint, bool * value); // boolean
+EmberAfStatus Set(chip::EndpointId endpoint, bool value);
+} // namespace BatPresent
+
+namespace BatReplacementDescription {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
+EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
+} // namespace BatReplacementDescription
+
+namespace BatCommonDesignation {
 EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryVoltage
+} // namespace BatCommonDesignation
 
-namespace BatteryPercentRemaining {
+namespace BatANSIDesignation {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
+EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
+} // namespace BatANSIDesignation
+
+namespace BatIECDesignation {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
+EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
+} // namespace BatIECDesignation
+
+namespace BatApprovedChemistry {
+EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+} // namespace BatApprovedChemistry
+
+namespace BatCapacity {
+EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
+} // namespace BatCapacity
+
+namespace BatQuantity {
 EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // int8u
 EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
-} // namespace BatteryPercentRemaining
+} // namespace BatQuantity
 
-namespace BatteryTimeRemaining {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+namespace BatChargeState {
+EmberAfStatus Get(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeState * value); // BatChargeState
+EmberAfStatus Set(chip::EndpointId endpoint, chip::app::Clusters::PowerSource::BatChargeState value);
+} // namespace BatChargeState
+
+namespace BatTimeToFullCharge {
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryTimeRemaining
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
+} // namespace BatTimeToFullCharge
 
-namespace BatteryChargeLevel {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
-} // namespace BatteryChargeLevel
-
-namespace BatteryReplacementNeeded {
+namespace BatFunctionalWhileCharging {
 EmberAfStatus Get(chip::EndpointId endpoint, bool * value); // boolean
 EmberAfStatus Set(chip::EndpointId endpoint, bool value);
-} // namespace BatteryReplacementNeeded
+} // namespace BatFunctionalWhileCharging
 
-namespace BatteryReplaceability {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
-} // namespace BatteryReplaceability
-
-namespace BatteryPresent {
-EmberAfStatus Get(chip::EndpointId endpoint, bool * value); // boolean
-EmberAfStatus Set(chip::EndpointId endpoint, bool value);
-} // namespace BatteryPresent
-
-namespace BatteryReplacementDescription {
-EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
-EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
-} // namespace BatteryReplacementDescription
-
-namespace BatteryCommonDesignation {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
+namespace BatChargingCurrent {
+EmberAfStatus Get(chip::EndpointId endpoint, DataModel::Nullable<uint32_t> & value); // int32u
 EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryCommonDesignation
-
-namespace BatteryANSIDesignation {
-EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
-EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
-} // namespace BatteryANSIDesignation
-
-namespace BatteryIECDesignation {
-EmberAfStatus Get(chip::EndpointId endpoint, chip::MutableCharSpan value); // char_string
-EmberAfStatus Set(chip::EndpointId endpoint, chip::CharSpan value);
-} // namespace BatteryIECDesignation
-
-namespace BatteryApprovedChemistry {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
-EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryApprovedChemistry
-
-namespace BatteryCapacity {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
-EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryCapacity
-
-namespace BatteryQuantity {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // int8u
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
-} // namespace BatteryQuantity
-
-namespace BatteryChargeState {
-EmberAfStatus Get(chip::EndpointId endpoint, uint8_t * value); // enum8
-EmberAfStatus Set(chip::EndpointId endpoint, uint8_t value);
-} // namespace BatteryChargeState
-
-namespace BatteryTimeToFullCharge {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
-EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryTimeToFullCharge
-
-namespace BatteryFunctionalWhileCharging {
-EmberAfStatus Get(chip::EndpointId endpoint, bool * value); // boolean
-EmberAfStatus Set(chip::EndpointId endpoint, bool value);
-} // namespace BatteryFunctionalWhileCharging
-
-namespace BatteryChargingCurrent {
-EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // int32u
-EmberAfStatus Set(chip::EndpointId endpoint, uint32_t value);
-} // namespace BatteryChargingCurrent
+EmberAfStatus SetNull(chip::EndpointId endpoint);
+EmberAfStatus Set(chip::EndpointId endpoint, const chip::app::DataModel::Nullable<uint32_t> & value);
+} // namespace BatChargingCurrent
 
 namespace FeatureMap {
 EmberAfStatus Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
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 c56c9fc..bf03770 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
@@ -492,8 +492,8 @@
 
 namespace PowerSource {
 
-// Enum for BatChargeFaultType
-enum class BatChargeFaultType : uint8_t
+// Enum for BatChargeFault
+enum class BatChargeFault : uint8_t
 {
     kUnspecfied          = 0x00,
     kAmbientTooHot       = 0x01,
@@ -525,8 +525,8 @@
     kIsNotCharging  = 0x03,
 };
 
-// Enum for BatFaultType
-enum class BatFaultType : uint8_t
+// Enum for BatFault
+enum class BatFault : uint8_t
 {
     kUnspecfied = 0x00,
     kOverTemp   = 0x01,
@@ -558,8 +558,8 @@
     kDc = 0x01,
 };
 
-// Enum for WiredFaultType
-enum class WiredFaultType : uint8_t
+// Enum for WiredFault
+enum class WiredFault : uint8_t
 {
     kUnspecfied   = 0x00,
     kOverVoltage  = 0x01,
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
index ac31bf0..9a9ffc3 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
@@ -7440,65 +7440,65 @@
     case Attributes::ActiveWiredFaults::TypeInfo::GetAttributeId():
         ReturnErrorOnFailure(DataModel::Decode(reader, activeWiredFaults));
         break;
-    case Attributes::BatteryVoltage::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryVoltage));
+    case Attributes::BatVoltage::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batVoltage));
         break;
-    case Attributes::BatteryPercentRemaining::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryPercentRemaining));
+    case Attributes::BatPercentRemaining::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batPercentRemaining));
         break;
-    case Attributes::BatteryTimeRemaining::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryTimeRemaining));
+    case Attributes::BatTimeRemaining::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batTimeRemaining));
         break;
-    case Attributes::BatteryChargeLevel::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryChargeLevel));
+    case Attributes::BatChargeLevel::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batChargeLevel));
         break;
-    case Attributes::BatteryReplacementNeeded::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryReplacementNeeded));
+    case Attributes::BatReplacementNeeded::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batReplacementNeeded));
         break;
-    case Attributes::BatteryReplaceability::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryReplaceability));
+    case Attributes::BatReplaceability::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batReplaceability));
         break;
-    case Attributes::BatteryPresent::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryPresent));
+    case Attributes::BatPresent::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batPresent));
         break;
-    case Attributes::ActiveBatteryFaults::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, activeBatteryFaults));
+    case Attributes::ActiveBatFaults::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, activeBatFaults));
         break;
-    case Attributes::BatteryReplacementDescription::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryReplacementDescription));
+    case Attributes::BatReplacementDescription::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batReplacementDescription));
         break;
-    case Attributes::BatteryCommonDesignation::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryCommonDesignation));
+    case Attributes::BatCommonDesignation::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batCommonDesignation));
         break;
-    case Attributes::BatteryANSIDesignation::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryANSIDesignation));
+    case Attributes::BatANSIDesignation::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batANSIDesignation));
         break;
-    case Attributes::BatteryIECDesignation::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryIECDesignation));
+    case Attributes::BatIECDesignation::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batIECDesignation));
         break;
-    case Attributes::BatteryApprovedChemistry::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryApprovedChemistry));
+    case Attributes::BatApprovedChemistry::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batApprovedChemistry));
         break;
-    case Attributes::BatteryCapacity::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryCapacity));
+    case Attributes::BatCapacity::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batCapacity));
         break;
-    case Attributes::BatteryQuantity::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryQuantity));
+    case Attributes::BatQuantity::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batQuantity));
         break;
-    case Attributes::BatteryChargeState::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryChargeState));
+    case Attributes::BatChargeState::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batChargeState));
         break;
-    case Attributes::BatteryTimeToFullCharge::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryTimeToFullCharge));
+    case Attributes::BatTimeToFullCharge::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batTimeToFullCharge));
         break;
-    case Attributes::BatteryFunctionalWhileCharging::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryFunctionalWhileCharging));
+    case Attributes::BatFunctionalWhileCharging::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batFunctionalWhileCharging));
         break;
-    case Attributes::BatteryChargingCurrent::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, batteryChargingCurrent));
+    case Attributes::BatChargingCurrent::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, batChargingCurrent));
         break;
-    case Attributes::ActiveBatteryChargeFaults::TypeInfo::GetAttributeId():
-        ReturnErrorOnFailure(DataModel::Decode(reader, activeBatteryChargeFaults));
+    case Attributes::ActiveBatChargeFaults::TypeInfo::GetAttributeId():
+        ReturnErrorOnFailure(DataModel::Decode(reader, activeBatChargeFaults));
         break;
     case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
         ReturnErrorOnFailure(DataModel::Decode(reader, generatedCommandList));
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 00b3d3e..c4ff316 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -9052,8 +9052,8 @@
 struct Type
 {
 public:
-    DataModel::List<const BatChargeFaultType> current;
-    DataModel::List<const BatChargeFaultType> previous;
+    DataModel::List<const BatChargeFault> current;
+    DataModel::List<const BatChargeFault> previous;
 
     static constexpr bool kIsFabricScoped = false;
 
@@ -9063,8 +9063,8 @@
 struct DecodableType
 {
 public:
-    DataModel::DecodableList<BatChargeFaultType> current;
-    DataModel::DecodableList<BatChargeFaultType> previous;
+    DataModel::DecodableList<BatChargeFault> current;
+    DataModel::DecodableList<BatChargeFault> previous;
 
     CHIP_ERROR Decode(TLV::TLVReader & reader);
 
@@ -9082,8 +9082,8 @@
 struct Type
 {
 public:
-    DataModel::List<const BatFaultType> current;
-    DataModel::List<const BatFaultType> previous;
+    DataModel::List<const BatFault> current;
+    DataModel::List<const BatFault> previous;
 
     static constexpr bool kIsFabricScoped = false;
 
@@ -9093,8 +9093,8 @@
 struct DecodableType
 {
 public:
-    DataModel::DecodableList<BatFaultType> current;
-    DataModel::DecodableList<BatFaultType> previous;
+    DataModel::DecodableList<BatFault> current;
+    DataModel::DecodableList<BatFault> previous;
 
     CHIP_ERROR Decode(TLV::TLVReader & reader);
 
@@ -9112,8 +9112,8 @@
 struct Type
 {
 public:
-    DataModel::List<const WiredFaultType> current;
-    DataModel::List<const WiredFaultType> previous;
+    DataModel::List<const WiredFault> current;
+    DataModel::List<const WiredFault> previous;
 
     static constexpr bool kIsFabricScoped = false;
 
@@ -9123,8 +9123,8 @@
 struct DecodableType
 {
 public:
-    DataModel::DecodableList<WiredFaultType> current;
-    DataModel::DecodableList<WiredFaultType> previous;
+    DataModel::DecodableList<WiredFault> current;
+    DataModel::DecodableList<WiredFault> previous;
 
     CHIP_ERROR Decode(TLV::TLVReader & reader);
 
@@ -9139,9 +9139,9 @@
 namespace Status {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::Clusters::PowerSource::PowerSourceStatus;
+    using DecodableType    = chip::app::Clusters::PowerSource::PowerSourceStatus;
+    using DecodableArgType = chip::app::Clusters::PowerSource::PowerSourceStatus;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::Status::Id; }
@@ -9176,9 +9176,9 @@
 namespace WiredAssessedInputVoltage {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::WiredAssessedInputVoltage::Id; }
@@ -9188,9 +9188,9 @@
 namespace WiredAssessedInputFrequency {
 struct TypeInfo
 {
-    using Type             = uint16_t;
-    using DecodableType    = uint16_t;
-    using DecodableArgType = uint16_t;
+    using Type             = chip::app::DataModel::Nullable<uint16_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint16_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint16_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::WiredAssessedInputFrequency::Id; }
@@ -9200,9 +9200,9 @@
 namespace WiredCurrentType {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::Clusters::PowerSource::WiredCurrentType;
+    using DecodableType    = chip::app::Clusters::PowerSource::WiredCurrentType;
+    using DecodableArgType = chip::app::Clusters::PowerSource::WiredCurrentType;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::WiredCurrentType::Id; }
@@ -9212,9 +9212,9 @@
 namespace WiredAssessedCurrent {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::WiredAssessedCurrent::Id; }
@@ -9260,64 +9260,64 @@
 namespace ActiveWiredFaults {
 struct TypeInfo
 {
-    using Type             = chip::app::DataModel::List<const uint8_t>;
-    using DecodableType    = chip::app::DataModel::DecodableList<uint8_t>;
-    using DecodableArgType = const chip::app::DataModel::DecodableList<uint8_t> &;
+    using Type             = chip::app::DataModel::List<const chip::app::Clusters::PowerSource::WiredFault>;
+    using DecodableType    = chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
     static constexpr AttributeId GetAttributeId() { return Attributes::ActiveWiredFaults::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
 } // namespace ActiveWiredFaults
-namespace BatteryVoltage {
+namespace BatVoltage {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryVoltage::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatVoltage::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryVoltage
-namespace BatteryPercentRemaining {
+} // namespace BatVoltage
+namespace BatPercentRemaining {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::DataModel::Nullable<uint8_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint8_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint8_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryPercentRemaining::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatPercentRemaining::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryPercentRemaining
-namespace BatteryTimeRemaining {
+} // namespace BatPercentRemaining
+namespace BatTimeRemaining {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryTimeRemaining::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatTimeRemaining::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryTimeRemaining
-namespace BatteryChargeLevel {
+} // namespace BatTimeRemaining
+namespace BatChargeLevel {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::Clusters::PowerSource::BatChargeLevel;
+    using DecodableType    = chip::app::Clusters::PowerSource::BatChargeLevel;
+    using DecodableArgType = chip::app::Clusters::PowerSource::BatChargeLevel;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryChargeLevel::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatChargeLevel::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryChargeLevel
-namespace BatteryReplacementNeeded {
+} // namespace BatChargeLevel
+namespace BatReplacementNeeded {
 struct TypeInfo
 {
     using Type             = bool;
@@ -9325,23 +9325,23 @@
     using DecodableArgType = bool;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryReplacementNeeded::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatReplacementNeeded::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryReplacementNeeded
-namespace BatteryReplaceability {
+} // namespace BatReplacementNeeded
+namespace BatReplaceability {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::Clusters::PowerSource::BatReplaceability;
+    using DecodableType    = chip::app::Clusters::PowerSource::BatReplaceability;
+    using DecodableArgType = chip::app::Clusters::PowerSource::BatReplaceability;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryReplaceability::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatReplaceability::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryReplaceability
-namespace BatteryPresent {
+} // namespace BatReplaceability
+namespace BatPresent {
 struct TypeInfo
 {
     using Type             = bool;
@@ -9349,23 +9349,23 @@
     using DecodableArgType = bool;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryPresent::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatPresent::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryPresent
-namespace ActiveBatteryFaults {
+} // namespace BatPresent
+namespace ActiveBatFaults {
 struct TypeInfo
 {
-    using Type             = chip::app::DataModel::List<const uint8_t>;
-    using DecodableType    = chip::app::DataModel::DecodableList<uint8_t>;
-    using DecodableArgType = const chip::app::DataModel::DecodableList<uint8_t> &;
+    using Type             = chip::app::DataModel::List<const chip::app::Clusters::PowerSource::BatFault>;
+    using DecodableType    = chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveBatteryFaults::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveBatFaults::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace ActiveBatteryFaults
-namespace BatteryReplacementDescription {
+} // namespace ActiveBatFaults
+namespace BatReplacementDescription {
 struct TypeInfo
 {
     using Type             = chip::CharSpan;
@@ -9373,12 +9373,12 @@
     using DecodableArgType = chip::CharSpan;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryReplacementDescription::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatReplacementDescription::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
     static constexpr size_t MaxLength() { return 60; }
 };
-} // namespace BatteryReplacementDescription
-namespace BatteryCommonDesignation {
+} // namespace BatReplacementDescription
+namespace BatCommonDesignation {
 struct TypeInfo
 {
     using Type             = uint32_t;
@@ -9386,11 +9386,11 @@
     using DecodableArgType = uint32_t;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryCommonDesignation::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatCommonDesignation::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryCommonDesignation
-namespace BatteryANSIDesignation {
+} // namespace BatCommonDesignation
+namespace BatANSIDesignation {
 struct TypeInfo
 {
     using Type             = chip::CharSpan;
@@ -9398,12 +9398,12 @@
     using DecodableArgType = chip::CharSpan;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryANSIDesignation::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatANSIDesignation::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
     static constexpr size_t MaxLength() { return 20; }
 };
-} // namespace BatteryANSIDesignation
-namespace BatteryIECDesignation {
+} // namespace BatANSIDesignation
+namespace BatIECDesignation {
 struct TypeInfo
 {
     using Type             = chip::CharSpan;
@@ -9411,12 +9411,12 @@
     using DecodableArgType = chip::CharSpan;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryIECDesignation::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatIECDesignation::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
     static constexpr size_t MaxLength() { return 20; }
 };
-} // namespace BatteryIECDesignation
-namespace BatteryApprovedChemistry {
+} // namespace BatIECDesignation
+namespace BatApprovedChemistry {
 struct TypeInfo
 {
     using Type             = uint32_t;
@@ -9424,11 +9424,11 @@
     using DecodableArgType = uint32_t;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryApprovedChemistry::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatApprovedChemistry::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryApprovedChemistry
-namespace BatteryCapacity {
+} // namespace BatApprovedChemistry
+namespace BatCapacity {
 struct TypeInfo
 {
     using Type             = uint32_t;
@@ -9436,11 +9436,11 @@
     using DecodableArgType = uint32_t;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryCapacity::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatCapacity::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryCapacity
-namespace BatteryQuantity {
+} // namespace BatCapacity
+namespace BatQuantity {
 struct TypeInfo
 {
     using Type             = uint8_t;
@@ -9448,35 +9448,35 @@
     using DecodableArgType = uint8_t;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryQuantity::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatQuantity::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryQuantity
-namespace BatteryChargeState {
+} // namespace BatQuantity
+namespace BatChargeState {
 struct TypeInfo
 {
-    using Type             = uint8_t;
-    using DecodableType    = uint8_t;
-    using DecodableArgType = uint8_t;
+    using Type             = chip::app::Clusters::PowerSource::BatChargeState;
+    using DecodableType    = chip::app::Clusters::PowerSource::BatChargeState;
+    using DecodableArgType = chip::app::Clusters::PowerSource::BatChargeState;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryChargeState::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatChargeState::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryChargeState
-namespace BatteryTimeToFullCharge {
+} // namespace BatChargeState
+namespace BatTimeToFullCharge {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryTimeToFullCharge::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatTimeToFullCharge::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryTimeToFullCharge
-namespace BatteryFunctionalWhileCharging {
+} // namespace BatTimeToFullCharge
+namespace BatFunctionalWhileCharging {
 struct TypeInfo
 {
     using Type             = bool;
@@ -9484,34 +9484,34 @@
     using DecodableArgType = bool;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryFunctionalWhileCharging::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatFunctionalWhileCharging::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryFunctionalWhileCharging
-namespace BatteryChargingCurrent {
+} // namespace BatFunctionalWhileCharging
+namespace BatChargingCurrent {
 struct TypeInfo
 {
-    using Type             = uint32_t;
-    using DecodableType    = uint32_t;
-    using DecodableArgType = uint32_t;
+    using Type             = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableType    = chip::app::DataModel::Nullable<uint32_t>;
+    using DecodableArgType = const chip::app::DataModel::Nullable<uint32_t> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::BatteryChargingCurrent::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::BatChargingCurrent::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace BatteryChargingCurrent
-namespace ActiveBatteryChargeFaults {
+} // namespace BatChargingCurrent
+namespace ActiveBatChargeFaults {
 struct TypeInfo
 {
-    using Type             = chip::app::DataModel::List<const uint8_t>;
-    using DecodableType    = chip::app::DataModel::DecodableList<uint8_t>;
-    using DecodableArgType = const chip::app::DataModel::DecodableList<uint8_t> &;
+    using Type             = chip::app::DataModel::List<const chip::app::Clusters::PowerSource::BatChargeFault>;
+    using DecodableType    = chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> &;
 
     static constexpr ClusterId GetClusterId() { return Clusters::PowerSource::Id; }
-    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveBatteryChargeFaults::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveBatChargeFaults::Id; }
     static constexpr bool MustUseTimedWrite() { return false; }
 };
-} // namespace ActiveBatteryChargeFaults
+} // namespace ActiveBatChargeFaults
 namespace GeneratedCommandList {
 struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
 {
@@ -9551,37 +9551,41 @@
 
         CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
 
-        Attributes::Status::TypeInfo::DecodableType status = static_cast<uint8_t>(0);
+        Attributes::Status::TypeInfo::DecodableType status = static_cast<chip::app::Clusters::PowerSource::PowerSourceStatus>(0);
         Attributes::Order::TypeInfo::DecodableType order   = static_cast<uint8_t>(0);
         Attributes::Description::TypeInfo::DecodableType description;
-        Attributes::WiredAssessedInputVoltage::TypeInfo::DecodableType wiredAssessedInputVoltage     = static_cast<uint32_t>(0);
-        Attributes::WiredAssessedInputFrequency::TypeInfo::DecodableType wiredAssessedInputFrequency = static_cast<uint16_t>(0);
-        Attributes::WiredCurrentType::TypeInfo::DecodableType wiredCurrentType                       = static_cast<uint8_t>(0);
-        Attributes::WiredAssessedCurrent::TypeInfo::DecodableType wiredAssessedCurrent               = static_cast<uint32_t>(0);
-        Attributes::WiredNominalVoltage::TypeInfo::DecodableType wiredNominalVoltage                 = static_cast<uint32_t>(0);
-        Attributes::WiredMaximumCurrent::TypeInfo::DecodableType wiredMaximumCurrent                 = static_cast<uint32_t>(0);
-        Attributes::WiredPresent::TypeInfo::DecodableType wiredPresent                               = static_cast<bool>(0);
+        Attributes::WiredAssessedInputVoltage::TypeInfo::DecodableType wiredAssessedInputVoltage;
+        Attributes::WiredAssessedInputFrequency::TypeInfo::DecodableType wiredAssessedInputFrequency;
+        Attributes::WiredCurrentType::TypeInfo::DecodableType wiredCurrentType =
+            static_cast<chip::app::Clusters::PowerSource::WiredCurrentType>(0);
+        Attributes::WiredAssessedCurrent::TypeInfo::DecodableType wiredAssessedCurrent;
+        Attributes::WiredNominalVoltage::TypeInfo::DecodableType wiredNominalVoltage = static_cast<uint32_t>(0);
+        Attributes::WiredMaximumCurrent::TypeInfo::DecodableType wiredMaximumCurrent = static_cast<uint32_t>(0);
+        Attributes::WiredPresent::TypeInfo::DecodableType wiredPresent               = static_cast<bool>(0);
         Attributes::ActiveWiredFaults::TypeInfo::DecodableType activeWiredFaults;
-        Attributes::BatteryVoltage::TypeInfo::DecodableType batteryVoltage                     = static_cast<uint32_t>(0);
-        Attributes::BatteryPercentRemaining::TypeInfo::DecodableType batteryPercentRemaining   = static_cast<uint8_t>(0);
-        Attributes::BatteryTimeRemaining::TypeInfo::DecodableType batteryTimeRemaining         = static_cast<uint32_t>(0);
-        Attributes::BatteryChargeLevel::TypeInfo::DecodableType batteryChargeLevel             = static_cast<uint8_t>(0);
-        Attributes::BatteryReplacementNeeded::TypeInfo::DecodableType batteryReplacementNeeded = static_cast<bool>(0);
-        Attributes::BatteryReplaceability::TypeInfo::DecodableType batteryReplaceability       = static_cast<uint8_t>(0);
-        Attributes::BatteryPresent::TypeInfo::DecodableType batteryPresent                     = static_cast<bool>(0);
-        Attributes::ActiveBatteryFaults::TypeInfo::DecodableType activeBatteryFaults;
-        Attributes::BatteryReplacementDescription::TypeInfo::DecodableType batteryReplacementDescription;
-        Attributes::BatteryCommonDesignation::TypeInfo::DecodableType batteryCommonDesignation = static_cast<uint32_t>(0);
-        Attributes::BatteryANSIDesignation::TypeInfo::DecodableType batteryANSIDesignation;
-        Attributes::BatteryIECDesignation::TypeInfo::DecodableType batteryIECDesignation;
-        Attributes::BatteryApprovedChemistry::TypeInfo::DecodableType batteryApprovedChemistry = static_cast<uint32_t>(0);
-        Attributes::BatteryCapacity::TypeInfo::DecodableType batteryCapacity                   = static_cast<uint32_t>(0);
-        Attributes::BatteryQuantity::TypeInfo::DecodableType batteryQuantity                   = static_cast<uint8_t>(0);
-        Attributes::BatteryChargeState::TypeInfo::DecodableType batteryChargeState             = static_cast<uint8_t>(0);
-        Attributes::BatteryTimeToFullCharge::TypeInfo::DecodableType batteryTimeToFullCharge   = static_cast<uint32_t>(0);
-        Attributes::BatteryFunctionalWhileCharging::TypeInfo::DecodableType batteryFunctionalWhileCharging = static_cast<bool>(0);
-        Attributes::BatteryChargingCurrent::TypeInfo::DecodableType batteryChargingCurrent = static_cast<uint32_t>(0);
-        Attributes::ActiveBatteryChargeFaults::TypeInfo::DecodableType activeBatteryChargeFaults;
+        Attributes::BatVoltage::TypeInfo::DecodableType batVoltage;
+        Attributes::BatPercentRemaining::TypeInfo::DecodableType batPercentRemaining;
+        Attributes::BatTimeRemaining::TypeInfo::DecodableType batTimeRemaining;
+        Attributes::BatChargeLevel::TypeInfo::DecodableType batChargeLevel =
+            static_cast<chip::app::Clusters::PowerSource::BatChargeLevel>(0);
+        Attributes::BatReplacementNeeded::TypeInfo::DecodableType batReplacementNeeded = static_cast<bool>(0);
+        Attributes::BatReplaceability::TypeInfo::DecodableType batReplaceability =
+            static_cast<chip::app::Clusters::PowerSource::BatReplaceability>(0);
+        Attributes::BatPresent::TypeInfo::DecodableType batPresent = static_cast<bool>(0);
+        Attributes::ActiveBatFaults::TypeInfo::DecodableType activeBatFaults;
+        Attributes::BatReplacementDescription::TypeInfo::DecodableType batReplacementDescription;
+        Attributes::BatCommonDesignation::TypeInfo::DecodableType batCommonDesignation = static_cast<uint32_t>(0);
+        Attributes::BatANSIDesignation::TypeInfo::DecodableType batANSIDesignation;
+        Attributes::BatIECDesignation::TypeInfo::DecodableType batIECDesignation;
+        Attributes::BatApprovedChemistry::TypeInfo::DecodableType batApprovedChemistry = static_cast<uint32_t>(0);
+        Attributes::BatCapacity::TypeInfo::DecodableType batCapacity                   = static_cast<uint32_t>(0);
+        Attributes::BatQuantity::TypeInfo::DecodableType batQuantity                   = static_cast<uint8_t>(0);
+        Attributes::BatChargeState::TypeInfo::DecodableType batChargeState =
+            static_cast<chip::app::Clusters::PowerSource::BatChargeState>(0);
+        Attributes::BatTimeToFullCharge::TypeInfo::DecodableType batTimeToFullCharge;
+        Attributes::BatFunctionalWhileCharging::TypeInfo::DecodableType batFunctionalWhileCharging = static_cast<bool>(0);
+        Attributes::BatChargingCurrent::TypeInfo::DecodableType batChargingCurrent;
+        Attributes::ActiveBatChargeFaults::TypeInfo::DecodableType activeBatChargeFaults;
         Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
         Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
         Attributes::AttributeList::TypeInfo::DecodableType attributeList;
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
index 615d0ed..c665aa9 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
@@ -1474,85 +1474,85 @@
 static constexpr AttributeId Id = 0x0000000A;
 } // namespace ActiveWiredFaults
 
-namespace BatteryVoltage {
+namespace BatVoltage {
 static constexpr AttributeId Id = 0x0000000B;
-} // namespace BatteryVoltage
+} // namespace BatVoltage
 
-namespace BatteryPercentRemaining {
+namespace BatPercentRemaining {
 static constexpr AttributeId Id = 0x0000000C;
-} // namespace BatteryPercentRemaining
+} // namespace BatPercentRemaining
 
-namespace BatteryTimeRemaining {
+namespace BatTimeRemaining {
 static constexpr AttributeId Id = 0x0000000D;
-} // namespace BatteryTimeRemaining
+} // namespace BatTimeRemaining
 
-namespace BatteryChargeLevel {
+namespace BatChargeLevel {
 static constexpr AttributeId Id = 0x0000000E;
-} // namespace BatteryChargeLevel
+} // namespace BatChargeLevel
 
-namespace BatteryReplacementNeeded {
+namespace BatReplacementNeeded {
 static constexpr AttributeId Id = 0x0000000F;
-} // namespace BatteryReplacementNeeded
+} // namespace BatReplacementNeeded
 
-namespace BatteryReplaceability {
+namespace BatReplaceability {
 static constexpr AttributeId Id = 0x00000010;
-} // namespace BatteryReplaceability
+} // namespace BatReplaceability
 
-namespace BatteryPresent {
+namespace BatPresent {
 static constexpr AttributeId Id = 0x00000011;
-} // namespace BatteryPresent
+} // namespace BatPresent
 
-namespace ActiveBatteryFaults {
+namespace ActiveBatFaults {
 static constexpr AttributeId Id = 0x00000012;
-} // namespace ActiveBatteryFaults
+} // namespace ActiveBatFaults
 
-namespace BatteryReplacementDescription {
+namespace BatReplacementDescription {
 static constexpr AttributeId Id = 0x00000013;
-} // namespace BatteryReplacementDescription
+} // namespace BatReplacementDescription
 
-namespace BatteryCommonDesignation {
+namespace BatCommonDesignation {
 static constexpr AttributeId Id = 0x00000014;
-} // namespace BatteryCommonDesignation
+} // namespace BatCommonDesignation
 
-namespace BatteryANSIDesignation {
+namespace BatANSIDesignation {
 static constexpr AttributeId Id = 0x00000015;
-} // namespace BatteryANSIDesignation
+} // namespace BatANSIDesignation
 
-namespace BatteryIECDesignation {
+namespace BatIECDesignation {
 static constexpr AttributeId Id = 0x00000016;
-} // namespace BatteryIECDesignation
+} // namespace BatIECDesignation
 
-namespace BatteryApprovedChemistry {
+namespace BatApprovedChemistry {
 static constexpr AttributeId Id = 0x00000017;
-} // namespace BatteryApprovedChemistry
+} // namespace BatApprovedChemistry
 
-namespace BatteryCapacity {
+namespace BatCapacity {
 static constexpr AttributeId Id = 0x00000018;
-} // namespace BatteryCapacity
+} // namespace BatCapacity
 
-namespace BatteryQuantity {
+namespace BatQuantity {
 static constexpr AttributeId Id = 0x00000019;
-} // namespace BatteryQuantity
+} // namespace BatQuantity
 
-namespace BatteryChargeState {
+namespace BatChargeState {
 static constexpr AttributeId Id = 0x0000001A;
-} // namespace BatteryChargeState
+} // namespace BatChargeState
 
-namespace BatteryTimeToFullCharge {
+namespace BatTimeToFullCharge {
 static constexpr AttributeId Id = 0x0000001B;
-} // namespace BatteryTimeToFullCharge
+} // namespace BatTimeToFullCharge
 
-namespace BatteryFunctionalWhileCharging {
+namespace BatFunctionalWhileCharging {
 static constexpr AttributeId Id = 0x0000001C;
-} // namespace BatteryFunctionalWhileCharging
+} // namespace BatFunctionalWhileCharging
 
-namespace BatteryChargingCurrent {
+namespace BatChargingCurrent {
 static constexpr AttributeId Id = 0x0000001D;
-} // namespace BatteryChargingCurrent
+} // namespace BatChargingCurrent
 
-namespace ActiveBatteryChargeFaults {
+namespace ActiveBatChargeFaults {
 static constexpr AttributeId Id = 0x0000001E;
-} // namespace ActiveBatteryChargeFaults
+} // namespace ActiveBatChargeFaults
 
 namespace GeneratedCommandList {
 static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index 5f3218a..de0669a 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -3122,26 +3122,26 @@
 | * WiredMaximumCurrent                                               | 0x0008 |
 | * WiredPresent                                                      | 0x0009 |
 | * ActiveWiredFaults                                                 | 0x000A |
-| * BatteryVoltage                                                    | 0x000B |
-| * BatteryPercentRemaining                                           | 0x000C |
-| * BatteryTimeRemaining                                              | 0x000D |
-| * BatteryChargeLevel                                                | 0x000E |
-| * BatteryReplacementNeeded                                          | 0x000F |
-| * BatteryReplaceability                                             | 0x0010 |
-| * BatteryPresent                                                    | 0x0011 |
-| * ActiveBatteryFaults                                               | 0x0012 |
-| * BatteryReplacementDescription                                     | 0x0013 |
-| * BatteryCommonDesignation                                          | 0x0014 |
-| * BatteryANSIDesignation                                            | 0x0015 |
-| * BatteryIECDesignation                                             | 0x0016 |
-| * BatteryApprovedChemistry                                          | 0x0017 |
-| * BatteryCapacity                                                   | 0x0018 |
-| * BatteryQuantity                                                   | 0x0019 |
-| * BatteryChargeState                                                | 0x001A |
-| * BatteryTimeToFullCharge                                           | 0x001B |
-| * BatteryFunctionalWhileCharging                                    | 0x001C |
-| * BatteryChargingCurrent                                            | 0x001D |
-| * ActiveBatteryChargeFaults                                         | 0x001E |
+| * BatVoltage                                                        | 0x000B |
+| * BatPercentRemaining                                               | 0x000C |
+| * BatTimeRemaining                                                  | 0x000D |
+| * BatChargeLevel                                                    | 0x000E |
+| * BatReplacementNeeded                                              | 0x000F |
+| * BatReplaceability                                                 | 0x0010 |
+| * BatPresent                                                        | 0x0011 |
+| * ActiveBatFaults                                                   | 0x0012 |
+| * BatReplacementDescription                                         | 0x0013 |
+| * BatCommonDesignation                                              | 0x0014 |
+| * BatANSIDesignation                                                | 0x0015 |
+| * BatIECDesignation                                                 | 0x0016 |
+| * BatApprovedChemistry                                              | 0x0017 |
+| * BatCapacity                                                       | 0x0018 |
+| * BatQuantity                                                       | 0x0019 |
+| * BatChargeState                                                    | 0x001A |
+| * BatTimeToFullCharge                                               | 0x001B |
+| * BatFunctionalWhileCharging                                        | 0x001C |
+| * BatChargingCurrent                                                | 0x001D |
+| * ActiveBatChargeFaults                                             | 0x001E |
 | * GeneratedCommandList                                              | 0xFFF8 |
 | * AcceptedCommandList                                               | 0xFFF9 |
 | * AttributeList                                                     | 0xFFFB |
@@ -11620,50 +11620,45 @@
         make_unique<ReadAttribute>(Id, "wired-assessed-input-voltage", Attributes::WiredAssessedInputVoltage::Id,
                                    credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "wired-assessed-input-frequency", Attributes::WiredAssessedInputFrequency::Id,
-                                   credsIssuerConfig),                                                                           //
-        make_unique<ReadAttribute>(Id, "wired-current-type", Attributes::WiredCurrentType::Id, credsIssuerConfig),               //
-        make_unique<ReadAttribute>(Id, "wired-assessed-current", Attributes::WiredAssessedCurrent::Id, credsIssuerConfig),       //
-        make_unique<ReadAttribute>(Id, "wired-nominal-voltage", Attributes::WiredNominalVoltage::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "wired-maximum-current", Attributes::WiredMaximumCurrent::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "wired-present", Attributes::WiredPresent::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, credsIssuerConfig),             //
-        make_unique<ReadAttribute>(Id, "battery-voltage", Attributes::BatteryVoltage::Id, credsIssuerConfig),                    //
-        make_unique<ReadAttribute>(Id, "battery-percent-remaining", Attributes::BatteryPercentRemaining::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-time-remaining", Attributes::BatteryTimeRemaining::Id, credsIssuerConfig),       //
-        make_unique<ReadAttribute>(Id, "battery-charge-level", Attributes::BatteryChargeLevel::Id, credsIssuerConfig),           //
-        make_unique<ReadAttribute>(Id, "battery-replacement-needed", Attributes::BatteryReplacementNeeded::Id,
-                                   credsIssuerConfig),                                                                      //
-        make_unique<ReadAttribute>(Id, "battery-replaceability", Attributes::BatteryReplaceability::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-present", Attributes::BatteryPresent::Id, credsIssuerConfig),               //
-        make_unique<ReadAttribute>(Id, "active-battery-faults", Attributes::ActiveBatteryFaults::Id, credsIssuerConfig),    //
-        make_unique<ReadAttribute>(Id, "battery-replacement-description", Attributes::BatteryReplacementDescription::Id,
-                                   credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-common-designation", Attributes::BatteryCommonDesignation::Id,
-                                   credsIssuerConfig),                                                                        //
-        make_unique<ReadAttribute>(Id, "battery-ansidesignation", Attributes::BatteryANSIDesignation::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-iecdesignation", Attributes::BatteryIECDesignation::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "battery-approved-chemistry", Attributes::BatteryApprovedChemistry::Id,
-                                   credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "battery-capacity", Attributes::BatteryCapacity::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "battery-quantity", Attributes::BatteryQuantity::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "battery-charge-state", Attributes::BatteryChargeState::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-time-to-full-charge", Attributes::BatteryTimeToFullCharge::Id,
-                                   credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "battery-functional-while-charging", Attributes::BatteryFunctionalWhileCharging::Id,
-                                   credsIssuerConfig),                                                                         //
-        make_unique<ReadAttribute>(Id, "battery-charging-current", Attributes::BatteryChargingCurrent::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "active-battery-charge-faults", Attributes::ActiveBatteryChargeFaults::Id,
                                    credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                            //
-        make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, "order", Attributes::Order::Id, credsIssuerConfig),                            //
-        make_unique<SubscribeAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "wired-current-type", Attributes::WiredCurrentType::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "wired-assessed-current", Attributes::WiredAssessedCurrent::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "wired-nominal-voltage", Attributes::WiredNominalVoltage::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "wired-maximum-current", Attributes::WiredMaximumCurrent::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "wired-present", Attributes::WiredPresent::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "bat-voltage", Attributes::BatVoltage::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "bat-percent-remaining", Attributes::BatPercentRemaining::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "bat-time-remaining", Attributes::BatTimeRemaining::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "bat-charge-level", Attributes::BatChargeLevel::Id, credsIssuerConfig),             //
+        make_unique<ReadAttribute>(Id, "bat-replacement-needed", Attributes::BatReplacementNeeded::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "bat-replaceability", Attributes::BatReplaceability::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "bat-present", Attributes::BatPresent::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "active-bat-faults", Attributes::ActiveBatFaults::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "bat-replacement-description", Attributes::BatReplacementDescription::Id,
+                                   credsIssuerConfig),                                                                     //
+        make_unique<ReadAttribute>(Id, "bat-common-designation", Attributes::BatCommonDesignation::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "bat-ansidesignation", Attributes::BatANSIDesignation::Id, credsIssuerConfig),      //
+        make_unique<ReadAttribute>(Id, "bat-iecdesignation", Attributes::BatIECDesignation::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "bat-approved-chemistry", Attributes::BatApprovedChemistry::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "bat-capacity", Attributes::BatCapacity::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "bat-quantity", Attributes::BatQuantity::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "bat-charge-state", Attributes::BatChargeState::Id, credsIssuerConfig),             //
+        make_unique<ReadAttribute>(Id, "bat-time-to-full-charge", Attributes::BatTimeToFullCharge::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "bat-functional-while-charging", Attributes::BatFunctionalWhileCharging::Id,
+                                   credsIssuerConfig),                                                                        //
+        make_unique<ReadAttribute>(Id, "bat-charging-current", Attributes::BatChargingCurrent::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "active-bat-charge-faults", Attributes::ActiveBatChargeFaults::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),      //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                   //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),               //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               //
+        make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                             //
+        make_unique<SubscribeAttribute>(Id, "order", Attributes::Order::Id, credsIssuerConfig),                               //
+        make_unique<SubscribeAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                   //
         make_unique<SubscribeAttribute>(Id, "wired-assessed-input-voltage", Attributes::WiredAssessedInputVoltage::Id,
                                         credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "wired-assessed-input-frequency", Attributes::WiredAssessedInputFrequency::Id,
@@ -11674,35 +11669,28 @@
         make_unique<SubscribeAttribute>(Id, "wired-maximum-current", Attributes::WiredMaximumCurrent::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "wired-present", Attributes::WiredPresent::Id, credsIssuerConfig),                  //
         make_unique<SubscribeAttribute>(Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, credsIssuerConfig),       //
-        make_unique<SubscribeAttribute>(Id, "battery-voltage", Attributes::BatteryVoltage::Id, credsIssuerConfig),              //
-        make_unique<SubscribeAttribute>(Id, "battery-percent-remaining", Attributes::BatteryPercentRemaining::Id,
+        make_unique<SubscribeAttribute>(Id, "bat-voltage", Attributes::BatVoltage::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "bat-percent-remaining", Attributes::BatPercentRemaining::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "bat-time-remaining", Attributes::BatTimeRemaining::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "bat-charge-level", Attributes::BatChargeLevel::Id, credsIssuerConfig),             //
+        make_unique<SubscribeAttribute>(Id, "bat-replacement-needed", Attributes::BatReplacementNeeded::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "bat-replaceability", Attributes::BatReplaceability::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "bat-present", Attributes::BatPresent::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "active-bat-faults", Attributes::ActiveBatFaults::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "bat-replacement-description", Attributes::BatReplacementDescription::Id,
                                         credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "battery-time-remaining", Attributes::BatteryTimeRemaining::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-charge-level", Attributes::BatteryChargeLevel::Id, credsIssuerConfig),     //
-        make_unique<SubscribeAttribute>(Id, "battery-replacement-needed", Attributes::BatteryReplacementNeeded::Id,
-                                        credsIssuerConfig),                                                                      //
-        make_unique<SubscribeAttribute>(Id, "battery-replaceability", Attributes::BatteryReplaceability::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-present", Attributes::BatteryPresent::Id, credsIssuerConfig),               //
-        make_unique<SubscribeAttribute>(Id, "active-battery-faults", Attributes::ActiveBatteryFaults::Id, credsIssuerConfig),    //
-        make_unique<SubscribeAttribute>(Id, "battery-replacement-description", Attributes::BatteryReplacementDescription::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-common-designation", Attributes::BatteryCommonDesignation::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-ansidesignation", Attributes::BatteryANSIDesignation::Id,
-                                        credsIssuerConfig),                                                                      //
-        make_unique<SubscribeAttribute>(Id, "battery-iecdesignation", Attributes::BatteryIECDesignation::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-approved-chemistry", Attributes::BatteryApprovedChemistry::Id,
+        make_unique<SubscribeAttribute>(Id, "bat-common-designation", Attributes::BatCommonDesignation::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "bat-ansidesignation", Attributes::BatANSIDesignation::Id, credsIssuerConfig),      //
+        make_unique<SubscribeAttribute>(Id, "bat-iecdesignation", Attributes::BatIECDesignation::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "bat-approved-chemistry", Attributes::BatApprovedChemistry::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "bat-capacity", Attributes::BatCapacity::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "bat-quantity", Attributes::BatQuantity::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "bat-charge-state", Attributes::BatChargeState::Id, credsIssuerConfig),             //
+        make_unique<SubscribeAttribute>(Id, "bat-time-to-full-charge", Attributes::BatTimeToFullCharge::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "bat-functional-while-charging", Attributes::BatFunctionalWhileCharging::Id,
                                         credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "battery-capacity", Attributes::BatteryCapacity::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "battery-quantity", Attributes::BatteryQuantity::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "battery-charge-state", Attributes::BatteryChargeState::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-time-to-full-charge", Attributes::BatteryTimeToFullCharge::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-functional-while-charging", Attributes::BatteryFunctionalWhileCharging::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "battery-charging-current", Attributes::BatteryChargingCurrent::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "active-battery-charge-faults", Attributes::ActiveBatteryChargeFaults::Id,
+        make_unique<SubscribeAttribute>(Id, "bat-charging-current", Attributes::BatChargingCurrent::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "active-bat-charge-faults", Attributes::ActiveBatChargeFaults::Id,
                                         credsIssuerConfig),                                                                     //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index f1c6d71..f7e4829 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -5168,7 +5168,7 @@
         switch (path.mAttributeId)
         {
         case PowerSource::Attributes::Status::Id: {
-            uint8_t value;
+            chip::app::Clusters::PowerSource::PowerSourceStatus value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("Status", 1, value);
         }
@@ -5183,22 +5183,22 @@
             return DataModelLogger::LogValue("Description", 1, value);
         }
         case PowerSource::Attributes::WiredAssessedInputVoltage::Id: {
-            uint32_t value;
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("WiredAssessedInputVoltage", 1, value);
         }
         case PowerSource::Attributes::WiredAssessedInputFrequency::Id: {
-            uint16_t value;
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("WiredAssessedInputFrequency", 1, value);
         }
         case PowerSource::Attributes::WiredCurrentType::Id: {
-            uint8_t value;
+            chip::app::Clusters::PowerSource::WiredCurrentType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("WiredCurrentType", 1, value);
         }
         case PowerSource::Attributes::WiredAssessedCurrent::Id: {
-            uint32_t value;
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("WiredAssessedCurrent", 1, value);
         }
@@ -5218,109 +5218,109 @@
             return DataModelLogger::LogValue("WiredPresent", 1, value);
         }
         case PowerSource::Attributes::ActiveWiredFaults::Id: {
-            chip::app::DataModel::DecodableList<uint8_t> value;
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ActiveWiredFaults", 1, value);
         }
-        case PowerSource::Attributes::BatteryVoltage::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatVoltage::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryVoltage", 1, value);
+            return DataModelLogger::LogValue("BatVoltage", 1, value);
         }
-        case PowerSource::Attributes::BatteryPercentRemaining::Id: {
-            uint8_t value;
+        case PowerSource::Attributes::BatPercentRemaining::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryPercentRemaining", 1, value);
+            return DataModelLogger::LogValue("BatPercentRemaining", 1, value);
         }
-        case PowerSource::Attributes::BatteryTimeRemaining::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatTimeRemaining::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryTimeRemaining", 1, value);
+            return DataModelLogger::LogValue("BatTimeRemaining", 1, value);
         }
-        case PowerSource::Attributes::BatteryChargeLevel::Id: {
-            uint8_t value;
+        case PowerSource::Attributes::BatChargeLevel::Id: {
+            chip::app::Clusters::PowerSource::BatChargeLevel value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryChargeLevel", 1, value);
+            return DataModelLogger::LogValue("BatChargeLevel", 1, value);
         }
-        case PowerSource::Attributes::BatteryReplacementNeeded::Id: {
+        case PowerSource::Attributes::BatReplacementNeeded::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryReplacementNeeded", 1, value);
+            return DataModelLogger::LogValue("BatReplacementNeeded", 1, value);
         }
-        case PowerSource::Attributes::BatteryReplaceability::Id: {
-            uint8_t value;
+        case PowerSource::Attributes::BatReplaceability::Id: {
+            chip::app::Clusters::PowerSource::BatReplaceability value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryReplaceability", 1, value);
+            return DataModelLogger::LogValue("BatReplaceability", 1, value);
         }
-        case PowerSource::Attributes::BatteryPresent::Id: {
+        case PowerSource::Attributes::BatPresent::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryPresent", 1, value);
+            return DataModelLogger::LogValue("BatPresent", 1, value);
         }
-        case PowerSource::Attributes::ActiveBatteryFaults::Id: {
-            chip::app::DataModel::DecodableList<uint8_t> value;
+        case PowerSource::Attributes::ActiveBatFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveBatteryFaults", 1, value);
+            return DataModelLogger::LogValue("ActiveBatFaults", 1, value);
         }
-        case PowerSource::Attributes::BatteryReplacementDescription::Id: {
+        case PowerSource::Attributes::BatReplacementDescription::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryReplacementDescription", 1, value);
+            return DataModelLogger::LogValue("BatReplacementDescription", 1, value);
         }
-        case PowerSource::Attributes::BatteryCommonDesignation::Id: {
+        case PowerSource::Attributes::BatCommonDesignation::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryCommonDesignation", 1, value);
+            return DataModelLogger::LogValue("BatCommonDesignation", 1, value);
         }
-        case PowerSource::Attributes::BatteryANSIDesignation::Id: {
+        case PowerSource::Attributes::BatANSIDesignation::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryANSIDesignation", 1, value);
+            return DataModelLogger::LogValue("BatANSIDesignation", 1, value);
         }
-        case PowerSource::Attributes::BatteryIECDesignation::Id: {
+        case PowerSource::Attributes::BatIECDesignation::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryIECDesignation", 1, value);
+            return DataModelLogger::LogValue("BatIECDesignation", 1, value);
         }
-        case PowerSource::Attributes::BatteryApprovedChemistry::Id: {
+        case PowerSource::Attributes::BatApprovedChemistry::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryApprovedChemistry", 1, value);
+            return DataModelLogger::LogValue("BatApprovedChemistry", 1, value);
         }
-        case PowerSource::Attributes::BatteryCapacity::Id: {
+        case PowerSource::Attributes::BatCapacity::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryCapacity", 1, value);
+            return DataModelLogger::LogValue("BatCapacity", 1, value);
         }
-        case PowerSource::Attributes::BatteryQuantity::Id: {
+        case PowerSource::Attributes::BatQuantity::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryQuantity", 1, value);
+            return DataModelLogger::LogValue("BatQuantity", 1, value);
         }
-        case PowerSource::Attributes::BatteryChargeState::Id: {
-            uint8_t value;
+        case PowerSource::Attributes::BatChargeState::Id: {
+            chip::app::Clusters::PowerSource::BatChargeState value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryChargeState", 1, value);
+            return DataModelLogger::LogValue("BatChargeState", 1, value);
         }
-        case PowerSource::Attributes::BatteryTimeToFullCharge::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatTimeToFullCharge::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryTimeToFullCharge", 1, value);
+            return DataModelLogger::LogValue("BatTimeToFullCharge", 1, value);
         }
-        case PowerSource::Attributes::BatteryFunctionalWhileCharging::Id: {
+        case PowerSource::Attributes::BatFunctionalWhileCharging::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryFunctionalWhileCharging", 1, value);
+            return DataModelLogger::LogValue("BatFunctionalWhileCharging", 1, value);
         }
-        case PowerSource::Attributes::BatteryChargingCurrent::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatChargingCurrent::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryChargingCurrent", 1, value);
+            return DataModelLogger::LogValue("BatChargingCurrent", 1, value);
         }
-        case PowerSource::Attributes::ActiveBatteryChargeFaults::Id: {
-            chip::app::DataModel::DecodableList<uint8_t> value;
+        case PowerSource::Attributes::ActiveBatChargeFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveBatteryChargeFaults", 1, value);
+            return DataModelLogger::LogValue("ActiveBatChargeFaults", 1, value);
         }
         case PowerSource::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h
index 1aad6e7..35dc423 100644
--- a/zzz_generated/chip-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h
@@ -23237,7 +23237,7 @@
         case 1:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::Clusters::PowerSource::PowerSourceStatus value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "enum8"));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -23263,7 +23263,7 @@
         case 4:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23271,7 +23271,7 @@
         case 5:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint16_t value;
+                chip::app::DataModel::Nullable<uint16_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint16"));
             }
@@ -23279,7 +23279,7 @@
         case 6:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::Clusters::PowerSource::WiredCurrentType value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "enum8"));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -23289,7 +23289,7 @@
         case 7:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23321,7 +23321,7 @@
         case 11:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                chip::app::DataModel::DecodableList<uint8_t> value;
+                chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "list"));
             }
@@ -23329,7 +23329,7 @@
         case 12:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23337,7 +23337,7 @@
         case 13:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::DataModel::Nullable<uint8_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint8"));
             }
@@ -23345,7 +23345,7 @@
         case 14:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23353,7 +23353,7 @@
         case 15:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::Clusters::PowerSource::BatChargeLevel value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "enum8"));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -23371,7 +23371,7 @@
         case 17:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::Clusters::PowerSource::BatReplaceability value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "enum8"));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -23389,7 +23389,7 @@
         case 19:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                chip::app::DataModel::DecodableList<uint8_t> value;
+                chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "list"));
             }
@@ -23460,7 +23460,7 @@
         case 27:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint8_t value;
+                chip::app::Clusters::PowerSource::BatChargeState value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "enum8"));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
@@ -23470,7 +23470,7 @@
         case 28:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23486,7 +23486,7 @@
         case 30:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                uint32_t value;
+                chip::app::DataModel::Nullable<uint32_t> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "uint32"));
             }
@@ -23494,7 +23494,7 @@
         case 31:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                chip::app::DataModel::DecodableList<uint8_t> value;
+                chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "", "list"));
             }
@@ -23590,122 +23590,122 @@
         case 12: {
             LogStep(12, "Test Harness Client reads BatVoltage from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A000b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryVoltage::Id, true,
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatVoltage::Id, true,
                                  chip::NullOptional);
         }
         case 13: {
             LogStep(13, "Test Harness Client reads BatPercentRemaining from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A000c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryPercentRemaining::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatPercentRemaining::Id,
+                                 true, chip::NullOptional);
         }
         case 14: {
             LogStep(14, "Test Harness Client reads BatTimeRemaining from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A000d"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryTimeRemaining::Id,
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatTimeRemaining::Id,
                                  true, chip::NullOptional);
         }
         case 15: {
             LogStep(15, "Test Harness Client reads BatChargeLevel from Server DUT");
             VerifyOrDo(!ShouldSkip("PS.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryChargeLevel::Id,
-                                 true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatChargeLevel::Id, true,
+                                 chip::NullOptional);
         }
         case 16: {
             LogStep(16, "Test Harness Client reads BatReplacementNeeded from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A000f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryReplacementNeeded::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatReplacementNeeded::Id,
+                                 true, chip::NullOptional);
         }
         case 17: {
             LogStep(17, "Test Harness Client reads BatReplaceability from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryReplaceability::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatReplaceability::Id,
+                                 true, chip::NullOptional);
         }
         case 18: {
             LogStep(18, "Test Harness Client reads BatPresent from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryPresent::Id, true,
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatPresent::Id, true,
                                  chip::NullOptional);
         }
         case 19: {
             LogStep(19, "Test Harness Client readsActiveBatFaults from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ActiveBatteryFaults::Id,
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::ActiveBatFaults::Id,
                                  true, chip::NullOptional);
         }
         case 20: {
             LogStep(20, "Test Harness Client reads BatReplacementDescription from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryReplacementDescription::Id, true, chip::NullOptional);
+                                 PowerSource::Attributes::BatReplacementDescription::Id, true, chip::NullOptional);
         }
         case 21: {
             LogStep(21, "Test Harness Client reads BatCommonDesignation from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryCommonDesignation::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatCommonDesignation::Id,
+                                 true, chip::NullOptional);
         }
         case 22: {
             LogStep(22, "Test Harness Client reads BatANSIDesignation from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryANSIDesignation::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatANSIDesignation::Id,
+                                 true, chip::NullOptional);
         }
         case 23: {
             LogStep(23, "Test Harness Client reads BatIECDesignation from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryIECDesignation::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatIECDesignation::Id,
+                                 true, chip::NullOptional);
         }
         case 24: {
             LogStep(24, "Test Harness Client reads BatApprovedChemistry from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryApprovedChemistry::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatApprovedChemistry::Id,
+                                 true, chip::NullOptional);
         }
         case 25: {
             LogStep(25, "Test Harness Client reads BatCapacity from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryCapacity::Id,
-                                 true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatCapacity::Id, true,
+                                 chip::NullOptional);
         }
         case 26: {
             LogStep(26, "Test Harness Client reads BatQuantity from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryQuantity::Id,
-                                 true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatQuantity::Id, true,
+                                 chip::NullOptional);
         }
         case 27: {
             LogStep(27, "Test Harness Client reads BatChargeState from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatteryChargeState::Id,
-                                 true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatChargeState::Id, true,
+                                 chip::NullOptional);
         }
         case 28: {
             LogStep(28, "Test Harness Client reads BatTimeToFullCharge from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryTimeToFullCharge::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatTimeToFullCharge::Id,
+                                 true, chip::NullOptional);
         }
         case 29: {
             LogStep(29, "Test Harness Client reads BatFunctionalWhileCharging from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryFunctionalWhileCharging::Id, true, chip::NullOptional);
+                                 PowerSource::Attributes::BatFunctionalWhileCharging::Id, true, chip::NullOptional);
         }
         case 30: {
             LogStep(30, "Test Harness Client reads BatChargingCurrent from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::BatteryChargingCurrent::Id, true, chip::NullOptional);
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id, PowerSource::Attributes::BatChargingCurrent::Id,
+                                 true, chip::NullOptional);
         }
         case 31: {
             LogStep(31, "Test Harness Client reads ActiveBatChargeFaults from Server DUT");
             VerifyOrDo(!ShouldSkip("PICS_SKIP_SAMPLE_APP && PS.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), PowerSource::Id,
-                                 PowerSource::Attributes::ActiveBatteryChargeFaults::Id, true, chip::NullOptional);
+                                 PowerSource::Attributes::ActiveBatChargeFaults::Id, true, chip::NullOptional);
         }
         }
         return CHIP_NO_ERROR;
diff --git a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h
index c9794be..f362b1d 100644
--- a/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h
+++ b/zzz_generated/controller-clusters/zap-generated/CHIPClientCallbacks.h
@@ -158,12 +158,12 @@
     void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
 typedef void (*PowerSourceConfigurationAttributeListListAttributeCallback)(
     void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
-typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)(void * context,
-                                                                  const chip::app::DataModel::DecodableList<uint8_t> & data);
-typedef void (*PowerSourceActiveBatteryFaultsListAttributeCallback)(void * context,
-                                                                    const chip::app::DataModel::DecodableList<uint8_t> & data);
-typedef void (*PowerSourceActiveBatteryChargeFaultsListAttributeCallback)(
-    void * context, const chip::app::DataModel::DecodableList<uint8_t> & data);
+typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & data);
+typedef void (*PowerSourceActiveBatFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & data);
+typedef void (*PowerSourceActiveBatChargeFaultsListAttributeCallback)(
+    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & data);
 typedef void (*PowerSourceGeneratedCommandListListAttributeCallback)(
     void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
 typedef void (*PowerSourceAcceptedCommandListListAttributeCallback)(
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
index 0614e53..db233e7 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -16015,26 +16015,26 @@
 | * WiredMaximumCurrent                                               | 0x0008 |
 | * WiredPresent                                                      | 0x0009 |
 | * ActiveWiredFaults                                                 | 0x000A |
-| * BatteryVoltage                                                    | 0x000B |
-| * BatteryPercentRemaining                                           | 0x000C |
-| * BatteryTimeRemaining                                              | 0x000D |
-| * BatteryChargeLevel                                                | 0x000E |
-| * BatteryReplacementNeeded                                          | 0x000F |
-| * BatteryReplaceability                                             | 0x0010 |
-| * BatteryPresent                                                    | 0x0011 |
-| * ActiveBatteryFaults                                               | 0x0012 |
-| * BatteryReplacementDescription                                     | 0x0013 |
-| * BatteryCommonDesignation                                          | 0x0014 |
-| * BatteryANSIDesignation                                            | 0x0015 |
-| * BatteryIECDesignation                                             | 0x0016 |
-| * BatteryApprovedChemistry                                          | 0x0017 |
-| * BatteryCapacity                                                   | 0x0018 |
-| * BatteryQuantity                                                   | 0x0019 |
-| * BatteryChargeState                                                | 0x001A |
-| * BatteryTimeToFullCharge                                           | 0x001B |
-| * BatteryFunctionalWhileCharging                                    | 0x001C |
-| * BatteryChargingCurrent                                            | 0x001D |
-| * ActiveBatteryChargeFaults                                         | 0x001E |
+| * BatVoltage                                                        | 0x000B |
+| * BatPercentRemaining                                               | 0x000C |
+| * BatTimeRemaining                                                  | 0x000D |
+| * BatChargeLevel                                                    | 0x000E |
+| * BatReplacementNeeded                                              | 0x000F |
+| * BatReplaceability                                                 | 0x0010 |
+| * BatPresent                                                        | 0x0011 |
+| * ActiveBatFaults                                                   | 0x0012 |
+| * BatReplacementDescription                                         | 0x0013 |
+| * BatCommonDesignation                                              | 0x0014 |
+| * BatANSIDesignation                                                | 0x0015 |
+| * BatIECDesignation                                                 | 0x0016 |
+| * BatApprovedChemistry                                              | 0x0017 |
+| * BatCapacity                                                       | 0x0018 |
+| * BatQuantity                                                       | 0x0019 |
+| * BatChargeState                                                    | 0x001A |
+| * BatTimeToFullCharge                                               | 0x001B |
+| * BatFunctionalWhileCharging                                        | 0x001C |
+| * BatChargingCurrent                                                | 0x001D |
+| * ActiveBatChargeFaults                                             | 0x001E |
 | * GeneratedCommandList                                              | 0xFFF8 |
 | * AcceptedCommandList                                               | 0xFFF9 |
 | * AttributeList                                                     | 0xFFFB |
@@ -16795,16 +16795,16 @@
 };
 
 /*
- * Attribute BatteryVoltage
+ * Attribute BatVoltage
  */
-class ReadPowerSourceBatteryVoltage : public ReadAttribute {
+class ReadPowerSourceBatVoltage : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryVoltage()
-        : ReadAttribute("battery-voltage")
+    ReadPowerSourceBatVoltage()
+        : ReadAttribute("bat-voltage")
     {
     }
 
-    ~ReadPowerSourceBatteryVoltage() {}
+    ~ReadPowerSourceBatVoltage() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16814,10 +16814,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryVoltageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryVoltage response %@", [value description]);
+        [cluster readAttributeBatVoltageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatVoltage response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryVoltage read Error", error);
+                LogNSError("PowerSource BatVoltage read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -16825,14 +16825,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryVoltage : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatVoltage : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryVoltage()
-        : SubscribeAttribute("battery-voltage")
+    SubscribeAttributePowerSourceBatVoltage()
+        : SubscribeAttribute("bat-voltage")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryVoltage() {}
+    ~SubscribeAttributePowerSourceBatVoltage() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16845,14 +16845,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryVoltageWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatVoltageWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryVoltage response %@", [value description]);
+                NSLog(@"PowerSource.BatVoltage response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -16863,16 +16863,16 @@
 };
 
 /*
- * Attribute BatteryPercentRemaining
+ * Attribute BatPercentRemaining
  */
-class ReadPowerSourceBatteryPercentRemaining : public ReadAttribute {
+class ReadPowerSourceBatPercentRemaining : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryPercentRemaining()
-        : ReadAttribute("battery-percent-remaining")
+    ReadPowerSourceBatPercentRemaining()
+        : ReadAttribute("bat-percent-remaining")
     {
     }
 
-    ~ReadPowerSourceBatteryPercentRemaining() {}
+    ~ReadPowerSourceBatPercentRemaining() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16882,26 +16882,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeBatteryPercentRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryPercentRemaining response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource BatteryPercentRemaining read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeBatPercentRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatPercentRemaining response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource BatPercentRemaining read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryPercentRemaining : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatPercentRemaining : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryPercentRemaining()
-        : SubscribeAttribute("battery-percent-remaining")
+    SubscribeAttributePowerSourceBatPercentRemaining()
+        : SubscribeAttribute("bat-percent-remaining")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryPercentRemaining() {}
+    ~SubscribeAttributePowerSourceBatPercentRemaining() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16914,14 +16913,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryPercentRemainingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatPercentRemainingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryPercentRemaining response %@", [value description]);
+                NSLog(@"PowerSource.BatPercentRemaining response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -16932,16 +16931,16 @@
 };
 
 /*
- * Attribute BatteryTimeRemaining
+ * Attribute BatTimeRemaining
  */
-class ReadPowerSourceBatteryTimeRemaining : public ReadAttribute {
+class ReadPowerSourceBatTimeRemaining : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryTimeRemaining()
-        : ReadAttribute("battery-time-remaining")
+    ReadPowerSourceBatTimeRemaining()
+        : ReadAttribute("bat-time-remaining")
     {
     }
 
-    ~ReadPowerSourceBatteryTimeRemaining() {}
+    ~ReadPowerSourceBatTimeRemaining() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16951,10 +16950,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryTimeRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryTimeRemaining response %@", [value description]);
+        [cluster readAttributeBatTimeRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatTimeRemaining response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryTimeRemaining read Error", error);
+                LogNSError("PowerSource BatTimeRemaining read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -16962,14 +16961,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryTimeRemaining : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatTimeRemaining : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryTimeRemaining()
-        : SubscribeAttribute("battery-time-remaining")
+    SubscribeAttributePowerSourceBatTimeRemaining()
+        : SubscribeAttribute("bat-time-remaining")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryTimeRemaining() {}
+    ~SubscribeAttributePowerSourceBatTimeRemaining() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -16982,14 +16981,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryTimeRemainingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatTimeRemainingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryTimeRemaining response %@", [value description]);
+                NSLog(@"PowerSource.BatTimeRemaining response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17000,16 +16999,16 @@
 };
 
 /*
- * Attribute BatteryChargeLevel
+ * Attribute BatChargeLevel
  */
-class ReadPowerSourceBatteryChargeLevel : public ReadAttribute {
+class ReadPowerSourceBatChargeLevel : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryChargeLevel()
-        : ReadAttribute("battery-charge-level")
+    ReadPowerSourceBatChargeLevel()
+        : ReadAttribute("bat-charge-level")
     {
     }
 
-    ~ReadPowerSourceBatteryChargeLevel() {}
+    ~ReadPowerSourceBatChargeLevel() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17019,10 +17018,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryChargeLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryChargeLevel response %@", [value description]);
+        [cluster readAttributeBatChargeLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatChargeLevel response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryChargeLevel read Error", error);
+                LogNSError("PowerSource BatChargeLevel read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17030,14 +17029,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryChargeLevel : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatChargeLevel : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryChargeLevel()
-        : SubscribeAttribute("battery-charge-level")
+    SubscribeAttributePowerSourceBatChargeLevel()
+        : SubscribeAttribute("bat-charge-level")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryChargeLevel() {}
+    ~SubscribeAttributePowerSourceBatChargeLevel() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17050,14 +17049,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryChargeLevelWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatChargeLevelWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryChargeLevel response %@", [value description]);
+                NSLog(@"PowerSource.BatChargeLevel response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17068,16 +17067,16 @@
 };
 
 /*
- * Attribute BatteryReplacementNeeded
+ * Attribute BatReplacementNeeded
  */
-class ReadPowerSourceBatteryReplacementNeeded : public ReadAttribute {
+class ReadPowerSourceBatReplacementNeeded : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryReplacementNeeded()
-        : ReadAttribute("battery-replacement-needed")
+    ReadPowerSourceBatReplacementNeeded()
+        : ReadAttribute("bat-replacement-needed")
     {
     }
 
-    ~ReadPowerSourceBatteryReplacementNeeded() {}
+    ~ReadPowerSourceBatReplacementNeeded() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17087,26 +17086,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeBatteryReplacementNeededWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryReplacementNeeded response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource BatteryReplacementNeeded read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeBatReplacementNeededWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatReplacementNeeded response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource BatReplacementNeeded read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryReplacementNeeded : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatReplacementNeeded : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryReplacementNeeded()
-        : SubscribeAttribute("battery-replacement-needed")
+    SubscribeAttributePowerSourceBatReplacementNeeded()
+        : SubscribeAttribute("bat-replacement-needed")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryReplacementNeeded() {}
+    ~SubscribeAttributePowerSourceBatReplacementNeeded() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17119,14 +17117,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryReplacementNeededWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatReplacementNeededWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryReplacementNeeded response %@", [value description]);
+                NSLog(@"PowerSource.BatReplacementNeeded response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17137,16 +17135,16 @@
 };
 
 /*
- * Attribute BatteryReplaceability
+ * Attribute BatReplaceability
  */
-class ReadPowerSourceBatteryReplaceability : public ReadAttribute {
+class ReadPowerSourceBatReplaceability : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryReplaceability()
-        : ReadAttribute("battery-replaceability")
+    ReadPowerSourceBatReplaceability()
+        : ReadAttribute("bat-replaceability")
     {
     }
 
-    ~ReadPowerSourceBatteryReplaceability() {}
+    ~ReadPowerSourceBatReplaceability() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17156,10 +17154,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryReplaceabilityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryReplaceability response %@", [value description]);
+        [cluster readAttributeBatReplaceabilityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatReplaceability response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryReplaceability read Error", error);
+                LogNSError("PowerSource BatReplaceability read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17167,14 +17165,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryReplaceability : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatReplaceability : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryReplaceability()
-        : SubscribeAttribute("battery-replaceability")
+    SubscribeAttributePowerSourceBatReplaceability()
+        : SubscribeAttribute("bat-replaceability")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryReplaceability() {}
+    ~SubscribeAttributePowerSourceBatReplaceability() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17187,14 +17185,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryReplaceabilityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatReplaceabilityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryReplaceability response %@", [value description]);
+                NSLog(@"PowerSource.BatReplaceability response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17205,16 +17203,16 @@
 };
 
 /*
- * Attribute BatteryPresent
+ * Attribute BatPresent
  */
-class ReadPowerSourceBatteryPresent : public ReadAttribute {
+class ReadPowerSourceBatPresent : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryPresent()
-        : ReadAttribute("battery-present")
+    ReadPowerSourceBatPresent()
+        : ReadAttribute("bat-present")
     {
     }
 
-    ~ReadPowerSourceBatteryPresent() {}
+    ~ReadPowerSourceBatPresent() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17224,10 +17222,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryPresentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryPresent response %@", [value description]);
+        [cluster readAttributeBatPresentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatPresent response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryPresent read Error", error);
+                LogNSError("PowerSource BatPresent read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17235,14 +17233,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryPresent : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatPresent : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryPresent()
-        : SubscribeAttribute("battery-present")
+    SubscribeAttributePowerSourceBatPresent()
+        : SubscribeAttribute("bat-present")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryPresent() {}
+    ~SubscribeAttributePowerSourceBatPresent() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17255,14 +17253,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryPresentWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatPresentWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryPresent response %@", [value description]);
+                NSLog(@"PowerSource.BatPresent response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17273,16 +17271,16 @@
 };
 
 /*
- * Attribute ActiveBatteryFaults
+ * Attribute ActiveBatFaults
  */
-class ReadPowerSourceActiveBatteryFaults : public ReadAttribute {
+class ReadPowerSourceActiveBatFaults : public ReadAttribute {
 public:
-    ReadPowerSourceActiveBatteryFaults()
-        : ReadAttribute("active-battery-faults")
+    ReadPowerSourceActiveBatFaults()
+        : ReadAttribute("active-bat-faults")
     {
     }
 
-    ~ReadPowerSourceActiveBatteryFaults() {}
+    ~ReadPowerSourceActiveBatFaults() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17292,10 +17290,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeActiveBatteryFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.ActiveBatteryFaults response %@", [value description]);
+        [cluster readAttributeActiveBatFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.ActiveBatFaults response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource ActiveBatteryFaults read Error", error);
+                LogNSError("PowerSource ActiveBatFaults read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17303,14 +17301,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceActiveBatteryFaults : public SubscribeAttribute {
+class SubscribeAttributePowerSourceActiveBatFaults : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceActiveBatteryFaults()
-        : SubscribeAttribute("active-battery-faults")
+    SubscribeAttributePowerSourceActiveBatFaults()
+        : SubscribeAttribute("active-bat-faults")
     {
     }
 
-    ~SubscribeAttributePowerSourceActiveBatteryFaults() {}
+    ~SubscribeAttributePowerSourceActiveBatFaults() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17323,14 +17321,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeActiveBatteryFaultsWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeActiveBatFaultsWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.ActiveBatteryFaults response %@", [value description]);
+                NSLog(@"PowerSource.ActiveBatFaults response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17341,16 +17339,16 @@
 };
 
 /*
- * Attribute BatteryReplacementDescription
+ * Attribute BatReplacementDescription
  */
-class ReadPowerSourceBatteryReplacementDescription : public ReadAttribute {
+class ReadPowerSourceBatReplacementDescription : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryReplacementDescription()
-        : ReadAttribute("battery-replacement-description")
+    ReadPowerSourceBatReplacementDescription()
+        : ReadAttribute("bat-replacement-description")
     {
     }
 
-    ~ReadPowerSourceBatteryReplacementDescription() {}
+    ~ReadPowerSourceBatReplacementDescription() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17360,26 +17358,26 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryReplacementDescriptionWithCompletionHandler:^(
-            NSString * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryReplacementDescription response %@", [value description]);
-            if (error != nil) {
-                LogNSError("PowerSource BatteryReplacementDescription read Error", error);
-            }
-            SetCommandExitStatus(error);
-        }];
+        [cluster
+            readAttributeBatReplacementDescriptionWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PowerSource.BatReplacementDescription response %@", [value description]);
+                if (error != nil) {
+                    LogNSError("PowerSource BatReplacementDescription read Error", error);
+                }
+                SetCommandExitStatus(error);
+            }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryReplacementDescription : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatReplacementDescription : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryReplacementDescription()
-        : SubscribeAttribute("battery-replacement-description")
+    SubscribeAttributePowerSourceBatReplacementDescription()
+        : SubscribeAttribute("bat-replacement-description")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryReplacementDescription() {}
+    ~SubscribeAttributePowerSourceBatReplacementDescription() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17392,14 +17390,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryReplacementDescriptionWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatReplacementDescriptionWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryReplacementDescription response %@", [value description]);
+                NSLog(@"PowerSource.BatReplacementDescription response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17410,16 +17408,16 @@
 };
 
 /*
- * Attribute BatteryCommonDesignation
+ * Attribute BatCommonDesignation
  */
-class ReadPowerSourceBatteryCommonDesignation : public ReadAttribute {
+class ReadPowerSourceBatCommonDesignation : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryCommonDesignation()
-        : ReadAttribute("battery-common-designation")
+    ReadPowerSourceBatCommonDesignation()
+        : ReadAttribute("bat-common-designation")
     {
     }
 
-    ~ReadPowerSourceBatteryCommonDesignation() {}
+    ~ReadPowerSourceBatCommonDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17429,26 +17427,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeBatteryCommonDesignationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryCommonDesignation response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource BatteryCommonDesignation read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeBatCommonDesignationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatCommonDesignation response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource BatCommonDesignation read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryCommonDesignation : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatCommonDesignation : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryCommonDesignation()
-        : SubscribeAttribute("battery-common-designation")
+    SubscribeAttributePowerSourceBatCommonDesignation()
+        : SubscribeAttribute("bat-common-designation")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryCommonDesignation() {}
+    ~SubscribeAttributePowerSourceBatCommonDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17461,14 +17458,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryCommonDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatCommonDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryCommonDesignation response %@", [value description]);
+                NSLog(@"PowerSource.BatCommonDesignation response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17479,16 +17476,16 @@
 };
 
 /*
- * Attribute BatteryANSIDesignation
+ * Attribute BatANSIDesignation
  */
-class ReadPowerSourceBatteryANSIDesignation : public ReadAttribute {
+class ReadPowerSourceBatANSIDesignation : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryANSIDesignation()
-        : ReadAttribute("battery-ansidesignation")
+    ReadPowerSourceBatANSIDesignation()
+        : ReadAttribute("bat-ansidesignation")
     {
     }
 
-    ~ReadPowerSourceBatteryANSIDesignation() {}
+    ~ReadPowerSourceBatANSIDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17498,10 +17495,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryANSIDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryANSIDesignation response %@", [value description]);
+        [cluster readAttributeBatANSIDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatANSIDesignation response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryANSIDesignation read Error", error);
+                LogNSError("PowerSource BatANSIDesignation read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17509,14 +17506,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryANSIDesignation : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatANSIDesignation : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryANSIDesignation()
-        : SubscribeAttribute("battery-ansidesignation")
+    SubscribeAttributePowerSourceBatANSIDesignation()
+        : SubscribeAttribute("bat-ansidesignation")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryANSIDesignation() {}
+    ~SubscribeAttributePowerSourceBatANSIDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17529,14 +17526,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryANSIDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatANSIDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryANSIDesignation response %@", [value description]);
+                NSLog(@"PowerSource.BatANSIDesignation response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17547,16 +17544,16 @@
 };
 
 /*
- * Attribute BatteryIECDesignation
+ * Attribute BatIECDesignation
  */
-class ReadPowerSourceBatteryIECDesignation : public ReadAttribute {
+class ReadPowerSourceBatIECDesignation : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryIECDesignation()
-        : ReadAttribute("battery-iecdesignation")
+    ReadPowerSourceBatIECDesignation()
+        : ReadAttribute("bat-iecdesignation")
     {
     }
 
-    ~ReadPowerSourceBatteryIECDesignation() {}
+    ~ReadPowerSourceBatIECDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17566,10 +17563,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryIECDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryIECDesignation response %@", [value description]);
+        [cluster readAttributeBatIECDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatIECDesignation response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryIECDesignation read Error", error);
+                LogNSError("PowerSource BatIECDesignation read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17577,14 +17574,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryIECDesignation : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatIECDesignation : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryIECDesignation()
-        : SubscribeAttribute("battery-iecdesignation")
+    SubscribeAttributePowerSourceBatIECDesignation()
+        : SubscribeAttribute("bat-iecdesignation")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryIECDesignation() {}
+    ~SubscribeAttributePowerSourceBatIECDesignation() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17597,14 +17594,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryIECDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatIECDesignationWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSString * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryIECDesignation response %@", [value description]);
+                NSLog(@"PowerSource.BatIECDesignation response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17615,16 +17612,16 @@
 };
 
 /*
- * Attribute BatteryApprovedChemistry
+ * Attribute BatApprovedChemistry
  */
-class ReadPowerSourceBatteryApprovedChemistry : public ReadAttribute {
+class ReadPowerSourceBatApprovedChemistry : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryApprovedChemistry()
-        : ReadAttribute("battery-approved-chemistry")
+    ReadPowerSourceBatApprovedChemistry()
+        : ReadAttribute("bat-approved-chemistry")
     {
     }
 
-    ~ReadPowerSourceBatteryApprovedChemistry() {}
+    ~ReadPowerSourceBatApprovedChemistry() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17634,26 +17631,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeBatteryApprovedChemistryWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryApprovedChemistry response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource BatteryApprovedChemistry read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeBatApprovedChemistryWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatApprovedChemistry response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource BatApprovedChemistry read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryApprovedChemistry : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatApprovedChemistry : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryApprovedChemistry()
-        : SubscribeAttribute("battery-approved-chemistry")
+    SubscribeAttributePowerSourceBatApprovedChemistry()
+        : SubscribeAttribute("bat-approved-chemistry")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryApprovedChemistry() {}
+    ~SubscribeAttributePowerSourceBatApprovedChemistry() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17666,14 +17662,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryApprovedChemistryWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatApprovedChemistryWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryApprovedChemistry response %@", [value description]);
+                NSLog(@"PowerSource.BatApprovedChemistry response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17684,16 +17680,16 @@
 };
 
 /*
- * Attribute BatteryCapacity
+ * Attribute BatCapacity
  */
-class ReadPowerSourceBatteryCapacity : public ReadAttribute {
+class ReadPowerSourceBatCapacity : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryCapacity()
-        : ReadAttribute("battery-capacity")
+    ReadPowerSourceBatCapacity()
+        : ReadAttribute("bat-capacity")
     {
     }
 
-    ~ReadPowerSourceBatteryCapacity() {}
+    ~ReadPowerSourceBatCapacity() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17703,10 +17699,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryCapacityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryCapacity response %@", [value description]);
+        [cluster readAttributeBatCapacityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatCapacity response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryCapacity read Error", error);
+                LogNSError("PowerSource BatCapacity read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17714,14 +17710,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryCapacity : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatCapacity : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryCapacity()
-        : SubscribeAttribute("battery-capacity")
+    SubscribeAttributePowerSourceBatCapacity()
+        : SubscribeAttribute("bat-capacity")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryCapacity() {}
+    ~SubscribeAttributePowerSourceBatCapacity() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17734,14 +17730,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryCapacityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatCapacityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryCapacity response %@", [value description]);
+                NSLog(@"PowerSource.BatCapacity response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17752,16 +17748,16 @@
 };
 
 /*
- * Attribute BatteryQuantity
+ * Attribute BatQuantity
  */
-class ReadPowerSourceBatteryQuantity : public ReadAttribute {
+class ReadPowerSourceBatQuantity : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryQuantity()
-        : ReadAttribute("battery-quantity")
+    ReadPowerSourceBatQuantity()
+        : ReadAttribute("bat-quantity")
     {
     }
 
-    ~ReadPowerSourceBatteryQuantity() {}
+    ~ReadPowerSourceBatQuantity() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17771,10 +17767,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryQuantityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryQuantity response %@", [value description]);
+        [cluster readAttributeBatQuantityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatQuantity response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryQuantity read Error", error);
+                LogNSError("PowerSource BatQuantity read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17782,14 +17778,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryQuantity : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatQuantity : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryQuantity()
-        : SubscribeAttribute("battery-quantity")
+    SubscribeAttributePowerSourceBatQuantity()
+        : SubscribeAttribute("bat-quantity")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryQuantity() {}
+    ~SubscribeAttributePowerSourceBatQuantity() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17802,14 +17798,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryQuantityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatQuantityWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryQuantity response %@", [value description]);
+                NSLog(@"PowerSource.BatQuantity response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17820,16 +17816,16 @@
 };
 
 /*
- * Attribute BatteryChargeState
+ * Attribute BatChargeState
  */
-class ReadPowerSourceBatteryChargeState : public ReadAttribute {
+class ReadPowerSourceBatChargeState : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryChargeState()
-        : ReadAttribute("battery-charge-state")
+    ReadPowerSourceBatChargeState()
+        : ReadAttribute("bat-charge-state")
     {
     }
 
-    ~ReadPowerSourceBatteryChargeState() {}
+    ~ReadPowerSourceBatChargeState() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17839,10 +17835,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryChargeStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryChargeState response %@", [value description]);
+        [cluster readAttributeBatChargeStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatChargeState response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryChargeState read Error", error);
+                LogNSError("PowerSource BatChargeState read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -17850,14 +17846,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryChargeState : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatChargeState : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryChargeState()
-        : SubscribeAttribute("battery-charge-state")
+    SubscribeAttributePowerSourceBatChargeState()
+        : SubscribeAttribute("bat-charge-state")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryChargeState() {}
+    ~SubscribeAttributePowerSourceBatChargeState() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17870,14 +17866,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryChargeStateWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatChargeStateWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryChargeState response %@", [value description]);
+                NSLog(@"PowerSource.BatChargeState response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17888,16 +17884,16 @@
 };
 
 /*
- * Attribute BatteryTimeToFullCharge
+ * Attribute BatTimeToFullCharge
  */
-class ReadPowerSourceBatteryTimeToFullCharge : public ReadAttribute {
+class ReadPowerSourceBatTimeToFullCharge : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryTimeToFullCharge()
-        : ReadAttribute("battery-time-to-full-charge")
+    ReadPowerSourceBatTimeToFullCharge()
+        : ReadAttribute("bat-time-to-full-charge")
     {
     }
 
-    ~ReadPowerSourceBatteryTimeToFullCharge() {}
+    ~ReadPowerSourceBatTimeToFullCharge() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17907,26 +17903,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeBatteryTimeToFullChargeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryTimeToFullCharge response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource BatteryTimeToFullCharge read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeBatTimeToFullChargeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatTimeToFullCharge response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource BatTimeToFullCharge read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryTimeToFullCharge : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatTimeToFullCharge : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryTimeToFullCharge()
-        : SubscribeAttribute("battery-time-to-full-charge")
+    SubscribeAttributePowerSourceBatTimeToFullCharge()
+        : SubscribeAttribute("bat-time-to-full-charge")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryTimeToFullCharge() {}
+    ~SubscribeAttributePowerSourceBatTimeToFullCharge() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17939,14 +17934,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryTimeToFullChargeWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatTimeToFullChargeWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryTimeToFullCharge response %@", [value description]);
+                NSLog(@"PowerSource.BatTimeToFullCharge response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -17957,16 +17952,16 @@
 };
 
 /*
- * Attribute BatteryFunctionalWhileCharging
+ * Attribute BatFunctionalWhileCharging
  */
-class ReadPowerSourceBatteryFunctionalWhileCharging : public ReadAttribute {
+class ReadPowerSourceBatFunctionalWhileCharging : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryFunctionalWhileCharging()
-        : ReadAttribute("battery-functional-while-charging")
+    ReadPowerSourceBatFunctionalWhileCharging()
+        : ReadAttribute("bat-functional-while-charging")
     {
     }
 
-    ~ReadPowerSourceBatteryFunctionalWhileCharging() {}
+    ~ReadPowerSourceBatFunctionalWhileCharging() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -17976,26 +17971,26 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryFunctionalWhileChargingWithCompletionHandler:^(
-            NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryFunctionalWhileCharging response %@", [value description]);
-            if (error != nil) {
-                LogNSError("PowerSource BatteryFunctionalWhileCharging read Error", error);
-            }
-            SetCommandExitStatus(error);
-        }];
+        [cluster
+            readAttributeBatFunctionalWhileChargingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PowerSource.BatFunctionalWhileCharging response %@", [value description]);
+                if (error != nil) {
+                    LogNSError("PowerSource BatFunctionalWhileCharging read Error", error);
+                }
+                SetCommandExitStatus(error);
+            }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceBatteryFunctionalWhileCharging : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatFunctionalWhileCharging : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryFunctionalWhileCharging()
-        : SubscribeAttribute("battery-functional-while-charging")
+    SubscribeAttributePowerSourceBatFunctionalWhileCharging()
+        : SubscribeAttribute("bat-functional-while-charging")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryFunctionalWhileCharging() {}
+    ~SubscribeAttributePowerSourceBatFunctionalWhileCharging() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -18008,14 +18003,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryFunctionalWhileChargingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatFunctionalWhileChargingWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryFunctionalWhileCharging response %@", [value description]);
+                NSLog(@"PowerSource.BatFunctionalWhileCharging response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -18026,16 +18021,16 @@
 };
 
 /*
- * Attribute BatteryChargingCurrent
+ * Attribute BatChargingCurrent
  */
-class ReadPowerSourceBatteryChargingCurrent : public ReadAttribute {
+class ReadPowerSourceBatChargingCurrent : public ReadAttribute {
 public:
-    ReadPowerSourceBatteryChargingCurrent()
-        : ReadAttribute("battery-charging-current")
+    ReadPowerSourceBatChargingCurrent()
+        : ReadAttribute("bat-charging-current")
     {
     }
 
-    ~ReadPowerSourceBatteryChargingCurrent() {}
+    ~ReadPowerSourceBatChargingCurrent() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -18045,10 +18040,10 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster readAttributeBatteryChargingCurrentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-            NSLog(@"PowerSource.BatteryChargingCurrent response %@", [value description]);
+        [cluster readAttributeBatChargingCurrentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.BatChargingCurrent response %@", [value description]);
             if (error != nil) {
-                LogNSError("PowerSource BatteryChargingCurrent read Error", error);
+                LogNSError("PowerSource BatChargingCurrent read Error", error);
             }
             SetCommandExitStatus(error);
         }];
@@ -18056,14 +18051,14 @@
     }
 };
 
-class SubscribeAttributePowerSourceBatteryChargingCurrent : public SubscribeAttribute {
+class SubscribeAttributePowerSourceBatChargingCurrent : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceBatteryChargingCurrent()
-        : SubscribeAttribute("battery-charging-current")
+    SubscribeAttributePowerSourceBatChargingCurrent()
+        : SubscribeAttribute("bat-charging-current")
     {
     }
 
-    ~SubscribeAttributePowerSourceBatteryChargingCurrent() {}
+    ~SubscribeAttributePowerSourceBatChargingCurrent() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -18076,14 +18071,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeBatteryChargingCurrentWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeBatChargingCurrentWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.BatteryChargingCurrent response %@", [value description]);
+                NSLog(@"PowerSource.BatChargingCurrent response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -18094,16 +18089,16 @@
 };
 
 /*
- * Attribute ActiveBatteryChargeFaults
+ * Attribute ActiveBatChargeFaults
  */
-class ReadPowerSourceActiveBatteryChargeFaults : public ReadAttribute {
+class ReadPowerSourceActiveBatChargeFaults : public ReadAttribute {
 public:
-    ReadPowerSourceActiveBatteryChargeFaults()
-        : ReadAttribute("active-battery-charge-faults")
+    ReadPowerSourceActiveBatChargeFaults()
+        : ReadAttribute("active-bat-charge-faults")
     {
     }
 
-    ~ReadPowerSourceActiveBatteryChargeFaults() {}
+    ~ReadPowerSourceActiveBatChargeFaults() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -18113,26 +18108,25 @@
         MTRBaseClusterPowerSource * cluster = [[MTRBaseClusterPowerSource alloc] initWithDevice:device
                                                                                        endpoint:endpointId
                                                                                           queue:callbackQueue];
-        [cluster
-            readAttributeActiveBatteryChargeFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.ActiveBatteryChargeFaults response %@", [value description]);
-                if (error != nil) {
-                    LogNSError("PowerSource ActiveBatteryChargeFaults read Error", error);
-                }
-                SetCommandExitStatus(error);
-            }];
+        [cluster readAttributeActiveBatChargeFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PowerSource.ActiveBatChargeFaults response %@", [value description]);
+            if (error != nil) {
+                LogNSError("PowerSource ActiveBatChargeFaults read Error", error);
+            }
+            SetCommandExitStatus(error);
+        }];
         return CHIP_NO_ERROR;
     }
 };
 
-class SubscribeAttributePowerSourceActiveBatteryChargeFaults : public SubscribeAttribute {
+class SubscribeAttributePowerSourceActiveBatChargeFaults : public SubscribeAttribute {
 public:
-    SubscribeAttributePowerSourceActiveBatteryChargeFaults()
-        : SubscribeAttribute("active-battery-charge-faults")
+    SubscribeAttributePowerSourceActiveBatChargeFaults()
+        : SubscribeAttribute("active-bat-charge-faults")
     {
     }
 
-    ~SubscribeAttributePowerSourceActiveBatteryChargeFaults() {}
+    ~SubscribeAttributePowerSourceActiveBatChargeFaults() {}
 
     CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
     {
@@ -18145,14 +18139,14 @@
         params.keepPreviousSubscriptions
             = mKeepSubscriptions.HasValue() ? [NSNumber numberWithBool:mKeepSubscriptions.Value()] : nil;
         params.fabricFiltered = mFabricFiltered.HasValue() ? [NSNumber numberWithBool:mFabricFiltered.Value()] : nil;
-        [cluster subscribeAttributeActiveBatteryChargeFaultsWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
+        [cluster subscribeAttributeActiveBatChargeFaultsWithMinInterval:[NSNumber numberWithUnsignedInt:mMinInterval]
             maxInterval:[NSNumber numberWithUnsignedInt:mMaxInterval]
             params:params
             subscriptionEstablished:^() {
                 mSubscriptionEstablished = YES;
             }
             reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
-                NSLog(@"PowerSource.ActiveBatteryChargeFaults response %@", [value description]);
+                NSLog(@"PowerSource.ActiveBatChargeFaults response %@", [value description]);
                 if (error || !mWait) {
                     SetCommandExitStatus(error);
                 }
@@ -94233,46 +94227,46 @@
         make_unique<SubscribeAttributePowerSourceWiredPresent>(), //
         make_unique<ReadPowerSourceActiveWiredFaults>(), //
         make_unique<SubscribeAttributePowerSourceActiveWiredFaults>(), //
-        make_unique<ReadPowerSourceBatteryVoltage>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryVoltage>(), //
-        make_unique<ReadPowerSourceBatteryPercentRemaining>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryPercentRemaining>(), //
-        make_unique<ReadPowerSourceBatteryTimeRemaining>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryTimeRemaining>(), //
-        make_unique<ReadPowerSourceBatteryChargeLevel>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryChargeLevel>(), //
-        make_unique<ReadPowerSourceBatteryReplacementNeeded>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryReplacementNeeded>(), //
-        make_unique<ReadPowerSourceBatteryReplaceability>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryReplaceability>(), //
-        make_unique<ReadPowerSourceBatteryPresent>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryPresent>(), //
-        make_unique<ReadPowerSourceActiveBatteryFaults>(), //
-        make_unique<SubscribeAttributePowerSourceActiveBatteryFaults>(), //
-        make_unique<ReadPowerSourceBatteryReplacementDescription>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryReplacementDescription>(), //
-        make_unique<ReadPowerSourceBatteryCommonDesignation>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryCommonDesignation>(), //
-        make_unique<ReadPowerSourceBatteryANSIDesignation>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryANSIDesignation>(), //
-        make_unique<ReadPowerSourceBatteryIECDesignation>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryIECDesignation>(), //
-        make_unique<ReadPowerSourceBatteryApprovedChemistry>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryApprovedChemistry>(), //
-        make_unique<ReadPowerSourceBatteryCapacity>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryCapacity>(), //
-        make_unique<ReadPowerSourceBatteryQuantity>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryQuantity>(), //
-        make_unique<ReadPowerSourceBatteryChargeState>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryChargeState>(), //
-        make_unique<ReadPowerSourceBatteryTimeToFullCharge>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryTimeToFullCharge>(), //
-        make_unique<ReadPowerSourceBatteryFunctionalWhileCharging>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryFunctionalWhileCharging>(), //
-        make_unique<ReadPowerSourceBatteryChargingCurrent>(), //
-        make_unique<SubscribeAttributePowerSourceBatteryChargingCurrent>(), //
-        make_unique<ReadPowerSourceActiveBatteryChargeFaults>(), //
-        make_unique<SubscribeAttributePowerSourceActiveBatteryChargeFaults>(), //
+        make_unique<ReadPowerSourceBatVoltage>(), //
+        make_unique<SubscribeAttributePowerSourceBatVoltage>(), //
+        make_unique<ReadPowerSourceBatPercentRemaining>(), //
+        make_unique<SubscribeAttributePowerSourceBatPercentRemaining>(), //
+        make_unique<ReadPowerSourceBatTimeRemaining>(), //
+        make_unique<SubscribeAttributePowerSourceBatTimeRemaining>(), //
+        make_unique<ReadPowerSourceBatChargeLevel>(), //
+        make_unique<SubscribeAttributePowerSourceBatChargeLevel>(), //
+        make_unique<ReadPowerSourceBatReplacementNeeded>(), //
+        make_unique<SubscribeAttributePowerSourceBatReplacementNeeded>(), //
+        make_unique<ReadPowerSourceBatReplaceability>(), //
+        make_unique<SubscribeAttributePowerSourceBatReplaceability>(), //
+        make_unique<ReadPowerSourceBatPresent>(), //
+        make_unique<SubscribeAttributePowerSourceBatPresent>(), //
+        make_unique<ReadPowerSourceActiveBatFaults>(), //
+        make_unique<SubscribeAttributePowerSourceActiveBatFaults>(), //
+        make_unique<ReadPowerSourceBatReplacementDescription>(), //
+        make_unique<SubscribeAttributePowerSourceBatReplacementDescription>(), //
+        make_unique<ReadPowerSourceBatCommonDesignation>(), //
+        make_unique<SubscribeAttributePowerSourceBatCommonDesignation>(), //
+        make_unique<ReadPowerSourceBatANSIDesignation>(), //
+        make_unique<SubscribeAttributePowerSourceBatANSIDesignation>(), //
+        make_unique<ReadPowerSourceBatIECDesignation>(), //
+        make_unique<SubscribeAttributePowerSourceBatIECDesignation>(), //
+        make_unique<ReadPowerSourceBatApprovedChemistry>(), //
+        make_unique<SubscribeAttributePowerSourceBatApprovedChemistry>(), //
+        make_unique<ReadPowerSourceBatCapacity>(), //
+        make_unique<SubscribeAttributePowerSourceBatCapacity>(), //
+        make_unique<ReadPowerSourceBatQuantity>(), //
+        make_unique<SubscribeAttributePowerSourceBatQuantity>(), //
+        make_unique<ReadPowerSourceBatChargeState>(), //
+        make_unique<SubscribeAttributePowerSourceBatChargeState>(), //
+        make_unique<ReadPowerSourceBatTimeToFullCharge>(), //
+        make_unique<SubscribeAttributePowerSourceBatTimeToFullCharge>(), //
+        make_unique<ReadPowerSourceBatFunctionalWhileCharging>(), //
+        make_unique<SubscribeAttributePowerSourceBatFunctionalWhileCharging>(), //
+        make_unique<ReadPowerSourceBatChargingCurrent>(), //
+        make_unique<SubscribeAttributePowerSourceBatChargingCurrent>(), //
+        make_unique<ReadPowerSourceActiveBatChargeFaults>(), //
+        make_unique<SubscribeAttributePowerSourceActiveBatChargeFaults>(), //
         make_unique<ReadPowerSourceGeneratedCommandList>(), //
         make_unique<SubscribeAttributePowerSourceGeneratedCommandList>(), //
         make_unique<ReadPowerSourceAcceptedCommandList>(), //
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index ac06048..57ab880 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -39657,7 +39657,11 @@
 
                 VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-                VerifyOrReturn(CheckConstraintType("wiredAssessedInputVoltage", "", "uint32"));
+                if (value != nil) {
+
+                    VerifyOrReturn(CheckConstraintType("wiredAssessedInputVoltage", "", "uint32"));
+                }
+
                 NextTest();
             }];
 
@@ -39678,7 +39682,11 @@
 
                 VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-                VerifyOrReturn(CheckConstraintType("wiredAssessedInputFrequency", "", "uint16"));
+                if (value != nil) {
+
+                    VerifyOrReturn(CheckConstraintType("wiredAssessedInputFrequency", "", "uint16"));
+                }
+
                 NextTest();
             }];
 
@@ -39721,7 +39729,11 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("wiredAssessedCurrent", "", "uint32"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("wiredAssessedCurrent", "", "uint32"));
+            }
+
             NextTest();
         }];
 
@@ -39816,12 +39828,16 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryVoltageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatVoltageWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatVoltage from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryVoltage", "", "uint32"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("batVoltage", "", "uint32"));
+            }
+
             NextTest();
         }];
 
@@ -39836,12 +39852,16 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryPercentRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatPercentRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatPercentRemaining from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryPercentRemaining", "", "uint8"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("batPercentRemaining", "", "uint8"));
+            }
+
             NextTest();
         }];
 
@@ -39856,12 +39876,16 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryTimeRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatTimeRemainingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatTimeRemaining from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryTimeRemaining", "", "uint32"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("batTimeRemaining", "", "uint32"));
+            }
+
             NextTest();
         }];
 
@@ -39876,14 +39900,14 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryChargeLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatChargeLevelWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatChargeLevel from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryChargeLevel", "", "enum8"));
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batteryChargeLevel", [value unsignedCharValue], 0U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batteryChargeLevel", [value unsignedCharValue], 2U));
+            VerifyOrReturn(CheckConstraintType("batChargeLevel", "", "enum8"));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batChargeLevel", [value unsignedCharValue], 0U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batChargeLevel", [value unsignedCharValue], 2U));
 
             NextTest();
         }];
@@ -39899,12 +39923,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryReplacementNeededWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatReplacementNeededWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatReplacementNeeded from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryReplacementNeeded", "", "bool"));
+            VerifyOrReturn(CheckConstraintType("batReplacementNeeded", "", "bool"));
             NextTest();
         }];
 
@@ -39919,14 +39943,14 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryReplaceabilityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatReplaceabilityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatReplaceability from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryReplaceability", "", "enum8"));
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batteryReplaceability", [value unsignedCharValue], 0U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batteryReplaceability", [value unsignedCharValue], 3U));
+            VerifyOrReturn(CheckConstraintType("batReplaceability", "", "enum8"));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batReplaceability", [value unsignedCharValue], 0U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batReplaceability", [value unsignedCharValue], 3U));
 
             NextTest();
         }];
@@ -39942,12 +39966,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryPresentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatPresentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatPresent from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryPresent", "", "bool"));
+            VerifyOrReturn(CheckConstraintType("batPresent", "", "bool"));
             NextTest();
         }];
 
@@ -39962,12 +39986,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeActiveBatteryFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeActiveBatFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client readsActiveBatFaults from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("activeBatteryFaults", "", "list"));
+            VerifyOrReturn(CheckConstraintType("activeBatFaults", "", "list"));
             NextTest();
         }];
 
@@ -39983,13 +40007,13 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         [cluster
-            readAttributeBatteryReplacementDescriptionWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
+            readAttributeBatReplacementDescriptionWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
                 NSLog(@"Test Harness Client reads BatReplacementDescription from Server DUT Error: %@", err);
 
                 VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-                VerifyOrReturn(CheckConstraintType("batteryReplacementDescription", "", "string"));
-                VerifyOrReturn(CheckConstraintMaxLength("batteryReplacementDescription", [value length], 60));
+                VerifyOrReturn(CheckConstraintType("batReplacementDescription", "", "string"));
+                VerifyOrReturn(CheckConstraintMaxLength("batReplacementDescription", [value length], 60));
                 NextTest();
             }];
 
@@ -40004,14 +40028,14 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryCommonDesignationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatCommonDesignationWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatCommonDesignation from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryCommonDesignation", "", "uint32"));
-            VerifyOrReturn(CheckConstraintMinValue<uint32_t>("batteryCommonDesignation", [value unsignedIntValue], 0UL));
-            VerifyOrReturn(CheckConstraintMaxValue<uint32_t>("batteryCommonDesignation", [value unsignedIntValue], 80UL));
+            VerifyOrReturn(CheckConstraintType("batCommonDesignation", "", "uint32"));
+            VerifyOrReturn(CheckConstraintMinValue<uint32_t>("batCommonDesignation", [value unsignedIntValue], 0UL));
+            VerifyOrReturn(CheckConstraintMaxValue<uint32_t>("batCommonDesignation", [value unsignedIntValue], 80UL));
 
             NextTest();
         }];
@@ -40027,13 +40051,13 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryANSIDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatANSIDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatANSIDesignation from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryANSIDesignation", "", "string"));
-            VerifyOrReturn(CheckConstraintMaxLength("batteryANSIDesignation", [value length], 20));
+            VerifyOrReturn(CheckConstraintType("batANSIDesignation", "", "string"));
+            VerifyOrReturn(CheckConstraintMaxLength("batANSIDesignation", [value length], 20));
             NextTest();
         }];
 
@@ -40048,13 +40072,13 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryIECDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatIECDesignationWithCompletionHandler:^(NSString * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatIECDesignation from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryIECDesignation", "", "string"));
-            VerifyOrReturn(CheckConstraintMaxLength("batteryIECDesignation", [value length], 20));
+            VerifyOrReturn(CheckConstraintType("batIECDesignation", "", "string"));
+            VerifyOrReturn(CheckConstraintMaxLength("batIECDesignation", [value length], 20));
             NextTest();
         }];
 
@@ -40069,14 +40093,14 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryApprovedChemistryWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatApprovedChemistryWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatApprovedChemistry from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryApprovedChemistry", "", "uint32"));
-            VerifyOrReturn(CheckConstraintMinValue<uint32_t>("batteryApprovedChemistry", [value unsignedIntValue], 0UL));
-            VerifyOrReturn(CheckConstraintMaxValue<uint32_t>("batteryApprovedChemistry", [value unsignedIntValue], 32UL));
+            VerifyOrReturn(CheckConstraintType("batApprovedChemistry", "", "uint32"));
+            VerifyOrReturn(CheckConstraintMinValue<uint32_t>("batApprovedChemistry", [value unsignedIntValue], 0UL));
+            VerifyOrReturn(CheckConstraintMaxValue<uint32_t>("batApprovedChemistry", [value unsignedIntValue], 32UL));
 
             NextTest();
         }];
@@ -40092,12 +40116,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryCapacityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatCapacityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatCapacity from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryCapacity", "", "uint32"));
+            VerifyOrReturn(CheckConstraintType("batCapacity", "", "uint32"));
             NextTest();
         }];
 
@@ -40112,12 +40136,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryQuantityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatQuantityWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatQuantity from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryQuantity", "", "uint8"));
+            VerifyOrReturn(CheckConstraintType("batQuantity", "", "uint8"));
             NextTest();
         }];
 
@@ -40132,14 +40156,14 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryChargeStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatChargeStateWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatChargeState from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryChargeState", "", "enum8"));
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batteryChargeState", [value unsignedCharValue], 0U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batteryChargeState", [value unsignedCharValue], 3U));
+            VerifyOrReturn(CheckConstraintType("batChargeState", "", "enum8"));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("batChargeState", [value unsignedCharValue], 0U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("batChargeState", [value unsignedCharValue], 3U));
 
             NextTest();
         }];
@@ -40155,12 +40179,16 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryTimeToFullChargeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatTimeToFullChargeWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatTimeToFullCharge from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryTimeToFullCharge", "", "uint32"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("batTimeToFullCharge", "", "uint32"));
+            }
+
             NextTest();
         }];
 
@@ -40175,15 +40203,15 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryFunctionalWhileChargingWithCompletionHandler:^(
-            NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Test Harness Client reads BatFunctionalWhileCharging from Server DUT Error: %@", err);
+        [cluster
+            readAttributeBatFunctionalWhileChargingWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+                NSLog(@"Test Harness Client reads BatFunctionalWhileCharging from Server DUT Error: %@", err);
 
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+                VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryFunctionalWhileCharging", "", "bool"));
-            NextTest();
-        }];
+                VerifyOrReturn(CheckConstraintType("batFunctionalWhileCharging", "", "bool"));
+                NextTest();
+            }];
 
         return CHIP_NO_ERROR;
     }
@@ -40196,12 +40224,16 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeBatteryChargingCurrentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeBatChargingCurrentWithCompletionHandler:^(NSNumber * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads BatChargingCurrent from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("batteryChargingCurrent", "", "uint32"));
+            if (value != nil) {
+
+                VerifyOrReturn(CheckConstraintType("batChargingCurrent", "", "uint32"));
+            }
+
             NextTest();
         }];
 
@@ -40216,12 +40248,12 @@
                                                                                           queue:mCallbackQueue];
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
-        [cluster readAttributeActiveBatteryChargeFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) {
+        [cluster readAttributeActiveBatChargeFaultsWithCompletionHandler:^(NSArray * _Nullable value, NSError * _Nullable err) {
             NSLog(@"Test Harness Client reads ActiveBatChargeFaults from Server DUT Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintType("activeBatteryChargeFaults", "", "list"));
+            VerifyOrReturn(CheckConstraintType("activeBatChargeFaults", "", "list"));
             NextTest();
         }];
 
diff --git a/zzz_generated/lock-app/zap-generated/endpoint_config.h b/zzz_generated/lock-app/zap-generated/endpoint_config.h
index fcb17f7..078e33d 100644
--- a/zzz_generated/lock-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/lock-app/zap-generated/endpoint_config.h
@@ -233,12 +233,12 @@
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },                                 /* ClusterRevision */   \
                                                                                                                                    \
             /* Endpoint: 0, Cluster: Power Source (server) */                                                                      \
-            { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(1) },             /* Status */                                 \
-            { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0) },             /* Order */                                  \
-            { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(6) }, /* Description */                            \
-            { 0x00000006, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },              /* WiredAssessedCurrent */                   \
-            { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) },          /* FeatureMap */                             \
-            { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },            /* ClusterRevision */                        \
+            { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(1) },                           /* Status */                   \
+            { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(0) },                           /* Order */                    \
+            { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(6) },               /* Description */              \
+            { 0x00000006, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* WiredAssessedCurrent */     \
+            { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) },                        /* FeatureMap */               \
+            { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },                          /* ClusterRevision */          \
                                                                                                                                    \
             /* Endpoint: 0, Cluster: General Commissioning (server) */                                                             \
             { 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(10) }, /* Breadcrumb */       \
@@ -516,10 +516,10 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(1) },              /* Status */                                \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_SIMPLE_DEFAULT(1) },              /* Order */                                 \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_LONG_DEFAULTS_INDEX(18) }, /* Description */                           \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatteryChargeLevel */                    \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },              /* BatteryReplacementNeeded */              \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatteryReplaceability */                 \
-            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() },         /* BatteryReplacementDescription */         \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatChargeLevel */                        \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },              /* BatReplacementNeeded */                  \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                /* BatReplaceability */                     \
+            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() },         /* BatReplacementDescription */             \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x0A) },        /* FeatureMap */                            \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },             /* ClusterRevision */                       \
                                                                                                                                    \
diff --git a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
index 6c2c803..05b8a96 100644
--- a/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
+++ b/zzz_generated/placeholder/app1/zap-generated/endpoint_config.h
@@ -191,36 +191,37 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Status */                                        \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Order */                                         \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* Description */                                   \
-            { 0x00000003, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedInputVoltage */                     \
-            { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedInputFrequency */                   \
-            { 0x00000005, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* WiredCurrentType */                              \
-            { 0x00000006, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedCurrent */                          \
-            { 0x00000007, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredNominalVoltage */                           \
-            { 0x00000008, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredMaximumCurrent */                           \
-            { 0x00000009, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },      /* WiredPresent */                                  \
+            { 0x00000003, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE),                                                       \
+              ZAP_EMPTY_DEFAULT() }, /* WiredAssessedInputVoltage */                                                               \
+            { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(NULLABLE),                                                       \
+              ZAP_EMPTY_DEFAULT() },                                    /* WiredAssessedInputFrequency */                          \
+            { 0x00000005, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* WiredCurrentType */                                     \
+            { 0x00000006, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* WiredAssessedCurrent */     \
+            { 0x00000007, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                            /* WiredNominalVoltage */      \
+            { 0x00000008, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                            /* WiredMaximumCurrent */      \
+            { 0x00000009, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* WiredPresent */             \
             { 0x0000000A, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveWiredFaults */ \
-            { 0x0000000B, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                                   /* BatteryVoltage */    \
-            { 0x0000000C, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryPercentRemaining */                            \
-            { 0x0000000D, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },  /* BatteryTimeRemaining */                               \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryChargeLevel */                                 \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryReplacementNeeded */                           \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryReplaceability */                              \
-            { 0x00000011, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryPresent */                                     \
-            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                                \
-              ZAP_EMPTY_DEFAULT() },                                           /* ActiveBatteryFaults */                           \
-            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryReplacementDescription */                 \
-            { 0x00000014, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryCommonDesignation */                      \
-            { 0x00000015, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryANSIDesignation */                        \
-            { 0x00000016, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryIECDesignation */                         \
-            { 0x00000017, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryApprovedChemistry */                      \
-            { 0x00000018, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryCapacity */                               \
-            { 0x00000019, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryQuantity */                               \
-            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryChargeState */                            \
-            { 0x0000001B, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryTimeToFullCharge */                       \
-            { 0x0000001C, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },      /* BatteryFunctionalWhileCharging */                \
-            { 0x0000001D, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryChargingCurrent */                        \
+            { 0x0000000B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() },        /* BatVoltage */        \
+            { 0x0000000C, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() },  /* BatPercentRemaining */      \
+            { 0x0000000D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatTimeRemaining */         \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* BatChargeLevel */           \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* BatReplacementNeeded */     \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* BatReplaceability */        \
+            { 0x00000011, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* BatPresent */               \
+            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveBatFaults */   \
+            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* BatReplacementDescription */                     \
+            { 0x00000014, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatCommonDesignation */                          \
+            { 0x00000015, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatANSIDesignation */                            \
+            { 0x00000016, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatIECDesignation */                             \
+            { 0x00000017, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatApprovedChemistry */                          \
+            { 0x00000018, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatCapacity */                                   \
+            { 0x00000019, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatQuantity */                                   \
+            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatChargeState */                                \
+            { 0x0000001B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatTimeToFullCharge */      \
+            { 0x0000001C, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatFunctionalWhileCharging */                         \
+            { 0x0000001D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatChargingCurrent */       \
             { 0x0000001E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                                \
-              ZAP_EMPTY_DEFAULT() },                                         /* ActiveBatteryChargeFaults */                       \
+              ZAP_EMPTY_DEFAULT() },                                         /* ActiveBatChargeFaults */                           \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */                                      \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },   /* ClusterRevision */                                 \
                                                                                                                                    \
diff --git a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
index 6c2c803..05b8a96 100644
--- a/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
+++ b/zzz_generated/placeholder/app2/zap-generated/endpoint_config.h
@@ -191,36 +191,37 @@
             { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Status */                                        \
             { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Order */                                         \
             { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* Description */                                   \
-            { 0x00000003, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedInputVoltage */                     \
-            { 0x00000004, ZAP_TYPE(INT16U), 2, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedInputFrequency */                   \
-            { 0x00000005, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* WiredCurrentType */                              \
-            { 0x00000006, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredAssessedCurrent */                          \
-            { 0x00000007, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredNominalVoltage */                           \
-            { 0x00000008, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* WiredMaximumCurrent */                           \
-            { 0x00000009, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },      /* WiredPresent */                                  \
+            { 0x00000003, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE),                                                       \
+              ZAP_EMPTY_DEFAULT() }, /* WiredAssessedInputVoltage */                                                               \
+            { 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(NULLABLE),                                                       \
+              ZAP_EMPTY_DEFAULT() },                                    /* WiredAssessedInputFrequency */                          \
+            { 0x00000005, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* WiredCurrentType */                                     \
+            { 0x00000006, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* WiredAssessedCurrent */     \
+            { 0x00000007, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                            /* WiredNominalVoltage */      \
+            { 0x00000008, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                            /* WiredMaximumCurrent */      \
+            { 0x00000009, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* WiredPresent */             \
             { 0x0000000A, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveWiredFaults */ \
-            { 0x0000000B, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },                                   /* BatteryVoltage */    \
-            { 0x0000000C, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryPercentRemaining */                            \
-            { 0x0000000D, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },  /* BatteryTimeRemaining */                               \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryChargeLevel */                                 \
-            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryReplacementNeeded */                           \
-            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },   /* BatteryReplaceability */                              \
-            { 0x00000011, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryPresent */                                     \
-            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                                \
-              ZAP_EMPTY_DEFAULT() },                                           /* ActiveBatteryFaults */                           \
-            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryReplacementDescription */                 \
-            { 0x00000014, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryCommonDesignation */                      \
-            { 0x00000015, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryANSIDesignation */                        \
-            { 0x00000016, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatteryIECDesignation */                         \
-            { 0x00000017, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryApprovedChemistry */                      \
-            { 0x00000018, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryCapacity */                               \
-            { 0x00000019, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryQuantity */                               \
-            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryChargeState */                            \
-            { 0x0000001B, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryTimeToFullCharge */                       \
-            { 0x0000001C, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },      /* BatteryFunctionalWhileCharging */                \
-            { 0x0000001D, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryChargingCurrent */                        \
+            { 0x0000000B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() },        /* BatVoltage */        \
+            { 0x0000000C, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() },  /* BatPercentRemaining */      \
+            { 0x0000000D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatTimeRemaining */         \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* BatChargeLevel */           \
+            { 0x0000000F, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* BatReplacementNeeded */     \
+            { 0x00000010, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* BatReplaceability */        \
+            { 0x00000011, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() },                           /* BatPresent */               \
+            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveBatFaults */   \
+            { 0x00000013, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* BatReplacementDescription */                     \
+            { 0x00000014, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatCommonDesignation */                          \
+            { 0x00000015, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatANSIDesignation */                            \
+            { 0x00000016, ZAP_TYPE(CHAR_STRING), 21, 0, ZAP_EMPTY_DEFAULT() }, /* BatIECDesignation */                             \
+            { 0x00000017, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatApprovedChemistry */                          \
+            { 0x00000018, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatCapacity */                                   \
+            { 0x00000019, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatQuantity */                                   \
+            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatChargeState */                                \
+            { 0x0000001B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatTimeToFullCharge */      \
+            { 0x0000001C, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_EMPTY_DEFAULT() }, /* BatFunctionalWhileCharging */                         \
+            { 0x0000001D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatChargingCurrent */       \
             { 0x0000001E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                                \
-              ZAP_EMPTY_DEFAULT() },                                         /* ActiveBatteryChargeFaults */                       \
+              ZAP_EMPTY_DEFAULT() },                                         /* ActiveBatChargeFaults */                           \
             { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */                                      \
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },   /* ClusterRevision */                                 \
                                                                                                                                    \
diff --git a/zzz_generated/window-app/zap-generated/endpoint_config.h b/zzz_generated/window-app/zap-generated/endpoint_config.h
index dc6d982..cb93f93 100644
--- a/zzz_generated/window-app/zap-generated/endpoint_config.h
+++ b/zzz_generated/window-app/zap-generated/endpoint_config.h
@@ -196,18 +196,17 @@
             { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },   /* ClusterRevision */                                 \
                                                                                                                                    \
             /* Endpoint: 0, Cluster: Power Source (server) */                                                                      \
-            { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Status */                                        \
-            { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* Order */                                         \
-            { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() }, /* Description */                                   \
-            { 0x0000000B, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryVoltage */                                \
-            { 0x0000000C, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryPercentRemaining */                       \
-            { 0x0000000D, ZAP_TYPE(INT32U), 4, 0, ZAP_EMPTY_DEFAULT() },       /* BatteryTimeRemaining */                          \
-            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },        /* BatteryChargeLevel */                            \
-            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                                \
-              ZAP_EMPTY_DEFAULT() },                                         /* ActiveBatteryFaults */                             \
-            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },      /* BatteryChargeState */                              \
-            { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) }, /* FeatureMap */                                      \
-            { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },   /* ClusterRevision */                                 \
+            { 0x00000000, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* Status */                   \
+            { 0x00000001, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* Order */                    \
+            { 0x00000002, ZAP_TYPE(CHAR_STRING), 61, 0, ZAP_EMPTY_DEFAULT() },                      /* Description */              \
+            { 0x0000000B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatVoltage */               \
+            { 0x0000000C, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() },  /* BatPercentRemaining */      \
+            { 0x0000000D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* BatTimeRemaining */         \
+            { 0x0000000E, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                             /* BatChargeLevel */           \
+            { 0x00000012, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* ActiveBatFaults */   \
+            { 0x0000001A, ZAP_TYPE(ENUM8), 1, 0, ZAP_EMPTY_DEFAULT() },                                    /* BatChargeState */    \
+            { 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0) },                               /* FeatureMap */        \
+            { 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) },                                 /* ClusterRevision */   \
                                                                                                                                    \
             /* Endpoint: 0, Cluster: General Commissioning (server) */                                                             \
             { 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_LONG_DEFAULTS_INDEX(6) }, /* Breadcrumb */        \