Darwin: convenience API Part 2 (Issue 16691) (#21757)

* Issue 16691 - Darwin: convenience API Part 2

* Restyled change
diff --git a/.restyled.yaml b/.restyled.yaml
index 77e2430..c45fe98 100644
--- a/.restyled.yaml
+++ b/.restyled.yaml
@@ -73,7 +73,6 @@
     - "examples/chef/sample_app_util/test_files/*.yaml"
     - "examples/chef/zzz_generated/**/*"
     - "src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm" # https://github.com/project-chip/connectedhomeip/issues/20236
-    - "src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm"
 
 
 changed_paths:
diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h
index 8793a68..bad4ded 100644
--- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h
+++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.h
@@ -23,22 +23,37 @@
 
 typedef void (^MTRAsyncCallbackReadyHandler)(id context, NSUInteger retryCount);
 
-// How to queue a new work item:
+// MTRAsyncCallbackQueue high level description
+//   The MTRAsyncCallbackQueue was made to call one readyHandler
+//   block at a time asynchronously, and the readyHandler is
+//   expected to start/schedule a task. When the task finishes
+//   asynchronously in the future (at any time, from any queue
+//   or thread), it is expected to ask the workItem object to
+//   either endWork or retryWork.
+
+// Sequence of steps when queuing a work item:
 //   - Create MTRAsyncCallbackQueueWorkItem object
 //   - Create ready handler block (MTRAsyncCallbackReadyHandler)
-//      - block is called when it's the work item's turn to do work
-//      - its body is to do work with the device
+//      - block is called when it's the WorkItem's turn to do work
+//      - its body is to perform a task that is expected to end asynchronously in the future
 //      - at the end of work, call on the work item object:
 //         - endWork for success or failure
 //         - retryWork for temporary failures
-//   - Set the work handler block to the Item object
-//   - Call enqueueWorkItem on the MTRDevice's work queue property
+//   - Set the readyHandler block on the WorkItem object
+//   - Call enqueueWorkItem on a MTRAsyncCallbackQueue
 
 // A serial one-at-a-time queue for performing work items
 @interface MTRAsyncCallbackWorkQueue : NSObject
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
 
+// The context object is only held and passed back as a reference and is opaque to the work queue
+- (instancetype)initWithContext:(id _Nullable)context queue:(dispatch_queue_t)queue;
+
+// Called by the work queue owner to clean up and cancel work items
+- (void)invalidate;
+
+// Work items may be enqueued from any queue or thread
 - (void)enqueueWorkItem:(MTRAsyncCallbackQueueWorkItem *)item;
 
 // TODO: Add a "set concurrency width" method to allow for more than 1 work item at a time
@@ -49,12 +64,17 @@
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
 
+// Both readyHandler and cancelHander will be called on the queue given to initWithQueue
 - (instancetype)initWithQueue:(dispatch_queue_t)queue;
 @property (nonatomic, strong) MTRAsyncCallbackReadyHandler readyHandler;
 @property (nonatomic, strong) dispatch_block_t cancelHandler;
 
-// Called by Cluster object's after async work is done
+// Called by the creater of the work item when async work is done and should
+// be removed from the queue. The work queue will run the next work item.
 - (void)endWork;
+
+// Called by the creater of the work item when async work should be retried.
+// The work queue will call this workItem's readyHandler again.
 - (void)retryWork;
 @end
 
diff --git a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm
index 7e09b55..5d0bae6 100644
--- a/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm
+++ b/src/darwin/Framework/CHIP/MTRAsyncCallbackWorkQueue.mm
@@ -18,12 +18,17 @@
 #import <dispatch/dispatch.h>
 #import <os/lock.h>
 
-#import "MTRAsyncCallbackWorkQueue_Internal.h"
+#import "MTRAsyncCallbackWorkQueue.h"
 #import "MTRLogging.h"
 
 #pragma mark - Class extensions
 
 @interface MTRAsyncCallbackWorkQueue ()
+// The lock protects the internal state of the work queue so that these may be called from any queue or thread:
+//   -enqueueWorkItem:
+//   -invalidate
+//   -endWork:
+//   -retryWork:
 @property (nonatomic, readonly) os_unfair_lock lock;
 @property (nonatomic, strong, readonly) id context;
 @property (nonatomic, strong, readonly) dispatch_queue_t queue;
@@ -81,7 +86,8 @@
     [invalidateItems removeAllObjects];
 }
 
-- (void)endWork:(MTRAsyncCallbackQueueWorkItem *)workItem
+// called after executing a work item
+- (void)_postProcessWorkItem:(MTRAsyncCallbackQueueWorkItem *)workItem retry:(BOOL)retry
 {
     os_unfair_lock_lock(&_lock);
     // sanity check if running
@@ -102,8 +108,10 @@
         return;
     }
 
-    // since work is done, remove from queue and call ready on the next item
-    [self.items removeObjectAtIndex:0];
+    // if work item is done (no need to retry), remove from queue and call ready on the next item
+    if (!retry) {
+        [self.items removeObjectAtIndex:0];
+    }
 
     // when "concurrency width" is implemented this will be decremented instead
     self.runningWorkItemCount = 0;
@@ -111,32 +119,14 @@
     os_unfair_lock_unlock(&_lock);
 }
 
+- (void)endWork:(MTRAsyncCallbackQueueWorkItem *)workItem
+{
+    [self _postProcessWorkItem:workItem retry:NO];
+}
+
 - (void)retryWork:(MTRAsyncCallbackQueueWorkItem *)workItem
 {
-    // reset BOOL and call again
-    os_unfair_lock_lock(&_lock);
-    // sanity check if running
-    if (!self.runningWorkItemCount) {
-        // something is wrong with state - nothing is currently running
-        os_unfair_lock_unlock(&_lock);
-        MTR_LOG_ERROR("retryWork: no work is running on work queue");
-        return;
-    }
-
-    // sanity check the same work item is running
-    // when "concurrency width" is implemented need to check first N items
-    MTRAsyncCallbackQueueWorkItem * firstWorkItem = self.items.firstObject;
-    if (firstWorkItem != workItem) {
-        // something is wrong with this work item - should not be currently running
-        os_unfair_lock_unlock(&_lock);
-        MTR_LOG_ERROR("retryWork: work item is not first on work queue");
-        return;
-    }
-
-    // when "concurrency width" is implemented this will be decremented instead
-    self.runningWorkItemCount = 0;
-    [self _callNextReadyWorkItem];
-    os_unfair_lock_unlock(&_lock);
+    [self _postProcessWorkItem:workItem retry:YES];
 }
 
 // assume lock is held while calling this
@@ -166,13 +156,11 @@
     return self;
 }
 
-// Called by Cluster object's after async work is done
 - (void)endWork
 {
     [self.workQueue endWork:self];
 }
 
-// Called by Cluster object's after async work is done
 - (void)retryWork
 {
     [self.workQueue retryWork:self];
diff --git a/src/darwin/Framework/CHIP/MTRBaseDevice.h b/src/darwin/Framework/CHIP/MTRBaseDevice.h
index 8d0b894..9f40958 100644
--- a/src/darwin/Framework/CHIP/MTRBaseDevice.h
+++ b/src/darwin/Framework/CHIP/MTRBaseDevice.h
@@ -30,6 +30,7 @@
  *
  *                MTRAttributePathKey : MTRAttributePath object. Included for attribute value.
  *                MTRCommandPathKey : MTRCommandPath object. Included for command response.
+ *                MTREventPathKey : MTREventPath object. Included for event value.
  *                MTRErrorKey : NSError object. Included to indicate an error.
  *                MTRDataKey: Data-value NSDictionary object.
  *                              Included when there is data and when there is no error.
@@ -67,11 +68,18 @@
  *                MTRDataKey : Data-value NSDictionary object.
  */
 typedef void (^MTRDeviceResponseHandler)(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error);
+
+/**
+ * Handler for -subscribeWithQueue: attribute and event reports
+ *
+ * @param values This array contains MTRAttributeReport objects for attribute reports, and MTREventReport objects for event reports
+ */
 typedef void (^MTRDeviceReportHandler)(NSArray * values);
 typedef void (^MTRDeviceErrorHandler)(NSError * error);
 
 extern NSString * const MTRAttributePathKey;
 extern NSString * const MTRCommandPathKey;
+extern NSString * const MTREventPathKey;
 extern NSString * const MTRDataKey;
 extern NSString * const MTRErrorKey;
 extern NSString * const MTRTypeKey;
diff --git a/src/darwin/Framework/CHIP/MTRBaseDevice.mm b/src/darwin/Framework/CHIP/MTRBaseDevice.mm
index 44995e9..026c3d7 100644
--- a/src/darwin/Framework/CHIP/MTRBaseDevice.mm
+++ b/src/darwin/Framework/CHIP/MTRBaseDevice.mm
@@ -50,6 +50,7 @@
 
 NSString * const MTRAttributePathKey = @"attributePath";
 NSString * const MTRCommandPathKey = @"commandPath";
+NSString * const MTREventPathKey = @"eventPath";
 NSString * const MTRDataKey = @"data";
 NSString * const MTRErrorKey = @"error";
 NSString * const MTRTypeKey = @"type";
diff --git a/src/darwin/Framework/CHIP/MTRBaseDevice_Internal.h b/src/darwin/Framework/CHIP/MTRBaseDevice_Internal.h
index ca00505..afc5add 100644
--- a/src/darwin/Framework/CHIP/MTRBaseDevice_Internal.h
+++ b/src/darwin/Framework/CHIP/MTRBaseDevice_Internal.h
@@ -68,6 +68,10 @@
 - (instancetype)initWithPath:(const chip::app::ConcreteDataAttributePath &)path;
 @end
 
+@interface MTREventPath ()
+- (instancetype)initWithPath:(const chip::app::ConcreteEventPath &)path;
+@end
+
 @interface MTRCommandPath ()
 - (instancetype)initWithPath:(const chip::app::ConcreteCommandPath &)path;
 @end
diff --git a/src/darwin/Framework/CHIP/MTRDevice.h b/src/darwin/Framework/CHIP/MTRDevice.h
index 5b4bcc9..ea2d047 100644
--- a/src/darwin/Framework/CHIP/MTRDevice.h
+++ b/src/darwin/Framework/CHIP/MTRDevice.h
@@ -23,41 +23,61 @@
 @class MTRDeviceController;
 @class MTRAsyncCallbackWorkQueue;
 
-@protocol MTRDeviceSubscriptionDelegate;
+typedef NS_ENUM(NSUInteger, MTRDeviceState) {
+    MTRDeviceStateUnknown = 0,
+    MTRDeviceStateReachable = 1,
+    MTRDeviceStateUnreachable = 2
+};
+
+@protocol MTRDeviceDelegate;
 
 @interface MTRDevice : NSObject
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
 
 /**
+ * TODO: Document usage better
+ *
  * Directly instantiate a MTRDevice with a MTRDeviceController as a shim.
  *
  * All device-specific information would be stored on the device controller, and
  * retrieved when performing actions using a combination of MTRBaseDevice
  * and MTRAsyncCallbackQueue.
  */
-+ (instancetype)deviceWithDeviceID:(uint64_t)deviceID deviceController:(MTRDeviceController *)deviceController;
++ (instancetype)deviceWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceController *)deviceController;
 
 /**
- * Subscribe to receive attribute reports for everything (all endpoints, all
- * clusters, all attributes, all events) on the device.
+ * The current state of the device.
  *
- * The subscriber provides a delegate object conforming to MTRDeviceSubscriptionDelegate
+ * The three states:
+ *   MTRDeviceStateUnknkown
+ *      Unable to determine the state of the device at the moment.
+ *
+ *   MTRDeviceStateReachable
+ *      Communication with the device is expected to succeed.
+ *
+ *   MTRDeviceStateUnreachable
+ *      The device is currently unreachable.
  */
-- (void)subscribeWithDelegate:(id<MTRDeviceSubscriptionDelegate>)delegate
-                        queue:(dispatch_queue_t)queue
-                  minInterval:(uint16_t)minInterval
-                  maxInterval:(uint16_t)maxInterval
-                       params:(MTRSubscribeParams * _Nullable)params;
+@property (nonatomic, readonly) MTRDeviceState state;
+
+/**
+ * Set the delegate to receive asynchronous callbacks about the device.
+ *
+ * The delegate will be called on the provided queue, for attribute reports, event reports, and device state changes.
+ */
+- (void)setDelegate:(id<MTRDeviceDelegate>)delegate queue:(dispatch_queue_t)queue;
 
 /**
  * Read attribute in a designated attribute path
  *
+ * TODO: Need to document that this returns "the system's best guess" of attribute values.
+ *
  * @return a data-value dictionary of the attribute as described in MTRDeviceResponseHandler
  */
-- (NSDictionary<NSString *, id> *)readAttributeWithEndpointId:(NSNumber * _Nullable)endpointId
-                                                    clusterId:(NSNumber * _Nullable)clusterId
-                                                  attributeId:(NSNumber * _Nullable)attributeId
+- (NSDictionary<NSString *, id> *)readAttributeWithEndpointID:(NSNumber *)endpointID
+                                                    clusterID:(NSNumber *)clusterID
+                                                  attributeID:(NSNumber *)attributeID
                                                        params:(MTRReadParams * _Nullable)params;
 
 /**
@@ -66,20 +86,25 @@
  * @param value       A data-value NSDictionary object as described in
  *                    MTRDeviceResponseHandler.
  *
- * @param expectedValueIntervalMs  interval that the write value is assumed to hold true before actual interaction happens. This
- * value will be clamped to timeoutMs.
+ * @param expectedValueInterval  maximum interval in milliseconds during which reads of the attribute will return the value being
+ * written. This value will be clamped to timeoutMs
  *
- * @param timeoutMs   timeout in milliseconds for timed write, or nil.
+ * TODO: document that -readAttribute... will return the expected value for the [endpoint,cluster,attribute] until one of the
+ * following:
+ *  1. Another write for the same attribute happens.
+ *  2. expectedValueIntervalMs (clamped) expires. Need to figure out phrasing here.
+ *  3. We succeed at writing the attribute.
+ *  4. We fail at writing the attribute and give up on the write
  *
- *                    Received values are an NSArray object with response-value element as described in
- *                    readAttributeWithEndpointId:clusterId:attributeId:clientQueue:completion:.
+ * @param timeout   timeout in milliseconds for timed write, or nil.
+ * TODO: make timeout arguments uniform
  */
-- (void)writeAttributeWithEndpointId:(NSNumber *)endpointId
-                           clusterId:(NSNumber *)clusterId
-                         attributeId:(NSNumber *)attributeId
+- (void)writeAttributeWithEndpointID:(NSNumber *)endpointID
+                           clusterID:(NSNumber *)clusterID
+                         attributeID:(NSNumber *)attributeID
                                value:(id)value
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
-                   timedWriteTimeout:(NSNumber * _Nullable)timeoutMs;
+               expectedValueInterval:(NSNumber *)expectedValueInterval
+                   timedWriteTimeout:(NSNumber * _Nullable)timeout;
 
 /**
  * Invoke a command with a designated command path
@@ -92,61 +117,55 @@
  * @param expectedValues  array of dictionaries containing the expected values in the same format as
  *                       attribute read completion handler. Requires MTRAttributePathKey values.
  *                       See MTRDeviceResponseHandler definition for dictionary details.
+ * TODO: document better the expectedValues is how this command is expected to change attributes when read, and that the next
+ * readAttribute will get these values
  *
- * @param expectedValueIntervalMs  interval that the write value is assumed to hold true before actual interaction happens. This
- * value will be clamped to timeoutMs.
+ * @param expectedValueInterval  maximum interval in milliseconds during which reads of the attribute will return the value being
+ * written. This value will be clamped to timeout
  *
- * @param timeoutMs   timeout in milliseconds for timed invoke, or nil.
+ * @param timeout   timeout in milliseconds for timed invoke, or nil.
  *
  * @param completion  response handler will receive either values or error.
  */
-- (void)invokeCommandWithEndpointId:(NSNumber *)endpointId
-                          clusterId:(NSNumber *)clusterId
-                          commandId:(NSNumber *)commandId
+- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
+                          clusterID:(NSNumber *)clusterID
+                          commandID:(NSNumber *)commandID
                       commandFields:(id)commandFields
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
-                 timedInvokeTimeout:(NSNumber * _Nullable)timeoutMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueInterval
+                 timedInvokeTimeout:(NSNumber * _Nullable)timeout
                         clientQueue:(dispatch_queue_t)clientQueue
                          completion:(MTRDeviceResponseHandler)completion;
 
 @end
 
-@protocol MTRDeviceSubscriptionDelegate <NSObject>
+@protocol MTRDeviceDelegate <NSObject>
 @required
 /**
- * subscriptionEstablished
+ * device:stateChanged:
  *
- * Called once the subscription is established.  This will
- * be _after_ the first (priming) call to both report callbacks.
+ * @param state The current state of the device
  */
-- (void)subscriptionEstablished;
+- (void)device:(MTRDevice *)device stateChanged:(MTRDeviceState)state;
 
 /**
- * subscriptionReceivedAttributeReport:
+ * device:receivedAttributeReport:
  *
  * Notifies delegate of attribute reports from the MTRDevice
  *
  * @param attributeReport  An array of response-value objects as described in MTRDeviceResponseHandler
  */
-- (void)subscriptionReceivedAttributeReport:(NSArray *)attributeReport;
+- (void)device:(MTRDevice *)device receivedAttributeReport:(NSArray<NSDictionary<NSString *, id> *> *)attributeReport;
 
 /**
  * subscriptionReceivedEventReport:
  *
  * Notifies delegate of event reports from the MTRDevice
  *
- * @param eventReport  An array of MTREventReport objects
+ * @param eventReport  An array of response-value objects as described in MTRDeviceResponseHandler
  */
-- (void)subscriptionReceivedEventReport:(NSArray *)eventReport;
+- (void)device:(MTRDevice *)device receivedEventReport:(NSArray<NSDictionary<NSString *, id> *> *)eventReport;
 
-/**
- * subscriptionEndedWithError:
- *
- * Called any time there is an error for the
- * entire subscription (with a non-nil "error"), and terminate the subscription
- */
-- (void)subscriptionEndedWithError:(NSError *)error;
 @end
 
 NS_ASSUME_NONNULL_END
diff --git a/src/darwin/Framework/CHIP/MTRDevice.mm b/src/darwin/Framework/CHIP/MTRDevice.mm
index bfa1d55..c3a9e57 100644
--- a/src/darwin/Framework/CHIP/MTRDevice.mm
+++ b/src/darwin/Framework/CHIP/MTRDevice.mm
@@ -17,7 +17,7 @@
 
 #import <os/lock.h>
 
-#import "MTRAsyncCallbackWorkQueue_Internal.h"
+#import "MTRAsyncCallbackWorkQueue.h"
 #import "MTRBaseDevice_Internal.h"
 #import "MTRCluster.h"
 #import "MTRDeviceController_Internal.h"
@@ -98,30 +98,21 @@
 
 typedef void (^DataReportCallback)(NSArray * value);
 typedef void (^ErrorCallback)(NSError * error);
+typedef void (^ResubscriptionCallback)(void);
 
 namespace {
 
 class SubscriptionCallback final : public ClusterStateCache::Callback {
 public:
     SubscriptionCallback(dispatch_queue_t queue, DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback,
-        ErrorCallback errorCallback, SubscriptionEstablishedHandler _Nullable subscriptionEstablishedHandler)
+        ErrorCallback errorCallback, SubscriptionEstablishedHandler subscriptionEstablishedHandler,
+        ResubscriptionCallback resubscriptionCallback, void (^onDoneHandler)(void))
         : mQueue(queue)
         , mAttributeReportCallback(attributeReportCallback)
         , mEventReportCallback(eventReportCallback)
         , mErrorCallback(errorCallback)
         , mSubscriptionEstablishedHandler(subscriptionEstablishedHandler)
-        , mBufferedReadAdapter(*this)
-    {
-    }
-
-    SubscriptionCallback(dispatch_queue_t queue, DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback,
-        ErrorCallback errorCallback, SubscriptionEstablishedHandler _Nullable subscriptionEstablishedHandler,
-        void (^onDoneHandler)(void))
-        : mQueue(queue)
-        , mAttributeReportCallback(attributeReportCallback)
-        , mEventReportCallback(eventReportCallback)
-        , mErrorCallback(errorCallback)
-        , mSubscriptionEstablishedHandler(subscriptionEstablishedHandler)
+        , mResubscriptionCallback(resubscriptionCallback)
         , mBufferedReadAdapter(*this)
         , mOnDoneHandler(onDoneHandler)
     {
@@ -150,6 +141,8 @@
 
     void OnSubscriptionEstablished(SubscriptionId aSubscriptionId) override;
 
+    CHIP_ERROR OnResubscriptionNeeded(ReadClient * apReadClient, CHIP_ERROR aTerminationCause) override;
+
     void ReportData();
     void ReportError(CHIP_ERROR err);
     void ReportError(const StatusIB & status);
@@ -163,6 +156,7 @@
     // make sure to only report one error.
     ErrorCallback _Nullable mErrorCallback = nil;
     SubscriptionEstablishedHandler _Nullable mSubscriptionEstablishedHandler;
+    ResubscriptionCallback mResubscriptionCallback;
     BufferedReadCallback mBufferedReadAdapter;
     NSMutableArray * _Nullable mAttributeReports = nil;
     NSMutableArray * _Nullable mEventReports = nil;
@@ -189,11 +183,11 @@
 
 #pragma mark - MTRDevice
 @interface MTRDevice ()
-@property (nonatomic, copy) MTRDevice * blahhey;
-@property (nonatomic, copy) id<MTRDeviceSubscriptionDelegate> blah;
-@property (nonatomic, readonly) os_unfair_lock lock;
+@property (nonatomic, readonly) os_unfair_lock lock; // protects the caches and device state
 @property (nonatomic) dispatch_queue_t queue;
-@property (nonatomic) NSMutableSet<MTRWeakReference<id<MTRDeviceSubscriptionDelegate>> *> * subscribers;
+@property (nonatomic) MTRWeakReference<id<MTRDeviceDelegate>> * weakDelegate;
+@property (nonatomic) dispatch_queue_t delegateQueue;
+@property (nonatomic) NSArray<NSDictionary<NSString *, id> *> * unreportedEvents;
 
 @property (nonatomic) BOOL subscriptionActive;
 
@@ -205,109 +199,149 @@
 // See MTRDeviceResponseHandler definition for value dictionary details.
 @property (nonatomic) NSMutableDictionary<MTRAttributePath *, MTRPair<NSDate *, NSDictionary *> *> * expectedValueCache;
 
+@property (nonatomic) BOOL expirationCheckScheduled;
+
 @property (nonatomic) MTRAsyncCallbackWorkQueue * asyncCallbackWorkQueue;
 @end
 
 @implementation MTRDevice
 
-- (instancetype)initWithDeviceID:(uint64_t)deviceID
-                deviceController:(MTRDeviceController *)deviceController
-                           queue:(dispatch_queue_t)queue
+- (instancetype)initWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceController *)deviceController
 {
     if (self = [super init]) {
         _lock = OS_UNFAIR_LOCK_INIT;
-        _deviceID = deviceID;
+        _nodeID = nodeID;
         _deviceController = deviceController;
-        _queue = queue;
+        _queue = dispatch_queue_create("com.apple.matter.framework.xpc.workqueue", DISPATCH_QUEUE_SERIAL);
+        ;
         _readCache = [NSMutableDictionary dictionary];
         _expectedValueCache = [NSMutableDictionary dictionary];
-        _asyncCallbackWorkQueue = [[MTRAsyncCallbackWorkQueue alloc] initWithContext:self queue:queue];
+        _asyncCallbackWorkQueue = [[MTRAsyncCallbackWorkQueue alloc] initWithContext:self queue:_queue];
+        _state = MTRDeviceStateUnknown;
     }
     return self;
 }
 
-+ (instancetype)deviceWithDeviceID:(uint64_t)deviceID deviceController:(MTRDeviceController *)deviceController
++ (instancetype)deviceWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceController *)deviceController
 {
-    return [deviceController deviceForDeviceID:deviceID];
+    return [deviceController deviceForNodeID:nodeID];
 }
 
-- (void)connectAndPerformAsync:(MTRDevicePerformAsyncBlock)asyncBlock
-{
-    [_deviceController getBaseDevice:_deviceID
-                               queue:_queue
-                   completionHandler:^(MTRBaseDevice * _Nullable device, NSError * _Nullable error) {
-                       asyncBlock(device);
-                   }];
-}
+#pragma mark Subscription and delegate handling
 
-#pragma mark Subscription
-- (void)performBlockForDelegates:(void (^)(id<MTRDeviceSubscriptionDelegate>))block
+// subscription intervals are in seconds
+#define MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_DEFAULT (3600)
+
+- (void)setDelegate:(id<MTRDeviceDelegate>)delegate queue:(dispatch_queue_t)queue
 {
     os_unfair_lock_lock(&self->_lock);
-    NSSet * delegatesToCall = [_subscribers copy];
+
+    _weakDelegate = [MTRWeakReference weakReferenceWithObject:delegate];
+    _delegateQueue = queue;
+    [self subscribeWithMinInterval:0 maxInterval:MTR_DEVICE_SUBSCRIPTION_MAX_INTERVAL_DEFAULT];
+
     os_unfair_lock_unlock(&self->_lock);
-
-    NSMutableSet * lostDelegates = [NSMutableSet set];
-    for (MTRWeakReference<id<MTRDeviceSubscriptionDelegate>> * delegateWeakReference in delegatesToCall) {
-        id<MTRDeviceSubscriptionDelegate> delegate = delegateWeakReference.strongObject;
-        if (!delegate) {
-            [lostDelegates addObject:delegateWeakReference];
-        }
-
-        block(delegate);
-    }
-
-    os_unfair_lock_lock(&self->_lock);
-    [_subscribers minusSet:lostDelegates];
-    os_unfair_lock_unlock(&self->_lock);
-
-    // Options to consider when no more subscribers are alive:
-    //   A) tear down subscription
-    //   B) keep subscription until error, and wait for client to resubscribe
-    //   C) keep subscription / resubscribe on error, until EOL MTRDevice
 }
 
 - (void)_handleSubscriptionEstablished
 {
-    [self performBlockForDelegates:^(id<MTRDeviceSubscriptionDelegate> delegate) {
-        [delegate subscriptionEstablished];
-    }];
+    os_unfair_lock_lock(&self->_lock);
+
+    _state = MTRDeviceStateReachable;
+    id<MTRDeviceDelegate> delegate = _weakDelegate.strongObject;
+    if (delegate) {
+        dispatch_async(_delegateQueue, ^{
+            [delegate device:self stateChanged:MTRDeviceStateReachable];
+        });
+    }
+
+    os_unfair_lock_unlock(&self->_lock);
 }
 
 - (void)_handleSubscriptionError:(NSError *)error
 {
+    os_unfair_lock_lock(&self->_lock);
+
     _subscriptionActive = NO;
 
-    [self performBlockForDelegates:^(id<MTRDeviceSubscriptionDelegate> delegate) {
-        [delegate subscriptionEndedWithError:error];
-    }];
-    [_subscribers removeAllObjects];
+    id<MTRDeviceDelegate> delegate = _weakDelegate.strongObject;
+    if (delegate) {
+        dispatch_async(_delegateQueue, ^{
+            [delegate device:self stateChanged:MTRDeviceStateUnreachable];
+        });
+    }
+
+    os_unfair_lock_unlock(&self->_lock);
 }
 
+- (void)_handleResubscriptionNeeded
+{
+    os_unfair_lock_lock(&self->_lock);
+
+    _state = MTRDeviceStateUnknown;
+
+    id<MTRDeviceDelegate> delegate = _weakDelegate.strongObject;
+    if (delegate) {
+        dispatch_async(_delegateQueue, ^{
+            [delegate device:self stateChanged:MTRDeviceStateUnknown];
+        });
+    }
+
+    os_unfair_lock_unlock(&self->_lock);
+}
+
+- (void)_handleSubscriptionReset
+{
+    // TODO: logic to reattempt subscription with exponential back off
+}
+
+// assume lock is held
 - (void)_reportAttributes:(NSArray<NSDictionary<NSString *, id> *> *)attributes
 {
+    os_unfair_lock_assert_owner(&self->_lock);
     if (attributes.count) {
-        [self performBlockForDelegates:^(id<MTRDeviceSubscriptionDelegate> delegate) {
-            [delegate subscriptionReceivedAttributeReport:attributes];
-        }];
+        id<MTRDeviceDelegate> delegate = _weakDelegate.strongObject;
+        if (delegate) {
+            dispatch_async(_delegateQueue, ^{
+                [delegate device:self receivedAttributeReport:attributes];
+            });
+        }
     }
 }
 
 - (void)_handleAttributeReport:(NSArray<NSDictionary<NSString *, id> *> *)attributeReport
 {
-    NSArray * attributesToReport = [self _getAttributesToReportWithReportedValues:attributeReport];
+    os_unfair_lock_lock(&self->_lock);
 
-    [self _reportAttributes:attributesToReport];
+    [self _reportAttributes:[self _getAttributesToReportWithReportedValues:attributeReport]];
+
+    os_unfair_lock_unlock(&self->_lock);
 }
 
-- (void)_handleEventReport:(NSArray *)eventReport
+- (void)_handleEventReport:(NSArray<NSDictionary<NSString *, id> *> *)eventReport
 {
-    [self performBlockForDelegates:^(id<MTRDeviceSubscriptionDelegate> delegate) {
-        [delegate subscriptionReceivedEventReport:eventReport];
-    }];
+    os_unfair_lock_lock(&self->_lock);
+
+    // first combine with previous unreported events, if they exist
+    if (_unreportedEvents) {
+        eventReport = [_unreportedEvents arrayByAddingObjectsFromArray:eventReport];
+        _unreportedEvents = nil;
+    }
+
+    id<MTRDeviceDelegate> delegate = _weakDelegate.strongObject;
+    if (delegate) {
+        dispatch_async(_delegateQueue, ^{
+            [delegate device:self receivedEventReport:eventReport];
+        });
+    } else {
+        // save unreported events
+        _unreportedEvents = eventReport;
+    }
+
+    os_unfair_lock_unlock(&self->_lock);
 }
 
-- (void)subscribeWithMinInterval:(uint16_t)minInterval maxInterval:(uint16_t)maxInterval params:(MTRSubscribeParams *)params
+- (void)subscribeWithMinInterval:(uint16_t)minInterval maxInterval:(uint16_t)maxInterval
 {
     // for now just subscribe once
     if (_subscriptionActive) {
@@ -316,10 +350,7 @@
 
     _subscriptionActive = YES;
 
-    // Copy params before going async.
-    params = [params copy];
-
-    [_deviceController getSessionForNode:_deviceID
+    [_deviceController getSessionForNode:_nodeID
                        completionHandler:^(chip::Messaging::ExchangeManager * _Nullable exchangeManager,
                            const chip::Optional<chip::SessionHandle> & session, NSError * _Nullable error) {
                            if (error != nil) {
@@ -339,7 +370,9 @@
                            readParams.mAttributePathParamsListSize = 1;
                            readParams.mpEventPathParamsList = eventPath.get();
                            readParams.mEventPathParamsListSize = 1;
-                           readParams.mKeepSubscriptions = [params.keepPreviousSubscriptions boolValue];
+                           readParams.mKeepSubscriptions = true;
+                           attributePath.release();
+                           eventPath.release();
 
                            std::unique_ptr<SubscriptionCallback> callback;
                            std::unique_ptr<ReadClient> readClient;
@@ -347,29 +380,34 @@
                            callback = std::make_unique<SubscriptionCallback>(
                                self.queue,
                                ^(NSArray * value) {
+                                   // OnAttributeData (after OnReportEnd)
                                    [self _handleAttributeReport:value];
                                },
                                ^(NSArray * value) {
+                                   // OnEventReport (after OnReportEnd)
                                    [self _handleEventReport:value];
                                },
                                ^(NSError * error) {
+                                   // OnError
                                    [self _handleSubscriptionError:error];
                                },
                                ^(void) {
+                                   // OnSubscriptionEstablished
                                    [self _handleSubscriptionEstablished];
+                               },
+                               ^(void) {
+                                   // OnResubscriptionNeeded
+                                   [self _handleResubscriptionNeeded];
+                               },
+                               ^(void) {
+                                   // OnDone
+                                   [self _handleSubscriptionReset];
                                });
                            readClient = std::make_unique<ReadClient>(InteractionModelEngine::GetInstance(), exchangeManager,
                                callback->GetBufferedCallback(), ReadClient::InteractionType::Subscribe);
 
-                           CHIP_ERROR err;
-                           if (params != nil && params.autoResubscribe != nil && ![params.autoResubscribe boolValue]) {
-                               err = readClient->SendRequest(readParams);
-                           } else {
-                               // SendAutoResubscribeRequest cleans up the params, even on failure.
-                               attributePath.release();
-                               eventPath.release();
-                               err = readClient->SendAutoResubscribeRequest(std::move(readParams));
-                           }
+                           // SendAutoResubscribeRequest cleans up the params, even on failure.
+                           CHIP_ERROR err = readClient->SendAutoResubscribeRequest(std::move(readParams));
 
                            if (err != CHIP_NO_ERROR) {
                                dispatch_async(self.queue, ^{
@@ -386,135 +424,183 @@
                        }];
 }
 
-// TODO: support more than one subscriber / subscription delegate
-//   * reconcile second+ subscriptions with different min and max intervals
-//     (save min/max intervals for each subscriber and resubscribe when they change)
-//   * events should be cached and replayed for second+ subscribers
-- (void)subscribeWithDelegate:(id<MTRDeviceSubscriptionDelegate>)delegate
-                        queue:(dispatch_queue_t)queue
-                  minInterval:(uint16_t)minInterval
-                  maxInterval:(uint16_t)maxInterval
-                       params:(MTRSubscribeParams *)params
-{
-    // Save a weak reference to delegate, so if/when the object goes away, they are automatically unsubscribed
-    MTRWeakReference<id<MTRDeviceSubscriptionDelegate>> * weakDelegate = [MTRWeakReference weakReferenceWithObject:delegate];
-    [_subscribers addObject:weakDelegate];
-
-    // perform the actual subscription
-    [self subscribeWithMinInterval:minInterval maxInterval:maxInterval params:params];
-}
-
 #pragma mark Device Interactions
-- (NSDictionary<NSString *, id> *)readAttributeWithEndpointId:(NSNumber * _Nullable)endpointId
-                                                    clusterId:(NSNumber * _Nullable)clusterId
-                                                  attributeId:(NSNumber * _Nullable)attributeId
-                                                       params:(MTRReadParams * _Nullable)params
+- (NSDictionary<NSString *, id> *)readAttributeWithEndpointID:(NSNumber *)endpointID
+                                                    clusterID:(NSNumber *)clusterID
+                                                  attributeID:(NSNumber *)attributeID
+                                                       params:(MTRReadParams *)params
 {
     // Create work item, set ready handler to perform task, then enqueue the work
     MTRAsyncCallbackQueueWorkItem * workItem = [[MTRAsyncCallbackQueueWorkItem alloc] initWithQueue:_queue];
     MTRAsyncCallbackReadyHandler readyHandler = ^(MTRDevice * device, NSUInteger retryCount) {
-        [self connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-            [baseDevice readAttributeWithEndpointId:endpointId
-                                          clusterId:clusterId
-                                        attributeId:attributeId
-                                             params:params
-                                        clientQueue:self.queue
-                                         completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values,
-                                             NSError * _Nullable error) {
-                                             if (values) {
-                                                 // Since the format is the same data-value dictionary, this looks like an attribute
-                                                 // report
-                                                 [self _handleAttributeReport:values];
-                                             }
-                                             // TODO: retry on error
-                                             [workItem endWork];
-                                         }];
-        }];
+        MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.nodeID controller:self.deviceController];
+
+        [baseDevice
+            readAttributeWithEndpointId:endpointID
+                              clusterId:clusterID
+                            attributeId:attributeID
+                                 params:params
+                            clientQueue:self.queue
+                             completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
+                                 if (values) {
+                                     // Since the format is the same data-value dictionary, this looks like an attribute
+                                     // report
+                                     [self _handleAttributeReport:values];
+                                 }
+
+                                 // TODO: better retry logic
+                                 if (retryCount < 2) {
+                                     [workItem retryWork];
+                                 } else {
+                                     [workItem endWork];
+                                 }
+                             }];
     };
     workItem.readyHandler = readyHandler;
     [_asyncCallbackWorkQueue enqueueWorkItem:workItem];
 
     // Return current known / expected value right away
-    MTRAttributePath * attributePath = [MTRAttributePath attributePathWithEndpointId:endpointId
-                                                                           clusterId:clusterId
-                                                                         attributeId:attributeId];
+    MTRAttributePath * attributePath = [MTRAttributePath attributePathWithEndpointId:endpointID
+                                                                           clusterId:clusterID
+                                                                         attributeId:attributeID];
     NSDictionary<NSString *, id> * attributeValueToReturn = [self _attributeValueDictionaryForAttributePath:attributePath];
 
     return attributeValueToReturn;
 }
 
-- (void)writeAttributeWithEndpointId:(NSNumber *)endpointId
-                           clusterId:(NSNumber *)clusterId
-                         attributeId:(NSNumber *)attributeId
+- (void)writeAttributeWithEndpointID:(NSNumber *)endpointID
+                           clusterID:(NSNumber *)clusterID
+                         attributeID:(NSNumber *)attributeID
                                value:(id)value
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
-                   timedWriteTimeout:(NSNumber * _Nullable)timeoutMs
+               expectedValueInterval:(NSNumber *)expectedValueInterval
+                   timedWriteTimeout:(NSNumber * _Nullable)timeout
 {
     // Start the asynchronous operation
-    [self connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        [baseDevice
-            writeAttributeWithEndpointId:endpointId
-                               clusterId:clusterId
-                             attributeId:attributeId
-                                   value:value
-                       timedWriteTimeout:timeoutMs
-                             clientQueue:self.queue
-                              completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
-                                  if (values) {
-                                      [self _handleAttributeReport:values];
-                                  }
-                              }];
-    }];
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.nodeID controller:self.deviceController];
+    [baseDevice
+        writeAttributeWithEndpointId:endpointID
+                           clusterId:clusterID
+                         attributeId:attributeID
+                               value:value
+                   timedWriteTimeout:timeout
+                         clientQueue:self.queue
+                          completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
+                              if (values) {
+                                  [self _handleAttributeReport:values];
+                              }
+                          }];
 
     // Commit change into expected value cache
-    MTRAttributePath * attributePath = [MTRAttributePath attributePathWithEndpointId:endpointId
-                                                                           clusterId:clusterId
-                                                                         attributeId:attributeId];
+    MTRAttributePath * attributePath = [MTRAttributePath attributePathWithEndpointId:endpointID
+                                                                           clusterId:clusterID
+                                                                         attributeId:attributeID];
     NSDictionary * newExpectedValueDictionary = @{ MTRAttributePathKey : attributePath, MTRDataKey : value };
 
-    [self setExpectedValues:@[ newExpectedValueDictionary ] expectedValueInterval:expectedValueIntervalMs];
+    [self setExpectedValues:@[ newExpectedValueDictionary ] expectedValueInterval:expectedValueInterval];
 }
 
-- (void)invokeCommandWithEndpointId:(NSNumber *)endpointId
-                          clusterId:(NSNumber *)clusterId
-                          commandId:(NSNumber *)commandId
+- (void)invokeCommandWithEndpointID:(NSNumber *)endpointID
+                          clusterID:(NSNumber *)clusterID
+                          commandID:(NSNumber *)commandID
                       commandFields:(id)commandFields
                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
-                 timedInvokeTimeout:(NSNumber * _Nullable)timeoutMs
+              expectedValueInterval:(NSNumber *)expectedValueInterval
+                 timedInvokeTimeout:(NSNumber * _Nullable)timeout
                         clientQueue:(dispatch_queue_t)clientQueue
                          completion:(MTRDeviceResponseHandler)completion
 {
     // Perform this operation
-    [self connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        [baseDevice
-            invokeCommandWithEndpointId:endpointId
-                              clusterId:clusterId
-                              commandId:commandId
-                          commandFields:commandFields
-                     timedInvokeTimeout:timeoutMs
-                            clientQueue:self.queue
-                             completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
-                                 dispatch_async(clientQueue, ^{
-                                     completion(values, error);
-                                 });
-                             }];
-    }];
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.nodeID controller:self.deviceController];
+    [baseDevice
+        invokeCommandWithEndpointId:endpointID
+                          clusterId:clusterID
+                          commandId:commandID
+                      commandFields:commandFields
+                 timedInvokeTimeout:timeout
+                        clientQueue:self.queue
+                         completion:^(NSArray<NSDictionary<NSString *, id> *> * _Nullable values, NSError * _Nullable error) {
+                             dispatch_async(clientQueue, ^{
+                                 completion(values, error);
+                             });
+                         }];
 
-    [self setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
+    [self setExpectedValues:expectedValues expectedValueInterval:expectedValueInterval];
 }
 
 #pragma mark - Cache management
 
-// (assume lock is held)
+// assume lock is held
 - (void)_checkExpiredExpectedValues
 {
+    os_unfair_lock_assert_owner(&self->_lock);
+
+    // find expired attributes, and calculate next timer fire date
+    NSDate * now = [NSDate date];
+    NSDate * nextExpirationDate = nil;
+    NSMutableSet<MTRPair<MTRAttributePath *, NSDictionary *> *> * attributeInfoToRemove = [NSMutableSet set];
+    for (MTRAttributePath * attributePath in _expectedValueCache) {
+        MTRPair<NSDate *, NSDictionary *> * expectedValue = _expectedValueCache[attributePath];
+        NSDate * attributeExpirationDate = expectedValue.first;
+        if (expectedValue) {
+            if ([now compare:attributeExpirationDate] == NSOrderedDescending) {
+                // expired - save [path, values] pair to attributeToRemove
+                [attributeInfoToRemove addObject:[MTRPair pairWithFirst:attributePath second:expectedValue.second]];
+            } else {
+                // get the next expiration date
+                if (!nextExpirationDate || [nextExpirationDate compare:attributeExpirationDate] == NSOrderedDescending) {
+                    nextExpirationDate = attributeExpirationDate;
+                }
+            }
+        }
+    }
+
+    // remove from expected value cache and report attributes as needed
+    NSMutableArray * attributesToReport = [NSMutableArray array];
+    for (MTRPair<MTRAttributePath *, NSDictionary *> * attributeInfo in attributeInfoToRemove) {
+        // compare with known value and mark for report if different
+        MTRAttributePath * attributePath = attributeInfo.first;
+        NSDictionary * attributeDataValue = attributeInfo.second;
+        NSDictionary * cachedAttributeDataValue = _readCache[attributePath];
+        if (cachedAttributeDataValue
+            && ![self _attributeDataValue:attributeDataValue isEqualToDataValue:cachedAttributeDataValue]) {
+            [attributesToReport addObject:cachedAttributeDataValue];
+        }
+
+        _expectedValueCache[attributePath] = nil;
+    }
+    [self _reportAttributes:attributesToReport];
+
+// Have a reasonable minimum wait time for expiration timers
+#define MTR_DEVICE_EXPIRATION_CHECK_TIMER_MINIMUM_WAIT_TIME (0.1)
+
+    if (nextExpirationDate && _expectedValueCache.count && !self.expirationCheckScheduled) {
+        NSTimeInterval waitTime = [nextExpirationDate timeIntervalSinceDate:now];
+        if (waitTime < MTR_DEVICE_EXPIRATION_CHECK_TIMER_MINIMUM_WAIT_TIME) {
+            waitTime = MTR_DEVICE_EXPIRATION_CHECK_TIMER_MINIMUM_WAIT_TIME;
+        }
+        MTRWeakReference<MTRDevice *> * weakSelf = [MTRWeakReference weakReferenceWithObject:self];
+        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(waitTime * NSEC_PER_SEC)), _queue, ^{
+            MTRDevice * strongSelf = weakSelf.strongObject;
+            [strongSelf _performScheduledExpirationCheck];
+        });
+    }
+}
+
+- (void)_performScheduledExpirationCheck
+{
+    os_unfair_lock_lock(&self->_lock);
+
+    self.expirationCheckScheduled = NO;
+    [self _checkExpiredExpectedValues];
+
+    os_unfair_lock_unlock(&self->_lock);
 }
 
 // Get attribute value dictionary for an attribute path from the right cache
 - (NSDictionary<NSString *, id> *)_attributeValueDictionaryForAttributePath:(MTRAttributePath *)attributePath
 {
     os_unfair_lock_lock(&self->_lock);
+
     // First check expected value cache
     MTRPair<NSDate *, NSDictionary *> * expectedValue = _expectedValueCache[attributePath];
     if (expectedValue) {
@@ -523,6 +609,8 @@
             // expired - purge and fall through
             _expectedValueCache[attributePath] = nil;
         } else {
+            os_unfair_lock_unlock(&self->_lock);
+
             // not yet expired - return result
             return expectedValue.second;
         }
@@ -531,6 +619,8 @@
     // Then check read cache
     NSDictionary<NSString *, id> * cachedAttributeValue = _readCache[attributePath];
     if (cachedAttributeValue) {
+        os_unfair_lock_unlock(&self->_lock);
+
         return cachedAttributeValue;
     } else {
         // TODO: when not found in cache, generated default values should be used
@@ -538,6 +628,8 @@
             "_attributeValueDictionaryForAttributePath: could not find cached attribute values for attribute %@", attributePath);
     }
 
+    os_unfair_lock_unlock(&self->_lock);
+
     return nil;
 }
 
@@ -548,11 +640,12 @@
     return [one isEqualToDictionary:theOther];
 }
 
+// assume lock is held
 - (NSArray *)_getAttributesToReportWithReportedValues:(NSArray<NSDictionary<NSString *, id> *> *)reportedAttributeValues
 {
-    NSMutableArray * attributesToReport = [NSMutableArray array];
+    os_unfair_lock_assert_owner(&self->_lock);
 
-    os_unfair_lock_lock(&self->_lock);
+    NSMutableArray * attributesToReport = [NSMutableArray array];
     for (NSDictionary<NSString *, id> * attributeReponseValue in reportedAttributeValues) {
         MTRAttributePath * attributePath = attributeReponseValue[MTRAttributePathKey];
         NSDictionary * attributeDataValue = attributeReponseValue[MTRDataKey];
@@ -592,18 +685,17 @@
             [attributesToReport addObject:attributeReponseValue];
         }
     }
-    os_unfair_lock_unlock(&self->_lock);
 
     return attributesToReport;
 }
 
+// assume lock is held
 - (NSArray *)_getAttributesToReportWithNewExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedAttributeValues
                                           expirationTime:(NSDate *)expirationTime
 {
-    NSMutableArray * attributesToReport = [NSMutableArray array];
+    os_unfair_lock_assert_owner(&self->_lock);
 
-    // First update cache
-    os_unfair_lock_lock(&self->_lock);
+    NSMutableArray * attributesToReport = [NSMutableArray array];
     for (NSDictionary<NSString *, id> * attributeReponseValue in expectedAttributeValues) {
         MTRAttributePath * attributePath = attributeReponseValue[MTRAttributePathKey];
         NSDictionary * attributeDataValue = attributeReponseValue[MTRDataKey];
@@ -611,39 +703,40 @@
         // check if value is different than cache, and report if needed
         BOOL shouldReportAttribute = NO;
 
-        MTRPair<NSDate *, NSDictionary *> * expectedValue = _expectedValueCache[attributePath];
-        if (expectedValue) {
-            // first check write cache and purge / update
-            if (![self _attributeDataValue:attributeDataValue isEqualToDataValue:expectedValue.second]) {
+        // first check write cache and purge / update
+        MTRPair<NSDate *, NSDictionary *> * previousExpectedValue = _expectedValueCache[attributePath];
+        if (previousExpectedValue) {
+            if (![self _attributeDataValue:attributeDataValue isEqualToDataValue:previousExpectedValue.second]) {
                 shouldReportAttribute = YES;
             }
-            _expectedValueCache[attributePath] = [MTRPair pairWithFirst:expirationTime second:expectedValue];
         } else {
             // if new expected value then compare with read cache and report if needed
             if (![self _attributeDataValue:attributeDataValue isEqualToDataValue:_readCache[attributePath]]) {
                 shouldReportAttribute = YES;
             }
         }
+        _expectedValueCache[attributePath] = [MTRPair pairWithFirst:expirationTime second:attributeDataValue];
 
         if (shouldReportAttribute) {
             [attributesToReport addObject:attributeReponseValue];
         }
     }
-    os_unfair_lock_unlock(&self->_lock);
 
     return attributesToReport;
 }
 
-- (void)setExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)values
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+- (void)setExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)values expectedValueInterval:(NSNumber *)expectedValueInterval
 {
     // since NSTimeInterval is in seconds, convert ms into seconds in double
-    NSTimeInterval expectedValueInterval = expectedValueIntervalMs.doubleValue / 1000;
-    NSDate * expirationTime = [NSDate dateWithTimeIntervalSinceNow:expectedValueInterval];
+    NSDate * expirationTime = [NSDate dateWithTimeIntervalSinceNow:expectedValueInterval.doubleValue / 1000];
 
+    os_unfair_lock_lock(&self->_lock);
     NSArray * attributesToReport = [self _getAttributesToReportWithNewExpectedValues:values expirationTime:expirationTime];
 
     [self _reportAttributes:attributesToReport];
+
+    [self _checkExpiredExpectedValues];
+    os_unfair_lock_unlock(&self->_lock);
 }
 
 @end
@@ -679,38 +772,26 @@
 
 void SubscriptionCallback::OnEventData(const EventHeader & aEventHeader, TLV::TLVReader * apData, const StatusIB * apStatus)
 {
-    id _Nullable value = nil;
-    NSError * _Nullable error = nil;
-    if (apStatus != nullptr) {
-        error = [MTRError errorForIMStatus:*apStatus];
-    } else if (apData == nullptr) {
-        error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INVALID_ARGUMENT];
-    } else {
-        CHIP_ERROR err;
-        value = MTRDecodeEventPayload(aEventHeader.mPath, *apData, &err);
-        if (err == CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB) {
-            // We don't know this event; just skip it.
-            return;
-        }
-
-        if (err != CHIP_NO_ERROR) {
-            value = nil;
-            error = [MTRError errorForCHIPErrorCode:err];
-        }
-    }
-
     if (mEventReports == nil) {
         // Never got a OnReportBegin?  Not much to do other than tear things down.
         ReportError(CHIP_ERROR_INCORRECT_STATE);
         return;
     }
 
-    [mEventReports addObject:[[MTREventReport alloc] initWithPath:aEventHeader.mPath
-                                                      eventNumber:@(aEventHeader.mEventNumber)
-                                                         priority:@((uint8_t) aEventHeader.mPriorityLevel)
-                                                        timestamp:@(aEventHeader.mTimestamp.mValue)
-                                                            value:value
-                                                            error:error]];
+    MTREventPath * eventPath = [[MTREventPath alloc] initWithPath:aEventHeader.mPath];
+    if (apStatus != nullptr) {
+        [mEventReports addObject:@ { MTREventPathKey : eventPath, MTRErrorKey : [MTRError errorForIMStatus:*apStatus] }];
+    } else if (apData == nullptr) {
+        [mEventReports addObject:@ {
+            MTREventPathKey : eventPath,
+            MTRErrorKey : [MTRError errorForCHIPErrorCode:CHIP_ERROR_INVALID_ARGUMENT]
+        }];
+    } else {
+        id value = MTRDecodeDataValueDictionaryFromCHIPTLV(apData);
+        if (value) {
+            [mEventReports addObject:@ { MTREventPathKey : eventPath, MTRDataKey : value }];
+        }
+    }
 }
 
 void SubscriptionCallback::OnAttributeData(
@@ -727,10 +808,19 @@
         return;
     }
 
-    id _Nullable value = MTRDecodeDataValueDictionaryFromCHIPTLV(apData);
-
-    if (value) {
-        [mAttributeReports addObject:@ { MTRAttributePathKey : [[MTRAttributePath alloc] initWithPath:aPath], MTRDataKey : value }];
+    MTRAttributePath * attributePath = [[MTRAttributePath alloc] initWithPath:aPath];
+    if (aStatus.mStatus != Status::Success) {
+        [mAttributeReports addObject:@ { MTRAttributePathKey : attributePath, MTRErrorKey : [MTRError errorForIMStatus:aStatus] }];
+    } else if (apData == nullptr) {
+        [mAttributeReports addObject:@ {
+            MTRAttributePathKey : attributePath,
+            MTRErrorKey : [MTRError errorForCHIPErrorCode:CHIP_ERROR_INVALID_ARGUMENT]
+        }];
+    } else {
+        id value = MTRDecodeDataValueDictionaryFromCHIPTLV(apData);
+        if (value) {
+            [mAttributeReports addObject:@ { MTRAttributePathKey : attributePath, MTRDataKey : value }];
+        }
     }
 }
 
@@ -781,6 +871,11 @@
     }
 }
 
+CHIP_ERROR SubscriptionCallback::OnResubscriptionNeeded(ReadClient * apReadClient, CHIP_ERROR aTerminationCause)
+{
+    return apReadClient->DefaultResubscribePolicy(aTerminationCause);
+}
+
 void SubscriptionCallback::ReportError(CHIP_ERROR err) { ReportError([MTRError errorForCHIPErrorCode:err]); }
 
 void SubscriptionCallback::ReportError(const StatusIB & status) { ReportError([MTRError errorForIMStatus:status]); }
diff --git a/src/darwin/Framework/CHIP/MTRDeviceController.mm b/src/darwin/Framework/CHIP/MTRDeviceController.mm
index 0b7c0c3..112fd18 100644
--- a/src/darwin/Framework/CHIP/MTRDeviceController.mm
+++ b/src/darwin/Framework/CHIP/MTRDeviceController.mm
@@ -83,8 +83,8 @@
 @property (readonly) MTRP256KeypairBridge operationalKeypairBridge;
 @property (readonly) MTRDeviceAttestationDelegateBridge * deviceAttestationDelegateBridge;
 @property (readonly) MTRControllerFactory * factory;
-@property (readonly) NSMutableDictionary * deviceIDToDeviceMap;
-@property (readonly) os_unfair_lock deviceMapLock;
+@property (readonly) NSMutableDictionary * nodeIDToDeviceMap;
+@property (readonly) os_unfair_lock deviceMapLock; // protects nodeIDToDeviceMap
 @end
 
 @implementation MTRDeviceController
@@ -95,7 +95,7 @@
         _chipWorkQueue = queue;
         _factory = factory;
         _deviceMapLock = OS_UNFAIR_LOCK_INIT;
-        _deviceIDToDeviceMap = [NSMutableDictionary dictionary];
+        _nodeIDToDeviceMap = [NSMutableDictionary dictionary];
 
         _pairingDelegateBridge = new MTRDevicePairingDelegateBridge();
         if ([self checkForInitError:(_pairingDelegateBridge != nullptr) logMsg:kErrorPairingInit]) {
@@ -538,13 +538,13 @@
                  }];
 }
 
-- (MTRDevice *)deviceForDeviceID:(uint64_t)deviceID
+- (MTRDevice *)deviceForNodeID:(uint64_t)nodeID
 {
     os_unfair_lock_lock(&_deviceMapLock);
-    MTRDevice * deviceToReturn = self.deviceIDToDeviceMap[@(deviceID)];
-    if (deviceToReturn) {
-        deviceToReturn = [[MTRDevice alloc] initWithDeviceID:deviceID deviceController:self queue:self.chipWorkQueue];
-        self.deviceIDToDeviceMap[@(deviceID)] = deviceToReturn;
+    MTRDevice * deviceToReturn = self.nodeIDToDeviceMap[@(nodeID)];
+    if (!deviceToReturn) {
+        deviceToReturn = [[MTRDevice alloc] initWithNodeID:nodeID deviceController:self];
+        self.nodeIDToDeviceMap[@(nodeID)] = deviceToReturn;
     }
     os_unfair_lock_unlock(&_deviceMapLock);
 
@@ -554,11 +554,11 @@
 - (void)removeDevice:(MTRDevice *)device
 {
     os_unfair_lock_lock(&_deviceMapLock);
-    MTRDevice * deviceToRemove = self.deviceIDToDeviceMap[@(device.deviceID)];
+    MTRDevice * deviceToRemove = self.nodeIDToDeviceMap[@(device.nodeID)];
     if (deviceToRemove == device) {
-        self.deviceIDToDeviceMap[@(device.deviceID)] = nil;
+        self.nodeIDToDeviceMap[@(device.nodeID)] = nil;
     } else {
-        MTR_LOG_ERROR("Error: Cannot remove device %p with deviceID %llu", device, device.deviceID);
+        MTR_LOG_ERROR("Error: Cannot remove device %p with nodeID %llu", device, device.nodeID);
     }
     os_unfair_lock_unlock(&_deviceMapLock);
 }
diff --git a/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h b/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h
index d19923b..ab385ce 100644
--- a/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h
+++ b/src/darwin/Framework/CHIP/MTRDeviceController_Internal.h
@@ -116,7 +116,7 @@
 
 #pragma mark - Device-specific data and SDK access
 // DeviceController will act as a central repository for this opaque dictionary that MTRDevice manages
-- (MTRDevice *)deviceForDeviceID:(uint64_t)deviceID;
+- (MTRDevice *)deviceForNodeID:(uint64_t)nodeID;
 - (void)removeDevice:(MTRDevice *)device;
 
 @end
diff --git a/src/darwin/Framework/CHIP/MTRDevice_Internal.h b/src/darwin/Framework/CHIP/MTRDevice_Internal.h
index 5eab815..8be51b0 100644
--- a/src/darwin/Framework/CHIP/MTRDevice_Internal.h
+++ b/src/darwin/Framework/CHIP/MTRDevice_Internal.h
@@ -27,19 +27,14 @@
 typedef void (^MTRDevicePerformAsyncBlock)(MTRBaseDevice * baseDevice);
 
 @interface MTRDevice ()
-- (instancetype)initWithDeviceID:(uint64_t)deviceID
-                deviceController:(MTRDeviceController *)deviceController
-                           queue:(dispatch_queue_t)queue;
-
-// Called to run commands with a live underlying connection
-- (void)connectAndPerformAsync:(MTRDevicePerformAsyncBlock)asyncBlock;
+- (instancetype)initWithNodeID:(uint64_t)nodeID deviceController:(MTRDeviceController *)deviceController;
 
 // Called from MTRClusters for writes and commands
 - (void)setExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)values
     expectedValueInterval:(NSNumber *)expectedValueIntervalMs;
 
 @property (nonatomic, readonly, strong, nonnull) MTRDeviceController * deviceController;
-@property (nonatomic, readonly) uint64_t deviceID;
+@property (nonatomic, readonly) uint64_t nodeID;
 
 @end
 
diff --git a/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt b/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt
index ac7a789..77bc1e0 100644
--- a/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt
+++ b/src/darwin/Framework/CHIP/templates/MTRClusters-src.zapt
@@ -52,55 +52,54 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTR{{>callbackName}}CallbackBridge(self.callbackQueue,
-          baseDevice,
-          {{#if hasSpecificResponse}}
-            {{! This treats completionHandler as taking an id for the data.  This is
-                not great from a type-safety perspective, of course. }}
-            completionHandler,
-          {{else}}
-            {{! For now, don't change the bridge API; instead just use an adapter
-                to invoke our completion handler. This is not great from a
-                type-safety perspective, of course. }}
-            ^(id _Nullable value, NSError * _Nullable error) {
-              completionHandler(error);
-            },
-          {{/if}}
-          ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-            chip::Optional<uint16_t> timedInvokeTimeoutMs;
-            ListFreer listFreer;
-            {{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::Type request;
+    MTRBaseDevice *baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTR{{>callbackName}}CallbackBridge(self.callbackQueue,
+      baseDevice,
+      {{#if hasSpecificResponse}}
+        {{! This treats completionHandler as taking an id for the data.  This is
+            not great from a type-safety perspective, of course. }}
+        completionHandler,
+      {{else}}
+        {{! For now, don't change the bridge API; instead just use an adapter
+            to invoke our completion handler. This is not great from a
+            type-safety perspective, of course. }}
+        ^(id _Nullable value, NSError * _Nullable error) {
+          completionHandler(error);
+        },
+      {{/if}}
+      ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+        chip::Optional<uint16_t> timedInvokeTimeoutMs;
+        ListFreer listFreer;
+        {{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::Type request;
+        if (params != nil) {
+          if (params.timedInvokeTimeoutMs != nil) {
+            timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+          }
+        }
+        {{#if mustUseTimedInvoke}}
+        if (!timedInvokeTimeoutMs.HasValue()) {
+          timedInvokeTimeoutMs.SetValue(10000);
+        }
+        {{/if}}
+        {{#chip_cluster_command_arguments}}
+          {{#first}}
+            {{#unless (commandHasRequiredField parent)}}
             if (params != nil) {
-              if (params.timedInvokeTimeoutMs != nil) {
-                timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-              }
+            {{/unless}}
+          {{/first}}
+          {{>encode_value target=(concat "request." (asLowerCamelCase label)) source=(concat "params." (asStructPropertyName label)) cluster=parent.parent.name errorCode="return CHIP_ERROR_INVALID_ARGUMENT;" depth=0}}
+          {{#last}}
+            {{#unless (commandHasRequiredField parent)}}
             }
-            {{#if mustUseTimedInvoke}}
-            if (!timedInvokeTimeoutMs.HasValue()) {
-              timedInvokeTimeoutMs.SetValue(10000);
-            }
-            {{/if}}
-            {{#chip_cluster_command_arguments}}
-              {{#first}}
-                {{#unless (commandHasRequiredField parent)}}
-                if (params != nil) {
-                {{/unless}}
-              {{/first}}
-              {{>encode_value target=(concat "request." (asLowerCamelCase label)) source=(concat "params." (asStructPropertyName label)) cluster=parent.parent.name errorCode="return CHIP_ERROR_INVALID_ARGUMENT;" depth=0}}
-              {{#last}}
-                {{#unless (commandHasRequiredField parent)}}
-                }
-               {{/unless}}
-              {{/last}}
-            {{/chip_cluster_command_arguments}}
+           {{/unless}}
+          {{/last}}
+        {{/chip_cluster_command_arguments}}
 
-            auto successFn = Callback<{{>callbackName}}CallbackType>::FromCancelable(success);
-            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-            chip::Controller::{{asUpperCamelCase parent.name}}Cluster cppCluster(exchangeManager, session, self->_endpoint);
-            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-        });
-    }];
+        auto successFn = Callback<{{>callbackName}}CallbackType>::FromCancelable(success);
+        auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+        chip::Controller::{{asUpperCamelCase parent.name}}Cluster cppCluster(exchangeManager, session, self->_endpoint);
+        return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+    });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -109,7 +108,7 @@
 {{#chip_server_cluster_attributes}}
 {{#*inline "attribute"}}Attribute{{asUpperCamelCase name}}{{/inline}}
 - (NSDictionary<NSString *, id> *)read{{>attribute}}WithParams:(MTRReadParams * _Nullable)params {
-    return [self.device readAttributeWithEndpointId:@(_endpoint) clusterId:@(MTRCluster{{asUpperCamelCase parent.name}}ID) attributeId:@(MTRCluster{{asUpperCamelCase parent.name}}Attribute{{asUpperCamelCase name}}ID) params:params];
+    return [self.device readAttributeWithEndpointID:@(_endpoint) clusterID:@(MTRCluster{{asUpperCamelCase parent.name}}ID) attributeID:@(MTRCluster{{asUpperCamelCase parent.name}}Attribute{{asUpperCamelCase name}}ID) params:params];
 }
 
 {{#if isWritableAttribute}}
@@ -120,14 +119,14 @@
 }
 - (void)write{{>attribute}}WithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber *waitTimeInMs = params.timedWriteTimeout;
+    NSNumber *timedWriteTimeout = params.timedWriteTimeout;
     {{#if mustUseTimedInvoke}}
-    if (!waitTimeInMs) {
-        waitTimeInMs = @(10000);
+    if (!timedWriteTimeout) {
+        timedWriteTimeout = @(10000);
     }
     {{/if}}
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint) clusterId:@(MTRCluster{{asUpperCamelCase parent.name}}ID) attributeId:@(MTRCluster{{asUpperCamelCase parent.name}}Attribute{{asUpperCamelCase name}}ID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:waitTimeInMs];
+    [self.device writeAttributeWithEndpointID:@(_endpoint) clusterID:@(MTRCluster{{asUpperCamelCase parent.name}}ID) attributeID:@(MTRCluster{{asUpperCamelCase parent.name}}Attribute{{asUpperCamelCase name}}ID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
 }
 
 {{/if}}
diff --git a/src/darwin/Framework/CHIP/templates/MTRClusters.zapt b/src/darwin/Framework/CHIP/templates/MTRClusters.zapt
index 9bd1fad..625ccd1 100644
--- a/src/darwin/Framework/CHIP/templates/MTRClusters.zapt
+++ b/src/darwin/Framework/CHIP/templates/MTRClusters.zapt
@@ -25,7 +25,7 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 {{#chip_cluster_commands}}
-- (void){{asLowerCamelCase name}}WithParams:(MTR{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Params * {{#unless (commandHasRequiredField .)}}_Nullable{{/unless}})params expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries expectedValueInterval:(NSNumber *)expectedValueIntervalMs completionHandler:({{>command_completion_type command=.}})completionHandler;
+- (void){{asLowerCamelCase name}}WithParams:(MTR{{asUpperCamelCase parent.name}}Cluster{{asUpperCamelCase name}}Params * {{#unless (commandHasRequiredField .)}}_Nullable{{/unless}})params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completionHandler:({{>command_completion_type command=.}})completionHandler;
 {{#unless (hasArguments)}}
 - (void){{asLowerCamelCase name}}WithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completionHandler:({{>command_completion_type command=.}})completionHandler;
 {{/unless}}
diff --git a/src/darwin/Framework/CHIP/templates/MTRClusters_internal.zapt b/src/darwin/Framework/CHIP/templates/MTRClusters_internal.zapt
index 9ab103b..3936f96 100644
--- a/src/darwin/Framework/CHIP/templates/MTRClusters_internal.zapt
+++ b/src/darwin/Framework/CHIP/templates/MTRClusters_internal.zapt
@@ -1,7 +1,6 @@
 {{> header}}
 
 #import <Foundation/Foundation.h>
-#import <os/lock.h>
 
 #import "MTRClusters.h"
 #import "MTRDevice.h"
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
index c2eed67..ef8bc06 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
@@ -39,12 +39,12 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)identifyWithParams:(MTRIdentifyClusterIdentifyParams *)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:(StatusCompletion)completionHandler;
 - (void)triggerEffectWithParams:(MTRIdentifyClusterTriggerEffectParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeIdentifyTimeWithParams:(MTRReadParams * _Nullable)params;
@@ -82,35 +82,35 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)addGroupWithParams:(MTRGroupsClusterAddGroupParams *)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:
              (void (^)(MTRGroupsClusterAddGroupResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)viewGroupWithParams:(MTRGroupsClusterViewGroupParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:
               (void (^)(MTRGroupsClusterViewGroupResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)getGroupMembershipWithParams:(MTRGroupsClusterGetGroupMembershipParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTRGroupsClusterGetGroupMembershipResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)removeGroupWithParams:(MTRGroupsClusterRemoveGroupParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:
                 (void (^)(MTRGroupsClusterRemoveGroupResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)removeAllGroupsWithParams:(MTRGroupsClusterRemoveAllGroupsParams * _Nullable)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)removeAllGroupsWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)addGroupIfIdentifyingWithParams:(MTRGroupsClusterAddGroupIfIdentifyingParams *)params
-                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                  expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                       completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeNameSupportWithParams:(MTRReadParams * _Nullable)params;
@@ -141,52 +141,52 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)addSceneWithParams:(MTRScenesClusterAddSceneParams *)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:
              (void (^)(MTRScenesClusterAddSceneResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)viewSceneWithParams:(MTRScenesClusterViewSceneParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:
               (void (^)(MTRScenesClusterViewSceneResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)removeSceneWithParams:(MTRScenesClusterRemoveSceneParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:
                 (void (^)(MTRScenesClusterRemoveSceneResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)removeAllScenesWithParams:(MTRScenesClusterRemoveAllScenesParams *)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(void (^)(MTRScenesClusterRemoveAllScenesResponseParams * _Nullable data,
                                       NSError * _Nullable error))completionHandler;
 - (void)storeSceneWithParams:(MTRScenesClusterStoreSceneParams *)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:
                (void (^)(MTRScenesClusterStoreSceneResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)recallSceneWithParams:(MTRScenesClusterRecallSceneParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)getSceneMembershipWithParams:(MTRScenesClusterGetSceneMembershipParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTRScenesClusterGetSceneMembershipResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)enhancedAddSceneWithParams:(MTRScenesClusterEnhancedAddSceneParams *)params
-                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+             expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                  completionHandler:(void (^)(MTRScenesClusterEnhancedAddSceneResponseParams * _Nullable data,
                                        NSError * _Nullable error))completionHandler;
 - (void)enhancedViewSceneWithParams:(MTRScenesClusterEnhancedViewSceneParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(void (^)(MTRScenesClusterEnhancedViewSceneResponseParams * _Nullable data,
                                         NSError * _Nullable error))completionHandler;
 - (void)copySceneWithParams:(MTRScenesClusterCopySceneParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:
               (void (^)(MTRScenesClusterCopySceneResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 
@@ -228,40 +228,40 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)offWithParams:(MTROnOffClusterOffParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)offWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)onWithParams:(MTROnOffClusterOnParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)onWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
            completionHandler:(StatusCompletion)completionHandler;
 - (void)toggleWithParams:(MTROnOffClusterToggleParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)toggleWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                completionHandler:(StatusCompletion)completionHandler;
 - (void)offWithEffectWithParams:(MTROnOffClusterOffWithEffectParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)onWithRecallGlobalSceneWithParams:(MTROnOffClusterOnWithRecallGlobalSceneParams * _Nullable)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)onWithRecallGlobalSceneWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 completionHandler:(StatusCompletion)completionHandler;
 - (void)onWithTimedOffWithParams:(MTROnOffClusterOnWithTimedOffParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeOnOffWithParams:(MTRReadParams * _Nullable)params;
@@ -349,40 +349,40 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)moveToLevelWithParams:(MTRLevelControlClusterMoveToLevelParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)moveWithParams:(MTRLevelControlClusterMoveParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)stepWithParams:(MTRLevelControlClusterStepParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)stopWithParams:(MTRLevelControlClusterStopParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToLevelWithOnOffWithParams:(MTRLevelControlClusterMoveToLevelWithOnOffParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 - (void)moveWithOnOffWithParams:(MTRLevelControlClusterMoveWithOnOffParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)stepWithOnOffWithParams:(MTRLevelControlClusterStepWithOnOffParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)stopWithOnOffWithParams:(MTRLevelControlClusterStopWithOnOffParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToClosestFrequencyWithParams:(MTRLevelControlClusterMoveToClosestFrequencyParams *)params
-                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                   expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                        completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentLevelWithParams:(MTRReadParams * _Nullable)params;
@@ -657,52 +657,52 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)instantActionWithParams:(MTRActionsClusterInstantActionParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)instantActionWithTransitionWithParams:(MTRActionsClusterInstantActionWithTransitionParams *)params
-                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                             completionHandler:(StatusCompletion)completionHandler;
 - (void)startActionWithParams:(MTRActionsClusterStartActionParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)startActionWithDurationWithParams:(MTRActionsClusterStartActionWithDurationParams *)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)stopActionWithParams:(MTRActionsClusterStopActionParams *)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(StatusCompletion)completionHandler;
 - (void)pauseActionWithParams:(MTRActionsClusterPauseActionParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)pauseActionWithDurationWithParams:(MTRActionsClusterPauseActionWithDurationParams *)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)resumeActionWithParams:(MTRActionsClusterResumeActionParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)enableActionWithParams:(MTRActionsClusterEnableActionParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)enableActionWithDurationWithParams:(MTRActionsClusterEnableActionWithDurationParams *)params
-                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                          completionHandler:(StatusCompletion)completionHandler;
 - (void)disableActionWithParams:(MTRActionsClusterDisableActionParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)disableActionWithDurationWithParams:(MTRActionsClusterDisableActionWithDurationParams *)params
-                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                           completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeActionListWithParams:(MTRReadParams * _Nullable)params;
@@ -737,8 +737,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)mfgSpecificPingWithParams:(MTRBasicClusterMfgSpecificPingParams * _Nullable)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)mfgSpecificPingWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -825,18 +825,18 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)queryImageWithParams:(MTROtaSoftwareUpdateProviderClusterQueryImageParams *)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(void (^)(MTROtaSoftwareUpdateProviderClusterQueryImageResponseParams * _Nullable data,
                                  NSError * _Nullable error))completionHandler;
 - (void)applyUpdateRequestWithParams:(MTROtaSoftwareUpdateProviderClusterApplyUpdateRequestParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTROtaSoftwareUpdateProviderClusterApplyUpdateResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)notifyUpdateAppliedWithParams:(MTROtaSoftwareUpdateProviderClusterNotifyUpdateAppliedParams *)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params;
@@ -865,8 +865,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)announceOtaProviderWithParams:(MTROtaSoftwareUpdateRequestorClusterAnnounceOtaProviderParams *)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeDefaultOtaProvidersWithParams:(MTRReadParams * _Nullable)params;
@@ -1129,18 +1129,18 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)armFailSafeWithParams:(MTRGeneralCommissioningClusterArmFailSafeParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(void (^)(MTRGeneralCommissioningClusterArmFailSafeResponseParams * _Nullable data,
                                   NSError * _Nullable error))completionHandler;
 - (void)setRegulatoryConfigWithParams:(MTRGeneralCommissioningClusterSetRegulatoryConfigParams *)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(void (^)(MTRGeneralCommissioningClusterSetRegulatoryConfigResponseParams * _Nullable data,
                                           NSError * _Nullable error))completionHandler;
 - (void)commissioningCompleteWithParams:(MTRGeneralCommissioningClusterCommissioningCompleteParams * _Nullable)params
-                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                  expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                       completionHandler:
                           (void (^)(MTRGeneralCommissioningClusterCommissioningCompleteResponseParams * _Nullable data,
                               NSError * _Nullable error))completionHandler;
@@ -1191,33 +1191,33 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)scanNetworksWithParams:(MTRNetworkCommissioningClusterScanNetworksParams * _Nullable)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(void (^)(MTRNetworkCommissioningClusterScanNetworksResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)addOrUpdateWiFiNetworkWithParams:(MTRNetworkCommissioningClusterAddOrUpdateWiFiNetworkParams *)params
-                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                   expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                        completionHandler:(void (^)(MTRNetworkCommissioningClusterNetworkConfigResponseParams * _Nullable data,
                                              NSError * _Nullable error))completionHandler;
 - (void)addOrUpdateThreadNetworkWithParams:(MTRNetworkCommissioningClusterAddOrUpdateThreadNetworkParams *)params
-                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                          completionHandler:(void (^)(MTRNetworkCommissioningClusterNetworkConfigResponseParams * _Nullable data,
                                                NSError * _Nullable error))completionHandler;
 - (void)removeNetworkWithParams:(MTRNetworkCommissioningClusterRemoveNetworkParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(void (^)(MTRNetworkCommissioningClusterNetworkConfigResponseParams * _Nullable data,
                                     NSError * _Nullable error))completionHandler;
 - (void)connectNetworkWithParams:(MTRNetworkCommissioningClusterConnectNetworkParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(void (^)(MTRNetworkCommissioningClusterConnectNetworkResponseParams * _Nullable data,
                                      NSError * _Nullable error))completionHandler;
 - (void)reorderNetworkWithParams:(MTRNetworkCommissioningClusterReorderNetworkParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(void (^)(MTRNetworkCommissioningClusterNetworkConfigResponseParams * _Nullable data,
                                      NSError * _Nullable error))completionHandler;
 
@@ -1268,8 +1268,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)retrieveLogsRequestWithParams:(MTRDiagnosticLogsClusterRetrieveLogsRequestParams *)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(void (^)(MTRDiagnosticLogsClusterRetrieveLogsResponseParams * _Nullable data,
                                           NSError * _Nullable error))completionHandler;
 
@@ -1299,8 +1299,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)testEventTriggerWithParams:(MTRGeneralDiagnosticsClusterTestEventTriggerParams *)params
-                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+             expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                  completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeNetworkInterfacesWithParams:(MTRReadParams * _Nullable)params;
@@ -1347,8 +1347,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)resetWatermarksWithParams:(MTRSoftwareDiagnosticsClusterResetWatermarksParams * _Nullable)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)resetWatermarksWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -1388,8 +1388,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)resetCountsWithParams:(MTRThreadNetworkDiagnosticsClusterResetCountsParams * _Nullable)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)resetCountsWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -1547,8 +1547,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)resetCountsWithParams:(MTRWiFiNetworkDiagnosticsClusterResetCountsParams * _Nullable)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)resetCountsWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -1606,8 +1606,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)resetCountsWithParams:(MTREthernetNetworkDiagnosticsClusterResetCountsParams * _Nullable)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)resetCountsWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -1748,16 +1748,16 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)openCommissioningWindowWithParams:(MTRAdministratorCommissioningClusterOpenCommissioningWindowParams *)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)openBasicCommissioningWindowWithParams:(MTRAdministratorCommissioningClusterOpenBasicCommissioningWindowParams *)params
-                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                              completionHandler:(StatusCompletion)completionHandler;
 - (void)revokeCommissioningWithParams:(MTRAdministratorCommissioningClusterRevokeCommissioningParams * _Nullable)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(StatusCompletion)completionHandler;
 - (void)revokeCommissioningWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -1795,43 +1795,43 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)attestationRequestWithParams:(MTROperationalCredentialsClusterAttestationRequestParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTROperationalCredentialsClusterAttestationResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)certificateChainRequestWithParams:(MTROperationalCredentialsClusterCertificateChainRequestParams *)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(void (^)(MTROperationalCredentialsClusterCertificateChainResponseParams * _Nullable data,
                                               NSError * _Nullable error))completionHandler;
 - (void)CSRRequestWithParams:(MTROperationalCredentialsClusterCSRRequestParams *)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(void (^)(MTROperationalCredentialsClusterCSRResponseParams * _Nullable data,
                                  NSError * _Nullable error))completionHandler;
 - (void)addNOCWithParams:(MTROperationalCredentialsClusterAddNOCParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(void (^)(MTROperationalCredentialsClusterNOCResponseParams * _Nullable data,
                               NSError * _Nullable error))completionHandler;
 - (void)updateNOCWithParams:(MTROperationalCredentialsClusterUpdateNOCParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(void (^)(MTROperationalCredentialsClusterNOCResponseParams * _Nullable data,
                                 NSError * _Nullable error))completionHandler;
 - (void)updateFabricLabelWithParams:(MTROperationalCredentialsClusterUpdateFabricLabelParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(void (^)(MTROperationalCredentialsClusterNOCResponseParams * _Nullable data,
                                         NSError * _Nullable error))completionHandler;
 - (void)removeFabricWithParams:(MTROperationalCredentialsClusterRemoveFabricParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(void (^)(MTROperationalCredentialsClusterNOCResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)addTrustedRootCertificateWithParams:(MTROperationalCredentialsClusterAddTrustedRootCertificateParams *)params
-                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                           completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeNOCsWithParams:(MTRReadParams * _Nullable)params;
@@ -1872,21 +1872,21 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)keySetWriteWithParams:(MTRGroupKeyManagementClusterKeySetWriteParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)keySetReadWithParams:(MTRGroupKeyManagementClusterKeySetReadParams *)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(void (^)(MTRGroupKeyManagementClusterKeySetReadResponseParams * _Nullable data,
                                  NSError * _Nullable error))completionHandler;
 - (void)keySetRemoveWithParams:(MTRGroupKeyManagementClusterKeySetRemoveParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)keySetReadAllIndicesWithParams:(MTRGroupKeyManagementClusterKeySetReadAllIndicesParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(void (^)(MTRGroupKeyManagementClusterKeySetReadAllIndicesResponseParams * _Nullable data,
                                            NSError * _Nullable error))completionHandler;
 
@@ -2015,8 +2015,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)changeToModeWithParams:(MTRModeSelectClusterChangeToModeParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeDescriptionWithParams:(MTRReadParams * _Nullable)params;
@@ -2067,82 +2067,82 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)lockDoorWithParams:(MTRDoorLockClusterLockDoorParams * _Nullable)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:(StatusCompletion)completionHandler;
 - (void)unlockDoorWithParams:(MTRDoorLockClusterUnlockDoorParams * _Nullable)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(StatusCompletion)completionHandler;
 - (void)unlockWithTimeoutWithParams:(MTRDoorLockClusterUnlockWithTimeoutParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(StatusCompletion)completionHandler;
 - (void)setWeekDayScheduleWithParams:(MTRDoorLockClusterSetWeekDayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)getWeekDayScheduleWithParams:(MTRDoorLockClusterGetWeekDayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTRDoorLockClusterGetWeekDayScheduleResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)clearWeekDayScheduleWithParams:(MTRDoorLockClusterClearWeekDayScheduleParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 - (void)setYearDayScheduleWithParams:(MTRDoorLockClusterSetYearDayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)getYearDayScheduleWithParams:(MTRDoorLockClusterGetYearDayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTRDoorLockClusterGetYearDayScheduleResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)clearYearDayScheduleWithParams:(MTRDoorLockClusterClearYearDayScheduleParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 - (void)setHolidayScheduleWithParams:(MTRDoorLockClusterSetHolidayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)getHolidayScheduleWithParams:(MTRDoorLockClusterGetHolidayScheduleParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(void (^)(MTRDoorLockClusterGetHolidayScheduleResponseParams * _Nullable data,
                                          NSError * _Nullable error))completionHandler;
 - (void)clearHolidayScheduleWithParams:(MTRDoorLockClusterClearHolidayScheduleParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 - (void)setUserWithParams:(MTRDoorLockClusterSetUserParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)getUserWithParams:(MTRDoorLockClusterGetUserParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRDoorLockClusterGetUserResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)clearUserWithParams:(MTRDoorLockClusterClearUserParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(StatusCompletion)completionHandler;
 - (void)setCredentialWithParams:(MTRDoorLockClusterSetCredentialParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(void (^)(MTRDoorLockClusterSetCredentialResponseParams * _Nullable data,
                                     NSError * _Nullable error))completionHandler;
 - (void)getCredentialStatusWithParams:(MTRDoorLockClusterGetCredentialStatusParams *)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(void (^)(MTRDoorLockClusterGetCredentialStatusResponseParams * _Nullable data,
                                           NSError * _Nullable error))completionHandler;
 - (void)clearCredentialWithParams:(MTRDoorLockClusterClearCredentialParams *)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeLockStateWithParams:(MTRReadParams * _Nullable)params;
@@ -2333,41 +2333,41 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)upOrOpenWithParams:(MTRWindowCoveringClusterUpOrOpenParams * _Nullable)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:(StatusCompletion)completionHandler;
 - (void)upOrOpenWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                  completionHandler:(StatusCompletion)completionHandler;
 - (void)downOrCloseWithParams:(MTRWindowCoveringClusterDownOrCloseParams * _Nullable)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)downOrCloseWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                     completionHandler:(StatusCompletion)completionHandler;
 - (void)stopMotionWithParams:(MTRWindowCoveringClusterStopMotionParams * _Nullable)params
-              expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+              expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+       expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
            completionHandler:(StatusCompletion)completionHandler;
 - (void)stopMotionWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)goToLiftValueWithParams:(MTRWindowCoveringClusterGoToLiftValueParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)goToLiftPercentageWithParams:(MTRWindowCoveringClusterGoToLiftPercentageParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)goToTiltValueWithParams:(MTRWindowCoveringClusterGoToTiltValueParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(StatusCompletion)completionHandler;
 - (void)goToTiltPercentageWithParams:(MTRWindowCoveringClusterGoToTiltPercentageParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeTypeWithParams:(MTRReadParams * _Nullable)params;
@@ -2445,12 +2445,12 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)barrierControlGoToPercentWithParams:(MTRBarrierControlClusterBarrierControlGoToPercentParams *)params
-                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                           completionHandler:(StatusCompletion)completionHandler;
 - (void)barrierControlStopWithParams:(MTRBarrierControlClusterBarrierControlStopParams * _Nullable)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)barrierControlStopWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -2623,21 +2623,21 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)setpointRaiseLowerWithParams:(MTRThermostatClusterSetpointRaiseLowerParams *)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)setWeeklyScheduleWithParams:(MTRThermostatClusterSetWeeklyScheduleParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(StatusCompletion)completionHandler;
 - (void)getWeeklyScheduleWithParams:(MTRThermostatClusterGetWeeklyScheduleParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(void (^)(MTRThermostatClusterGetWeeklyScheduleResponseParams * _Nullable data,
                                         NSError * _Nullable error))completionHandler;
 - (void)clearWeeklyScheduleWithParams:(MTRThermostatClusterClearWeeklyScheduleParams * _Nullable)params
-                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                     completionHandler:(StatusCompletion)completionHandler;
 - (void)clearWeeklyScheduleWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -3025,80 +3025,80 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)moveToHueWithParams:(MTRColorControlClusterMoveToHueParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(StatusCompletion)completionHandler;
 - (void)moveHueWithParams:(MTRColorControlClusterMoveHueParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)stepHueWithParams:(MTRColorControlClusterStepHueParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToSaturationWithParams:(MTRColorControlClusterMoveToSaturationParams *)params
-                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+             expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                  completionHandler:(StatusCompletion)completionHandler;
 - (void)moveSaturationWithParams:(MTRColorControlClusterMoveSaturationParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(StatusCompletion)completionHandler;
 - (void)stepSaturationWithParams:(MTRColorControlClusterStepSaturationParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToHueAndSaturationWithParams:(MTRColorControlClusterMoveToHueAndSaturationParams *)params
-                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                   expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                        completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToColorWithParams:(MTRColorControlClusterMoveToColorParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)moveColorWithParams:(MTRColorControlClusterMoveColorParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(StatusCompletion)completionHandler;
 - (void)stepColorWithParams:(MTRColorControlClusterStepColorParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(StatusCompletion)completionHandler;
 - (void)moveToColorTemperatureWithParams:(MTRColorControlClusterMoveToColorTemperatureParams *)params
-                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                          expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                   expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                        completionHandler:(StatusCompletion)completionHandler;
 - (void)enhancedMoveToHueWithParams:(MTRColorControlClusterEnhancedMoveToHueParams *)params
-                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                   completionHandler:(StatusCompletion)completionHandler;
 - (void)enhancedMoveHueWithParams:(MTRColorControlClusterEnhancedMoveHueParams *)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)enhancedStepHueWithParams:(MTRColorControlClusterEnhancedStepHueParams *)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)enhancedMoveToHueAndSaturationWithParams:(MTRColorControlClusterEnhancedMoveToHueAndSaturationParams *)params
-                                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                completionHandler:(StatusCompletion)completionHandler;
 - (void)colorLoopSetWithParams:(MTRColorControlClusterColorLoopSetParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)stopMoveStepWithParams:(MTRColorControlClusterStopMoveStepParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)moveColorTemperatureWithParams:(MTRColorControlClusterMoveColorTemperatureParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 - (void)stepColorTemperatureWithParams:(MTRColorControlClusterStepColorTemperatureParams *)params
-                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                      completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentHueWithParams:(MTRReadParams * _Nullable)params;
@@ -3698,17 +3698,17 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)changeChannelWithParams:(MTRChannelClusterChangeChannelParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(void (^)(MTRChannelClusterChangeChannelResponseParams * _Nullable data,
                                     NSError * _Nullable error))completionHandler;
 - (void)changeChannelByNumberWithParams:(MTRChannelClusterChangeChannelByNumberParams *)params
-                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                  expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                       completionHandler:(StatusCompletion)completionHandler;
 - (void)skipChannelWithParams:(MTRChannelClusterSkipChannelParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeChannelListWithParams:(MTRReadParams * _Nullable)params;
@@ -3743,8 +3743,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)navigateTargetWithParams:(MTRTargetNavigatorClusterNavigateTargetParams *)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(void (^)(MTRTargetNavigatorClusterNavigateTargetResponseParams * _Nullable data,
                                      NSError * _Nullable error))completionHandler;
 
@@ -3778,8 +3778,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)playWithParams:(MTRMediaPlaybackClusterPlayParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)playWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3787,8 +3787,8 @@
              completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)pauseWithParams:(MTRMediaPlaybackClusterPauseParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)pauseWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3796,8 +3796,8 @@
               completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                     NSError * _Nullable error))completionHandler;
 - (void)stopPlaybackWithParams:(MTRMediaPlaybackClusterStopPlaybackParams * _Nullable)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)stopPlaybackWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3805,8 +3805,8 @@
                      completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                            NSError * _Nullable error))completionHandler;
 - (void)startOverWithParams:(MTRMediaPlaybackClusterStartOverParams * _Nullable)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                 NSError * _Nullable error))completionHandler;
 - (void)startOverWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3814,8 +3814,8 @@
                   completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                         NSError * _Nullable error))completionHandler;
 - (void)previousWithParams:(MTRMediaPlaybackClusterPreviousParams * _Nullable)params
-            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
          completionHandler:
              (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)previousWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3823,8 +3823,8 @@
                  completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                        NSError * _Nullable error))completionHandler;
 - (void)nextWithParams:(MTRMediaPlaybackClusterNextParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)nextWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3832,8 +3832,8 @@
              completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)rewindWithParams:(MTRMediaPlaybackClusterRewindParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 - (void)rewindWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3841,8 +3841,8 @@
                completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                      NSError * _Nullable error))completionHandler;
 - (void)fastForwardWithParams:(MTRMediaPlaybackClusterFastForwardParams * _Nullable)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                   NSError * _Nullable error))completionHandler;
 - (void)fastForwardWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -3850,18 +3850,18 @@
                     completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                           NSError * _Nullable error))completionHandler;
 - (void)skipForwardWithParams:(MTRMediaPlaybackClusterSkipForwardParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                   NSError * _Nullable error))completionHandler;
 - (void)skipBackwardWithParams:(MTRMediaPlaybackClusterSkipBackwardParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)seekWithParams:(MTRMediaPlaybackClusterSeekParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRMediaPlaybackClusterPlaybackResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 
@@ -3905,26 +3905,26 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)selectInputWithParams:(MTRMediaInputClusterSelectInputParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 - (void)showInputStatusWithParams:(MTRMediaInputClusterShowInputStatusParams * _Nullable)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)showInputStatusWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)hideInputStatusWithParams:(MTRMediaInputClusterHideInputStatusParams * _Nullable)params
-                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                 completionHandler:(StatusCompletion)completionHandler;
 - (void)hideInputStatusWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                         completionHandler:(StatusCompletion)completionHandler;
 - (void)renameInputWithParams:(MTRMediaInputClusterRenameInputParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeInputListWithParams:(MTRReadParams * _Nullable)params;
@@ -3957,8 +3957,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)sleepWithParams:(MTRLowPowerClusterSleepParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)sleepWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -3990,8 +3990,8 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)sendKeyWithParams:(MTRKeypadInputClusterSendKeyParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:
             (void (^)(MTRKeypadInputClusterSendKeyResponseParams * _Nullable data, NSError * _Nullable error))completionHandler;
 
@@ -4021,13 +4021,13 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)launchContentWithParams:(MTRContentLauncherClusterLaunchContentParams *)params
-                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
               completionHandler:(void (^)(MTRContentLauncherClusterLaunchResponseParams * _Nullable data,
                                     NSError * _Nullable error))completionHandler;
 - (void)launchURLWithParams:(MTRContentLauncherClusterLaunchURLParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(void (^)(MTRContentLauncherClusterLaunchResponseParams * _Nullable data,
                                 NSError * _Nullable error))completionHandler;
 
@@ -4066,12 +4066,12 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)selectOutputWithParams:(MTRAudioOutputClusterSelectOutputParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)renameOutputWithParams:(MTRAudioOutputClusterRenameOutputParams *)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeOutputListWithParams:(MTRReadParams * _Nullable)params;
@@ -4104,18 +4104,18 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)launchAppWithParams:(MTRApplicationLauncherClusterLaunchAppParams *)params
-             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
           completionHandler:(void (^)(MTRApplicationLauncherClusterLauncherResponseParams * _Nullable data,
                                 NSError * _Nullable error))completionHandler;
 - (void)stopAppWithParams:(MTRApplicationLauncherClusterStopAppParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(void (^)(MTRApplicationLauncherClusterLauncherResponseParams * _Nullable data,
                               NSError * _Nullable error))completionHandler;
 - (void)hideAppWithParams:(MTRApplicationLauncherClusterHideAppParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(void (^)(MTRApplicationLauncherClusterLauncherResponseParams * _Nullable data,
                               NSError * _Nullable error))completionHandler;
 
@@ -4195,17 +4195,17 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)getSetupPINWithParams:(MTRAccountLoginClusterGetSetupPINParams *)params
-               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
             completionHandler:(void (^)(MTRAccountLoginClusterGetSetupPINResponseParams * _Nullable data,
                                   NSError * _Nullable error))completionHandler;
 - (void)loginWithParams:(MTRAccountLoginClusterLoginParams *)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)logoutWithParams:(MTRAccountLoginClusterLogoutParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)logoutWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
@@ -4237,15 +4237,15 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)getProfileInfoCommandWithParams:(MTRElectricalMeasurementClusterGetProfileInfoCommandParams * _Nullable)params
-                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                         expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                  expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                       completionHandler:(StatusCompletion)completionHandler;
 - (void)getProfileInfoCommandWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                               completionHandler:(StatusCompletion)completionHandler;
 - (void)getMeasurementProfileCommandWithParams:(MTRElectricalMeasurementClusterGetMeasurementProfileCommandParams *)params
-                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                              completionHandler:(StatusCompletion)completionHandler;
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasurementTypeWithParams:(MTRReadParams * _Nullable)params;
@@ -4570,22 +4570,22 @@
                                   queue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER;
 
 - (void)testWithParams:(MTRTestClusterClusterTestParams * _Nullable)params
-           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
         completionHandler:(StatusCompletion)completionHandler;
 - (void)testWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
              completionHandler:(StatusCompletion)completionHandler;
 - (void)testNotHandledWithParams:(MTRTestClusterClusterTestNotHandledParams * _Nullable)params
-                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                completionHandler:(StatusCompletion)completionHandler;
 - (void)testNotHandledWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                        completionHandler:(StatusCompletion)completionHandler;
 - (void)testSpecificWithParams:(MTRTestClusterClusterTestSpecificParams * _Nullable)params
-                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
              completionHandler:(void (^)(MTRTestClusterClusterTestSpecificResponseParams * _Nullable data,
                                    NSError * _Nullable error))completionHandler;
 - (void)testSpecificWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
@@ -4593,104 +4593,109 @@
                      completionHandler:(void (^)(MTRTestClusterClusterTestSpecificResponseParams * _Nullable data,
                                            NSError * _Nullable error))completionHandler;
 - (void)testUnknownCommandWithParams:(MTRTestClusterClusterTestUnknownCommandParams * _Nullable)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)testUnknownCommandWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                            completionHandler:(StatusCompletion)completionHandler;
 - (void)testAddArgumentsWithParams:(MTRTestClusterClusterTestAddArgumentsParams *)params
-                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+             expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                  completionHandler:(void (^)(MTRTestClusterClusterTestAddArgumentsResponseParams * _Nullable data,
                                        NSError * _Nullable error))completionHandler;
 - (void)testSimpleArgumentRequestWithParams:(MTRTestClusterClusterTestSimpleArgumentRequestParams *)params
-                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                           completionHandler:(void (^)(MTRTestClusterClusterTestSimpleArgumentResponseParams * _Nullable data,
                                                 NSError * _Nullable error))completionHandler;
 - (void)testStructArrayArgumentRequestWithParams:(MTRTestClusterClusterTestStructArrayArgumentRequestParams *)params
-                                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                  expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                           expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                completionHandler:
                                    (void (^)(MTRTestClusterClusterTestStructArrayArgumentResponseParams * _Nullable data,
                                        NSError * _Nullable error))completionHandler;
 - (void)testStructArgumentRequestWithParams:(MTRTestClusterClusterTestStructArgumentRequestParams *)params
-                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                             expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                      expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                           completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                 NSError * _Nullable error))completionHandler;
 - (void)testNestedStructArgumentRequestWithParams:(MTRTestClusterClusterTestNestedStructArgumentRequestParams *)params
-                                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                   expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                            expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                 completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                       NSError * _Nullable error))completionHandler;
 - (void)testListStructArgumentRequestWithParams:(MTRTestClusterClusterTestListStructArgumentRequestParams *)params
-                                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                 expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                          expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                               completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                     NSError * _Nullable error))completionHandler;
 - (void)testListInt8UArgumentRequestWithParams:(MTRTestClusterClusterTestListInt8UArgumentRequestParams *)params
-                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                         expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                              completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                    NSError * _Nullable error))completionHandler;
 - (void)testNestedStructListArgumentRequestWithParams:(MTRTestClusterClusterTestNestedStructListArgumentRequestParams *)params
-                                       expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                       expectedValues:
+                                           (NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                                expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                     completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                           NSError * _Nullable error))completionHandler;
 - (void)testListNestedStructListArgumentRequestWithParams:
             (MTRTestClusterClusterTestListNestedStructListArgumentRequestParams *)params
-                                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                           expectedValues:
+                                               (NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                         completionHandler:(void (^)(MTRTestClusterClusterBooleanResponseParams * _Nullable data,
                                                               NSError * _Nullable error))completionHandler;
 - (void)testListInt8UReverseRequestWithParams:(MTRTestClusterClusterTestListInt8UReverseRequestParams *)params
-                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                             completionHandler:(void (^)(MTRTestClusterClusterTestListInt8UReverseResponseParams * _Nullable data,
                                                   NSError * _Nullable error))completionHandler;
 - (void)testEnumsRequestWithParams:(MTRTestClusterClusterTestEnumsRequestParams *)params
-                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                    expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+             expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                  completionHandler:(void (^)(MTRTestClusterClusterTestEnumsResponseParams * _Nullable data,
                                        NSError * _Nullable error))completionHandler;
 - (void)testNullableOptionalRequestWithParams:(MTRTestClusterClusterTestNullableOptionalRequestParams * _Nullable)params
-                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                               expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                        expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                             completionHandler:(void (^)(MTRTestClusterClusterTestNullableOptionalResponseParams * _Nullable data,
                                                   NSError * _Nullable error))completionHandler;
 - (void)testComplexNullableOptionalRequestWithParams:(MTRTestClusterClusterTestComplexNullableOptionalRequestParams *)params
-                                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                      expectedValues:
+                                          (NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                    completionHandler:
                                        (void (^)(MTRTestClusterClusterTestComplexNullableOptionalResponseParams * _Nullable data,
                                            NSError * _Nullable error))completionHandler;
 - (void)simpleStructEchoRequestWithParams:(MTRTestClusterClusterSimpleStructEchoRequestParams *)params
-                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                           expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                    expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                         completionHandler:(void (^)(MTRTestClusterClusterSimpleStructResponseParams * _Nullable data,
                                               NSError * _Nullable error))completionHandler;
 - (void)timedInvokeRequestWithParams:(MTRTestClusterClusterTimedInvokeRequestParams * _Nullable)params
-                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                      expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+               expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                    completionHandler:(StatusCompletion)completionHandler;
 - (void)timedInvokeRequestWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                            completionHandler:(StatusCompletion)completionHandler;
 - (void)testSimpleOptionalArgumentRequestWithParams:(MTRTestClusterClusterTestSimpleOptionalArgumentRequestParams * _Nullable)params
-                                     expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                     expectedValues:
+                                         (NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                              expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                   completionHandler:(StatusCompletion)completionHandler;
 - (void)testEmitTestEventRequestWithParams:(MTRTestClusterClusterTestEmitTestEventRequestParams *)params
-                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                            expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                     expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                          completionHandler:(void (^)(MTRTestClusterClusterTestEmitTestEventResponseParams * _Nullable data,
                                                NSError * _Nullable error))completionHandler;
 - (void)testEmitTestFabricScopedEventRequestWithParams:(MTRTestClusterClusterTestEmitTestFabricScopedEventRequestParams *)params
-                                        expectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedDataValueDictionaries
-                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+                                        expectedValues:
+                                            (NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries
+                                 expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs
                                      completionHandler:
                                          (void (^)(
                                              MTRTestClusterClusterTestEmitTestFabricScopedEventResponseParams * _Nullable data,
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index e33a7f6..9172a6d 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -63,30 +63,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Identify::Commands::Identify::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Identify::Commands::Identify::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.identifyTime = params.identifyTime.unsignedShortValue;
+            }
+            request.identifyTime = params.identifyTime.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::IdentifyCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::IdentifyCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -98,42 +96,40 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Identify::Commands::TriggerEffect::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Identify::Commands::TriggerEffect::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.effectIdentifier = static_cast<std::remove_reference_t<decltype(request.effectIdentifier)>>(
-                    params.effectIdentifier.unsignedCharValue);
-                request.effectVariant
-                    = static_cast<std::remove_reference_t<decltype(request.effectVariant)>>(params.effectVariant.unsignedCharValue);
+            }
+            request.effectIdentifier = static_cast<std::remove_reference_t<decltype(request.effectIdentifier)>>(
+                params.effectIdentifier.unsignedCharValue);
+            request.effectVariant
+                = static_cast<std::remove_reference_t<decltype(request.effectVariant)>>(params.effectVariant.unsignedCharValue);
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::IdentifyCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::IdentifyCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeIdentifyTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeIdentifyTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeIdentifyTimeID)
                                              params:params];
 }
 
@@ -146,61 +142,61 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterIdentifyID)
-                                  attributeId:@(MTRClusterIdentifyAttributeIdentifyTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterIdentifyID)
+                                  attributeID:@(MTRClusterIdentifyAttributeIdentifyTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeIdentifyTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeIdentifyTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeIdentifyTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIdentifyID)
-                                        attributeId:@(MTRClusterIdentifyAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIdentifyID)
+                                        attributeID:@(MTRClusterIdentifyAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -229,27 +225,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupsClusterAddGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::AddGroup::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupsClusterAddGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::AddGroup::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.groupName = [self asCharSpan:params.groupName];
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.groupName = [self asCharSpan:params.groupName];
 
-                auto successFn = Callback<GroupsClusterAddGroupResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupsClusterAddGroupResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -262,26 +256,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupsClusterViewGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::ViewGroup::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupsClusterViewGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::ViewGroup::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
 
-                auto successFn = Callback<GroupsClusterViewGroupResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupsClusterViewGroupResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -294,47 +286,45 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupsClusterGetGroupMembershipResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::GetGroupMembership::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupsClusterGetGroupMembershipResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::GetGroupMembership::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.groupList)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.groupList.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.groupList.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.groupList)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.groupList.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.groupList.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.groupList.count; ++i_0) {
+                        if (![params.groupList[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.groupList.count; ++i_0) {
-                            if (![params.groupList[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.groupList[i_0];
-                            listHolder_0->mList[i_0] = element_0.unsignedShortValue;
-                        }
-                        request.groupList = ListType_0(listHolder_0->mList, params.groupList.count);
-                    } else {
-                        request.groupList = ListType_0();
+                        auto element_0 = (NSNumber *) params.groupList[i_0];
+                        listHolder_0->mList[i_0] = element_0.unsignedShortValue;
                     }
+                    request.groupList = ListType_0(listHolder_0->mList, params.groupList.count);
+                } else {
+                    request.groupList = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<GroupsClusterGetGroupMembershipResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupsClusterGetGroupMembershipResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -347,26 +337,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupsClusterRemoveGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::RemoveGroup::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupsClusterRemoveGroupResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::RemoveGroup::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
 
-                auto successFn = Callback<GroupsClusterRemoveGroupResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupsClusterRemoveGroupResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -387,29 +375,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::RemoveAllGroups::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::RemoveAllGroups::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -421,80 +407,78 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Groups::Commands::AddGroupIfIdentifying::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Groups::Commands::AddGroupIfIdentifying::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.groupName = [self asCharSpan:params.groupName];
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.groupName = [self asCharSpan:params.groupName];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNameSupportWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeNameSupportID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeNameSupportID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupsID)
-                                        attributeId:@(MTRClusterGroupsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupsID)
+                                        attributeID:@(MTRClusterGroupsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -523,103 +507,100 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterAddSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::AddScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterAddSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::AddScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.sceneName = [self asCharSpan:params.sceneName];
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.extensionFieldSets)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.extensionFieldSets.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.extensionFieldSets.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.sceneName = [self asCharSpan:params.sceneName];
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.extensionFieldSets)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.extensionFieldSets.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.extensionFieldSets.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.extensionFieldSets.count; ++i_0) {
+                        if (![params.extensionFieldSets[i_0] isKindOfClass:[MTRScenesClusterExtensionFieldSet class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.extensionFieldSets.count; ++i_0) {
-                            if (![params.extensionFieldSets[i_0] isKindOfClass:[MTRScenesClusterExtensionFieldSet class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRScenesClusterExtensionFieldSet *) params.extensionFieldSets[i_0];
-                            listHolder_0->mList[i_0].clusterId = element_0.clusterId.unsignedIntValue;
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].attributeValueList)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.attributeValueList.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.attributeValueList.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                        auto element_0 = (MTRScenesClusterExtensionFieldSet *) params.extensionFieldSets[i_0];
+                        listHolder_0->mList[i_0].clusterId = element_0.clusterId.unsignedIntValue;
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].attributeValueList)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.attributeValueList.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.attributeValueList.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.attributeValueList.count; ++i_2) {
+                                    if (![element_0.attributeValueList[i_2]
+                                            isKindOfClass:[MTRScenesClusterAttributeValuePair class]]) {
+                                        // Wrong kind of value.
                                         return CHIP_ERROR_INVALID_ARGUMENT;
                                     }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.attributeValueList.count; ++i_2) {
-                                        if (![element_0.attributeValueList[i_2]
-                                                isKindOfClass:[MTRScenesClusterAttributeValuePair class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (MTRScenesClusterAttributeValuePair *) element_0.attributeValueList[i_2];
-                                        if (element_2.attributeId != nil) {
-                                            auto & definedValue_4 = listHolder_2->mList[i_2].attributeId.Emplace();
-                                            definedValue_4 = element_2.attributeId.unsignedIntValue;
-                                        }
-                                        {
-                                            using ListType_4
-                                                = std::remove_reference_t<decltype(listHolder_2->mList[i_2].attributeValue)>;
-                                            using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
-                                            if (element_2.attributeValue.count != 0) {
-                                                auto * listHolder_4
-                                                    = new ListHolder<ListMemberType_4>(element_2.attributeValue.count);
-                                                if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                                    auto element_2 = (MTRScenesClusterAttributeValuePair *) element_0.attributeValueList[i_2];
+                                    if (element_2.attributeId != nil) {
+                                        auto & definedValue_4 = listHolder_2->mList[i_2].attributeId.Emplace();
+                                        definedValue_4 = element_2.attributeId.unsignedIntValue;
+                                    }
+                                    {
+                                        using ListType_4
+                                            = std::remove_reference_t<decltype(listHolder_2->mList[i_2].attributeValue)>;
+                                        using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+                                        if (element_2.attributeValue.count != 0) {
+                                            auto * listHolder_4 = new ListHolder<ListMemberType_4>(element_2.attributeValue.count);
+                                            if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                                                return CHIP_ERROR_INVALID_ARGUMENT;
+                                            }
+                                            listFreer.add(listHolder_4);
+                                            for (size_t i_4 = 0; i_4 < element_2.attributeValue.count; ++i_4) {
+                                                if (![element_2.attributeValue[i_4] isKindOfClass:[NSNumber class]]) {
+                                                    // Wrong kind of value.
                                                     return CHIP_ERROR_INVALID_ARGUMENT;
                                                 }
-                                                listFreer.add(listHolder_4);
-                                                for (size_t i_4 = 0; i_4 < element_2.attributeValue.count; ++i_4) {
-                                                    if (![element_2.attributeValue[i_4] isKindOfClass:[NSNumber class]]) {
-                                                        // Wrong kind of value.
-                                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                                    }
-                                                    auto element_4 = (NSNumber *) element_2.attributeValue[i_4];
-                                                    listHolder_4->mList[i_4] = element_4.unsignedCharValue;
-                                                }
-                                                listHolder_2->mList[i_2].attributeValue
-                                                    = ListType_4(listHolder_4->mList, element_2.attributeValue.count);
-                                            } else {
-                                                listHolder_2->mList[i_2].attributeValue = ListType_4();
+                                                auto element_4 = (NSNumber *) element_2.attributeValue[i_4];
+                                                listHolder_4->mList[i_4] = element_4.unsignedCharValue;
                                             }
+                                            listHolder_2->mList[i_2].attributeValue
+                                                = ListType_4(listHolder_4->mList, element_2.attributeValue.count);
+                                        } else {
+                                            listHolder_2->mList[i_2].attributeValue = ListType_4();
                                         }
                                     }
-                                    listHolder_0->mList[i_0].attributeValueList
-                                        = ListType_2(listHolder_2->mList, element_0.attributeValueList.count);
-                                } else {
-                                    listHolder_0->mList[i_0].attributeValueList = ListType_2();
                                 }
+                                listHolder_0->mList[i_0].attributeValueList
+                                    = ListType_2(listHolder_2->mList, element_0.attributeValueList.count);
+                            } else {
+                                listHolder_0->mList[i_0].attributeValueList = ListType_2();
                             }
                         }
-                        request.extensionFieldSets = ListType_0(listHolder_0->mList, params.extensionFieldSets.count);
-                    } else {
-                        request.extensionFieldSets = ListType_0();
                     }
+                    request.extensionFieldSets = ListType_0(listHolder_0->mList, params.extensionFieldSets.count);
+                } else {
+                    request.extensionFieldSets = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<ScenesClusterAddSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterAddSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -632,27 +613,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterViewSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::ViewScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterViewSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::ViewScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
 
-                auto successFn = Callback<ScenesClusterViewSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterViewSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -665,27 +644,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterRemoveSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::RemoveScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterRemoveSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::RemoveScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
 
-                auto successFn = Callback<ScenesClusterRemoveSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterRemoveSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -698,26 +675,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterRemoveAllScenesResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::RemoveAllScenes::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterRemoveAllScenesResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::RemoveAllScenes::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
 
-                auto successFn = Callback<ScenesClusterRemoveAllScenesResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterRemoveAllScenesResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -730,27 +705,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterStoreSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::StoreScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterStoreSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::StoreScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
 
-                auto successFn = Callback<ScenesClusterStoreSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterStoreSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -762,40 +735,38 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::RecallScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::RecallScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
-                if (params.transitionTime != nil) {
-                    auto & definedValue_0 = request.transitionTime.Emplace();
-                    if (params.transitionTime == nil) {
-                        definedValue_0.SetNull();
-                    } else {
-                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                        nonNullValue_1 = params.transitionTime.unsignedShortValue;
-                    }
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
+            if (params.transitionTime != nil) {
+                auto & definedValue_0 = request.transitionTime.Emplace();
+                if (params.transitionTime == nil) {
+                    definedValue_0.SetNull();
+                } else {
+                    auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                    nonNullValue_1 = params.transitionTime.unsignedShortValue;
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -808,26 +779,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterGetSceneMembershipResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::GetSceneMembership::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterGetSceneMembershipResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::GetSceneMembership::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
 
-                auto successFn = Callback<ScenesClusterGetSceneMembershipResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterGetSceneMembershipResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -840,103 +809,100 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterEnhancedAddSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::EnhancedAddScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterEnhancedAddSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::EnhancedAddScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.sceneName = [self asCharSpan:params.sceneName];
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.extensionFieldSets)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.extensionFieldSets.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.extensionFieldSets.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.sceneName = [self asCharSpan:params.sceneName];
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.extensionFieldSets)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.extensionFieldSets.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.extensionFieldSets.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.extensionFieldSets.count; ++i_0) {
+                        if (![params.extensionFieldSets[i_0] isKindOfClass:[MTRScenesClusterExtensionFieldSet class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.extensionFieldSets.count; ++i_0) {
-                            if (![params.extensionFieldSets[i_0] isKindOfClass:[MTRScenesClusterExtensionFieldSet class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRScenesClusterExtensionFieldSet *) params.extensionFieldSets[i_0];
-                            listHolder_0->mList[i_0].clusterId = element_0.clusterId.unsignedIntValue;
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].attributeValueList)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.attributeValueList.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.attributeValueList.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                        auto element_0 = (MTRScenesClusterExtensionFieldSet *) params.extensionFieldSets[i_0];
+                        listHolder_0->mList[i_0].clusterId = element_0.clusterId.unsignedIntValue;
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].attributeValueList)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.attributeValueList.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.attributeValueList.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.attributeValueList.count; ++i_2) {
+                                    if (![element_0.attributeValueList[i_2]
+                                            isKindOfClass:[MTRScenesClusterAttributeValuePair class]]) {
+                                        // Wrong kind of value.
                                         return CHIP_ERROR_INVALID_ARGUMENT;
                                     }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.attributeValueList.count; ++i_2) {
-                                        if (![element_0.attributeValueList[i_2]
-                                                isKindOfClass:[MTRScenesClusterAttributeValuePair class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (MTRScenesClusterAttributeValuePair *) element_0.attributeValueList[i_2];
-                                        if (element_2.attributeId != nil) {
-                                            auto & definedValue_4 = listHolder_2->mList[i_2].attributeId.Emplace();
-                                            definedValue_4 = element_2.attributeId.unsignedIntValue;
-                                        }
-                                        {
-                                            using ListType_4
-                                                = std::remove_reference_t<decltype(listHolder_2->mList[i_2].attributeValue)>;
-                                            using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
-                                            if (element_2.attributeValue.count != 0) {
-                                                auto * listHolder_4
-                                                    = new ListHolder<ListMemberType_4>(element_2.attributeValue.count);
-                                                if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                                    auto element_2 = (MTRScenesClusterAttributeValuePair *) element_0.attributeValueList[i_2];
+                                    if (element_2.attributeId != nil) {
+                                        auto & definedValue_4 = listHolder_2->mList[i_2].attributeId.Emplace();
+                                        definedValue_4 = element_2.attributeId.unsignedIntValue;
+                                    }
+                                    {
+                                        using ListType_4
+                                            = std::remove_reference_t<decltype(listHolder_2->mList[i_2].attributeValue)>;
+                                        using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+                                        if (element_2.attributeValue.count != 0) {
+                                            auto * listHolder_4 = new ListHolder<ListMemberType_4>(element_2.attributeValue.count);
+                                            if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                                                return CHIP_ERROR_INVALID_ARGUMENT;
+                                            }
+                                            listFreer.add(listHolder_4);
+                                            for (size_t i_4 = 0; i_4 < element_2.attributeValue.count; ++i_4) {
+                                                if (![element_2.attributeValue[i_4] isKindOfClass:[NSNumber class]]) {
+                                                    // Wrong kind of value.
                                                     return CHIP_ERROR_INVALID_ARGUMENT;
                                                 }
-                                                listFreer.add(listHolder_4);
-                                                for (size_t i_4 = 0; i_4 < element_2.attributeValue.count; ++i_4) {
-                                                    if (![element_2.attributeValue[i_4] isKindOfClass:[NSNumber class]]) {
-                                                        // Wrong kind of value.
-                                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                                    }
-                                                    auto element_4 = (NSNumber *) element_2.attributeValue[i_4];
-                                                    listHolder_4->mList[i_4] = element_4.unsignedCharValue;
-                                                }
-                                                listHolder_2->mList[i_2].attributeValue
-                                                    = ListType_4(listHolder_4->mList, element_2.attributeValue.count);
-                                            } else {
-                                                listHolder_2->mList[i_2].attributeValue = ListType_4();
+                                                auto element_4 = (NSNumber *) element_2.attributeValue[i_4];
+                                                listHolder_4->mList[i_4] = element_4.unsignedCharValue;
                                             }
+                                            listHolder_2->mList[i_2].attributeValue
+                                                = ListType_4(listHolder_4->mList, element_2.attributeValue.count);
+                                        } else {
+                                            listHolder_2->mList[i_2].attributeValue = ListType_4();
                                         }
                                     }
-                                    listHolder_0->mList[i_0].attributeValueList
-                                        = ListType_2(listHolder_2->mList, element_0.attributeValueList.count);
-                                } else {
-                                    listHolder_0->mList[i_0].attributeValueList = ListType_2();
                                 }
+                                listHolder_0->mList[i_0].attributeValueList
+                                    = ListType_2(listHolder_2->mList, element_0.attributeValueList.count);
+                            } else {
+                                listHolder_0->mList[i_0].attributeValueList = ListType_2();
                             }
                         }
-                        request.extensionFieldSets = ListType_0(listHolder_0->mList, params.extensionFieldSets.count);
-                    } else {
-                        request.extensionFieldSets = ListType_0();
                     }
+                    request.extensionFieldSets = ListType_0(listHolder_0->mList, params.extensionFieldSets.count);
+                } else {
+                    request.extensionFieldSets = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<ScenesClusterEnhancedAddSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterEnhancedAddSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -949,27 +915,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterEnhancedViewSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::EnhancedViewScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterEnhancedViewSceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::EnhancedViewScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupId = params.groupId.unsignedShortValue;
-                request.sceneId = params.sceneId.unsignedCharValue;
+            }
+            request.groupId = params.groupId.unsignedShortValue;
+            request.sceneId = params.sceneId.unsignedCharValue;
 
-                auto successFn = Callback<ScenesClusterEnhancedViewSceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterEnhancedViewSceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -982,119 +946,117 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRScenesClusterCopySceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Scenes::Commands::CopyScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRScenesClusterCopySceneResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Scenes::Commands::CopyScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.mode = static_cast<std::remove_reference_t<decltype(request.mode)>>(params.mode.unsignedCharValue);
-                request.groupIdFrom = params.groupIdFrom.unsignedShortValue;
-                request.sceneIdFrom = params.sceneIdFrom.unsignedCharValue;
-                request.groupIdTo = params.groupIdTo.unsignedShortValue;
-                request.sceneIdTo = params.sceneIdTo.unsignedCharValue;
+            }
+            request.mode = static_cast<std::remove_reference_t<decltype(request.mode)>>(params.mode.unsignedCharValue);
+            request.groupIdFrom = params.groupIdFrom.unsignedShortValue;
+            request.sceneIdFrom = params.sceneIdFrom.unsignedCharValue;
+            request.groupIdTo = params.groupIdTo.unsignedShortValue;
+            request.sceneIdTo = params.sceneIdTo.unsignedCharValue;
 
-                auto successFn = Callback<ScenesClusterCopySceneResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ScenesClusterCopySceneResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ScenesCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSceneCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeSceneCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeSceneCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentSceneWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeCurrentSceneID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeCurrentSceneID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentGroupWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeCurrentGroupID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeCurrentGroupID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSceneValidWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeSceneValidID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeSceneValidID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNameSupportWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeNameSupportID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeNameSupportID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLastConfiguredByWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeLastConfiguredByID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeLastConfiguredByID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterScenesID)
-                                        attributeId:@(MTRClusterScenesAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterScenesID)
+                                        attributeID:@(MTRClusterScenesAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -1131,29 +1093,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::Off::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::Off::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1174,29 +1134,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::On::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::On::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1217,29 +1175,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::Toggle::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::Toggle::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1251,33 +1207,30 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::OffWithEffect::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::OffWithEffect::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.effectId
-                    = static_cast<std::remove_reference_t<decltype(request.effectId)>>(params.effectId.unsignedCharValue);
-                request.effectVariant
-                    = static_cast<std::remove_reference_t<decltype(request.effectVariant)>>(params.effectVariant.unsignedCharValue);
+            }
+            request.effectId = static_cast<std::remove_reference_t<decltype(request.effectId)>>(params.effectId.unsignedCharValue);
+            request.effectVariant
+                = static_cast<std::remove_reference_t<decltype(request.effectVariant)>>(params.effectVariant.unsignedCharValue);
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1298,29 +1251,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::OnWithRecallGlobalScene::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::OnWithRecallGlobalScene::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1332,58 +1283,56 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OnOff::Commands::OnWithTimedOff::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OnOff::Commands::OnWithTimedOff::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.onOffControl
-                    = static_cast<std::remove_reference_t<decltype(request.onOffControl)>>(params.onOffControl.unsignedCharValue);
-                request.onTime = params.onTime.unsignedShortValue;
-                request.offWaitTime = params.offWaitTime.unsignedShortValue;
+            }
+            request.onOffControl
+                = static_cast<std::remove_reference_t<decltype(request.onOffControl)>>(params.onOffControl.unsignedCharValue);
+            request.onTime = params.onTime.unsignedShortValue;
+            request.offWaitTime = params.offWaitTime.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OnOffCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnOffWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeOnOffID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeOnOffID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGlobalSceneControlWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeGlobalSceneControlID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeGlobalSceneControlID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeOnTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeOnTimeID)
                                              params:params];
 }
 
@@ -1396,21 +1345,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOnOffID)
-                                  attributeId:@(MTRClusterOnOffAttributeOnTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOnOffID)
+                                  attributeID:@(MTRClusterOnOffAttributeOnTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOffWaitTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeOffWaitTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeOffWaitTimeID)
                                              params:params];
 }
 
@@ -1423,21 +1372,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOnOffID)
-                                  attributeId:@(MTRClusterOnOffAttributeOffWaitTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOnOffID)
+                                  attributeID:@(MTRClusterOnOffAttributeOffWaitTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartUpOnOffWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeStartUpOnOffID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeStartUpOnOffID)
                                              params:params];
 }
 
@@ -1450,53 +1399,53 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOnOffID)
-                                  attributeId:@(MTRClusterOnOffAttributeStartUpOnOffID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOnOffID)
+                                  attributeID:@(MTRClusterOnOffAttributeStartUpOnOffID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffID)
-                                        attributeId:@(MTRClusterOnOffAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffID)
+                                        attributeID:@(MTRClusterOnOffAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -1519,17 +1468,17 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeSwitchTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSwitchActionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchActionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchActionsID)
                                              params:params];
 }
 
@@ -1542,53 +1491,53 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                  attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchActionsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                  attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeSwitchActionsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOnOffSwitchConfigurationID)
-                                        attributeId:@(MTRClusterOnOffSwitchConfigurationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOnOffSwitchConfigurationID)
+                                        attributeID:@(MTRClusterOnOffSwitchConfigurationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -1616,38 +1565,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::MoveToLevel::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::MoveToLevel::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.level = params.level.unsignedCharValue;
-                if (params.transitionTime == nil) {
-                    request.transitionTime.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.transitionTime.SetNonNull();
-                    nonNullValue_0 = params.transitionTime.unsignedShortValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.level = params.level.unsignedCharValue;
+            if (params.transitionTime == nil) {
+                request.transitionTime.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+                nonNullValue_0 = params.transitionTime.unsignedShortValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1659,39 +1606,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::Move::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::Move::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                if (params.rate == nil) {
-                    request.rate.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.rate.SetNonNull();
-                    nonNullValue_0 = params.rate.unsignedCharValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            if (params.rate == nil) {
+                request.rate.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.rate.SetNonNull();
+                nonNullValue_0 = params.rate.unsignedCharValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1703,40 +1647,37 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::Step::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::Step::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedCharValue;
-                if (params.transitionTime == nil) {
-                    request.transitionTime.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.transitionTime.SetNonNull();
-                    nonNullValue_0 = params.transitionTime.unsignedShortValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedCharValue;
+            if (params.transitionTime == nil) {
+                request.transitionTime.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+                nonNullValue_0 = params.transitionTime.unsignedShortValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1748,31 +1689,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::Stop::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::Stop::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1784,38 +1723,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::MoveToLevelWithOnOff::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::MoveToLevelWithOnOff::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.level = params.level.unsignedCharValue;
-                if (params.transitionTime == nil) {
-                    request.transitionTime.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.transitionTime.SetNonNull();
-                    nonNullValue_0 = params.transitionTime.unsignedShortValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.level = params.level.unsignedCharValue;
+            if (params.transitionTime == nil) {
+                request.transitionTime.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+                nonNullValue_0 = params.transitionTime.unsignedShortValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1827,39 +1764,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::MoveWithOnOff::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::MoveWithOnOff::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                if (params.rate == nil) {
-                    request.rate.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.rate.SetNonNull();
-                    nonNullValue_0 = params.rate.unsignedCharValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            if (params.rate == nil) {
+                request.rate.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.rate.SetNonNull();
+                nonNullValue_0 = params.rate.unsignedCharValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1871,40 +1805,37 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::StepWithOnOff::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::StepWithOnOff::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedCharValue;
-                if (params.transitionTime == nil) {
-                    request.transitionTime.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.transitionTime.SetNonNull();
-                    nonNullValue_0 = params.transitionTime.unsignedShortValue;
-                }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedCharValue;
+            if (params.transitionTime == nil) {
+                request.transitionTime.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.transitionTime.SetNonNull();
+                nonNullValue_0 = params.transitionTime.unsignedShortValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1916,31 +1847,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::StopWithOnOff::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::StopWithOnOff::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -1952,95 +1881,93 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LevelControl::Commands::MoveToClosestFrequency::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LevelControl::Commands::MoveToClosestFrequency::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.frequency = params.frequency.unsignedShortValue;
+            }
+            request.frequency = params.frequency.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LevelControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeCurrentLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeCurrentLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRemainingTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeRemainingTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeRemainingTimeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeMinLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeMinLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeMaxLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeMaxLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentFrequencyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeCurrentFrequencyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeCurrentFrequencyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinFrequencyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeMinFrequencyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeMinFrequencyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxFrequencyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeMaxFrequencyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeMaxFrequencyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOptionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeOptionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeOptionsID)
                                              params:params];
 }
 
@@ -2053,21 +1980,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeOptionsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeOptionsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnOffTransitionTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeOnOffTransitionTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeOnOffTransitionTimeID)
                                              params:params];
 }
 
@@ -2080,21 +2007,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeOnOffTransitionTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeOnOffTransitionTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeOnLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeOnLevelID)
                                              params:params];
 }
 
@@ -2107,21 +2034,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeOnLevelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeOnLevelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnTransitionTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeOnTransitionTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeOnTransitionTimeID)
                                              params:params];
 }
 
@@ -2134,21 +2061,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeOnTransitionTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeOnTransitionTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOffTransitionTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeOffTransitionTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeOffTransitionTimeID)
                                              params:params];
 }
 
@@ -2161,21 +2088,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeOffTransitionTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeOffTransitionTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDefaultMoveRateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeDefaultMoveRateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeDefaultMoveRateID)
                                              params:params];
 }
 
@@ -2188,21 +2115,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeDefaultMoveRateID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeDefaultMoveRateID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartUpCurrentLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeStartUpCurrentLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeStartUpCurrentLevelID)
                                              params:params];
 }
 
@@ -2215,53 +2142,53 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLevelControlID)
-                                  attributeId:@(MTRClusterLevelControlAttributeStartUpCurrentLevelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLevelControlID)
+                                  attributeID:@(MTRClusterLevelControlAttributeStartUpCurrentLevelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLevelControlID)
-                                        attributeId:@(MTRClusterLevelControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLevelControlID)
+                                        attributeID:@(MTRClusterLevelControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -2284,9 +2211,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveTextWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeActiveTextID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeActiveTextID)
                                              params:params];
 }
 
@@ -2299,21 +2226,21 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributeActiveTextID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributeActiveTextID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDescriptionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeDescriptionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeDescriptionID)
                                              params:params];
 }
 
@@ -2326,21 +2253,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributeDescriptionID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributeDescriptionID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInactiveTextWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeInactiveTextID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeInactiveTextID)
                                              params:params];
 }
 
@@ -2353,21 +2280,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributeInactiveTextID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributeInactiveTextID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOutOfServiceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeOutOfServiceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeOutOfServiceID)
                                              params:params];
 }
 
@@ -2380,29 +2307,29 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributeOutOfServiceID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributeOutOfServiceID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePolarityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributePolarityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributePolarityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePresentValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributePresentValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributePresentValueID)
                                              params:params];
 }
 
@@ -2415,21 +2342,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributePresentValueID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributePresentValueID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReliabilityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeReliabilityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeReliabilityID)
                                              params:params];
 }
 
@@ -2442,69 +2369,69 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBinaryInputBasicID)
-                                  attributeId:@(MTRClusterBinaryInputBasicAttributeReliabilityID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBinaryInputBasicID)
+                                  attributeID:@(MTRClusterBinaryInputBasicAttributeReliabilityID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStatusFlagsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeStatusFlagsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeStatusFlagsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApplicationTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeApplicationTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeApplicationTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBinaryInputBasicID)
-                                        attributeId:@(MTRClusterBinaryInputBasicAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBinaryInputBasicID)
+                                        attributeID:@(MTRClusterBinaryInputBasicAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -2527,73 +2454,73 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeDeviceListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeDeviceListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeDeviceListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeServerListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeServerListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeServerListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClientListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeClientListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeClientListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePartsListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributePartsListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributePartsListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDescriptorID)
-                                        attributeId:@(MTRClusterDescriptorAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDescriptorID)
+                                        attributeID:@(MTRClusterDescriptorAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -2616,9 +2543,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeBindingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeBindingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeBindingID)
                                              params:params];
 }
 
@@ -2631,53 +2558,53 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBindingID)
-                                  attributeId:@(MTRClusterBindingAttributeBindingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBindingID)
+                                  attributeID:@(MTRClusterBindingAttributeBindingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBindingID)
-                                        attributeId:@(MTRClusterBindingAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBindingID)
+                                        attributeID:@(MTRClusterBindingAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -2700,9 +2627,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeAclWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeAclID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeAclID)
                                              params:params];
 }
 
@@ -2715,21 +2642,21 @@
              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterAccessControlID)
-                                  attributeId:@(MTRClusterAccessControlAttributeAclID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterAccessControlID)
+                                  attributeID:@(MTRClusterAccessControlAttributeAclID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeExtensionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeExtensionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeExtensionID)
                                              params:params];
 }
 
@@ -2742,77 +2669,77 @@
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterAccessControlID)
-                                  attributeId:@(MTRClusterAccessControlAttributeExtensionID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterAccessControlID)
+                                  attributeID:@(MTRClusterAccessControlAttributeExtensionID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSubjectsPerAccessControlEntryWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeSubjectsPerAccessControlEntryID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeSubjectsPerAccessControlEntryID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTargetsPerAccessControlEntryWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeTargetsPerAccessControlEntryID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeTargetsPerAccessControlEntryID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAccessControlEntriesPerFabricWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeAccessControlEntriesPerFabricID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeAccessControlEntriesPerFabricID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccessControlID)
-                                        attributeId:@(MTRClusterAccessControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccessControlID)
+                                        attributeID:@(MTRClusterAccessControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -2840,34 +2767,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::InstantAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::InstantAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -2879,35 +2804,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::InstantActionWithTransition::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::InstantActionWithTransition::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
-                request.transitionTime = params.transitionTime.unsignedShortValue;
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
+            request.transitionTime = params.transitionTime.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -2919,34 +2842,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::StartAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::StartAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -2958,35 +2879,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::StartActionWithDuration::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::StartActionWithDuration::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
-                request.duration = params.duration.unsignedIntValue;
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
+            request.duration = params.duration.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -2998,34 +2917,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::StopAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::StopAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3037,34 +2954,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::PauseAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::PauseAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3076,35 +2991,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::PauseActionWithDuration::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::PauseActionWithDuration::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
-                request.duration = params.duration.unsignedIntValue;
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
+            request.duration = params.duration.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3116,34 +3029,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::ResumeAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::ResumeAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3155,34 +3066,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::EnableAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::EnableAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3194,35 +3103,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::EnableActionWithDuration::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::EnableActionWithDuration::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
-                request.duration = params.duration.unsignedIntValue;
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
+            request.duration = params.duration.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3234,34 +3141,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::DisableAction::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::DisableAction::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3273,100 +3178,98 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Actions::Commands::DisableActionWithDuration::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Actions::Commands::DisableActionWithDuration::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.actionID = params.actionID.unsignedShortValue;
-                if (params.invokeID != nil) {
-                    auto & definedValue_0 = request.invokeID.Emplace();
-                    definedValue_0 = params.invokeID.unsignedIntValue;
-                }
-                request.duration = params.duration.unsignedIntValue;
+            }
+            request.actionID = params.actionID.unsignedShortValue;
+            if (params.invokeID != nil) {
+                auto & definedValue_0 = request.invokeID.Emplace();
+                definedValue_0 = params.invokeID.unsignedIntValue;
+            }
+            request.duration = params.duration.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ActionsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActionListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeActionListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeActionListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEndpointListsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeEndpointListsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeEndpointListsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSetupURLWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeSetupURLID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeSetupURLID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterActionsID)
-                                        attributeId:@(MTRClusterActionsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterActionsID)
+                                        attributeID:@(MTRClusterActionsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -3403,78 +3306,76 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Basic::Commands::MfgSpecificPing::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Basic::Commands::MfgSpecificPing::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::BasicCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::BasicCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDataModelRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeDataModelRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeDataModelRevisionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeVendorNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeVendorNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeVendorIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeVendorIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeProductNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeProductNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeProductIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeProductIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNodeLabelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeNodeLabelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeNodeLabelID)
                                              params:params];
 }
 
@@ -3487,21 +3388,21 @@
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBasicID)
-                                  attributeId:@(MTRClusterBasicAttributeNodeLabelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBasicID)
+                                  attributeID:@(MTRClusterBasicAttributeNodeLabelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeLocationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeLocationID)
                                              params:params];
 }
 
@@ -3514,93 +3415,93 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBasicID)
-                                  attributeId:@(MTRClusterBasicAttributeLocationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBasicID)
+                                  attributeID:@(MTRClusterBasicAttributeLocationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHardwareVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeHardwareVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeHardwareVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHardwareVersionStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeHardwareVersionStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeHardwareVersionStringID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSoftwareVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeSoftwareVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeSoftwareVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSoftwareVersionStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeSoftwareVersionStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeSoftwareVersionStringID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeManufacturingDateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeManufacturingDateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeManufacturingDateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePartNumberWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributePartNumberID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributePartNumberID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductURLWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeProductURLID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeProductURLID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductLabelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeProductLabelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeProductLabelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSerialNumberWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeSerialNumberID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeSerialNumberID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocalConfigDisabledWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeLocalConfigDisabledID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeLocalConfigDisabledID)
                                              params:params];
 }
 
@@ -3613,77 +3514,77 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBasicID)
-                                  attributeId:@(MTRClusterBasicAttributeLocalConfigDisabledID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBasicID)
+                                  attributeID:@(MTRClusterBasicAttributeLocalConfigDisabledID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReachableWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeReachableID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeReachableID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUniqueIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeUniqueIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeUniqueIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCapabilityMinimaWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeCapabilityMinimaID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeCapabilityMinimaID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBasicID)
-                                        attributeId:@(MTRClusterBasicAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBasicID)
+                                        attributeID:@(MTRClusterBasicAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -3712,68 +3613,65 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OtaSoftwareUpdateProvider::Commands::QueryImage::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OtaSoftwareUpdateProvider::Commands::QueryImage::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.vendorId
-                    = static_cast<std::remove_reference_t<decltype(request.vendorId)>>(params.vendorId.unsignedShortValue);
-                request.productId = params.productId.unsignedShortValue;
-                request.softwareVersion = params.softwareVersion.unsignedIntValue;
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.protocolsSupported)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.protocolsSupported.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.protocolsSupported.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            request.vendorId = static_cast<std::remove_reference_t<decltype(request.vendorId)>>(params.vendorId.unsignedShortValue);
+            request.productId = params.productId.unsignedShortValue;
+            request.softwareVersion = params.softwareVersion.unsignedIntValue;
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.protocolsSupported)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.protocolsSupported.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.protocolsSupported.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.protocolsSupported.count; ++i_0) {
+                        if (![params.protocolsSupported[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.protocolsSupported.count; ++i_0) {
-                            if (![params.protocolsSupported[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.protocolsSupported[i_0];
-                            listHolder_0->mList[i_0] = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0])>>(
-                                element_0.unsignedCharValue);
-                        }
-                        request.protocolsSupported = ListType_0(listHolder_0->mList, params.protocolsSupported.count);
-                    } else {
-                        request.protocolsSupported = ListType_0();
+                        auto element_0 = (NSNumber *) params.protocolsSupported[i_0];
+                        listHolder_0->mList[i_0]
+                            = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0])>>(element_0.unsignedCharValue);
                     }
+                    request.protocolsSupported = ListType_0(listHolder_0->mList, params.protocolsSupported.count);
+                } else {
+                    request.protocolsSupported = ListType_0();
                 }
-                if (params.hardwareVersion != nil) {
-                    auto & definedValue_0 = request.hardwareVersion.Emplace();
-                    definedValue_0 = params.hardwareVersion.unsignedShortValue;
-                }
-                if (params.location != nil) {
-                    auto & definedValue_0 = request.location.Emplace();
-                    definedValue_0 = [self asCharSpan:params.location];
-                }
-                if (params.requestorCanConsent != nil) {
-                    auto & definedValue_0 = request.requestorCanConsent.Emplace();
-                    definedValue_0 = params.requestorCanConsent.boolValue;
-                }
-                if (params.metadataForProvider != nil) {
-                    auto & definedValue_0 = request.metadataForProvider.Emplace();
-                    definedValue_0 = [self asByteSpan:params.metadataForProvider];
-                }
+            }
+            if (params.hardwareVersion != nil) {
+                auto & definedValue_0 = request.hardwareVersion.Emplace();
+                definedValue_0 = params.hardwareVersion.unsignedShortValue;
+            }
+            if (params.location != nil) {
+                auto & definedValue_0 = request.location.Emplace();
+                definedValue_0 = [self asCharSpan:params.location];
+            }
+            if (params.requestorCanConsent != nil) {
+                auto & definedValue_0 = request.requestorCanConsent.Emplace();
+                definedValue_0 = params.requestorCanConsent.boolValue;
+            }
+            if (params.metadataForProvider != nil) {
+                auto & definedValue_0 = request.metadataForProvider.Emplace();
+                definedValue_0 = [self asByteSpan:params.metadataForProvider];
+            }
 
-                auto successFn = Callback<OtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3786,27 +3684,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.updateToken = [self asByteSpan:params.updateToken];
-                request.newVersion = params.newVersion.unsignedIntValue;
+            }
+            request.updateToken = [self asByteSpan:params.updateToken];
+            request.newVersion = params.newVersion.unsignedIntValue;
 
-                auto successFn = Callback<OtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -3818,72 +3714,70 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.updateToken = [self asByteSpan:params.updateToken];
-                request.softwareVersion = params.softwareVersion.unsignedIntValue;
+            }
+            request.updateToken = [self asByteSpan:params.updateToken];
+            request.softwareVersion = params.softwareVersion.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OtaSoftwareUpdateProviderCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateProviderID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateProviderAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateProviderID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateProviderAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateProviderID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateProviderAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateProviderID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateProviderAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateProviderID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateProviderAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateProviderID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateProviderAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateProviderID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateProviderAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateProviderID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateProviderAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateProviderID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateProviderAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateProviderID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateProviderAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -3911,48 +3805,45 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OtaSoftwareUpdateRequestor::Commands::AnnounceOtaProvider::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OtaSoftwareUpdateRequestor::Commands::AnnounceOtaProvider::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.providerNodeId = params.providerNodeId.unsignedLongLongValue;
-                request.vendorId
-                    = static_cast<std::remove_reference_t<decltype(request.vendorId)>>(params.vendorId.unsignedShortValue);
-                request.announcementReason = static_cast<std::remove_reference_t<decltype(request.announcementReason)>>(
-                    params.announcementReason.unsignedCharValue);
-                if (params.metadataForNode != nil) {
-                    auto & definedValue_0 = request.metadataForNode.Emplace();
-                    definedValue_0 = [self asByteSpan:params.metadataForNode];
-                }
-                request.endpoint = params.endpoint.unsignedShortValue;
+            }
+            request.providerNodeId = params.providerNodeId.unsignedLongLongValue;
+            request.vendorId = static_cast<std::remove_reference_t<decltype(request.vendorId)>>(params.vendorId.unsignedShortValue);
+            request.announcementReason = static_cast<std::remove_reference_t<decltype(request.announcementReason)>>(
+                params.announcementReason.unsignedCharValue);
+            if (params.metadataForNode != nil) {
+                auto & definedValue_0 = request.metadataForNode.Emplace();
+                definedValue_0 = [self asByteSpan:params.metadataForNode];
+            }
+            request.endpoint = params.endpoint.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OtaSoftwareUpdateRequestorCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OtaSoftwareUpdateRequestorCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDefaultOtaProvidersWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeDefaultOtaProvidersID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeDefaultOtaProvidersID)
                                              params:params];
 }
 
@@ -3965,77 +3856,77 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                  attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeDefaultOtaProvidersID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                  attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeDefaultOtaProvidersID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUpdatePossibleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdatePossibleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdatePossibleID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUpdateStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdateStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdateStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUpdateStateProgressWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdateStateProgressID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeUpdateStateProgressID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOtaSoftwareUpdateRequestorID)
-                                        attributeId:@(MTRClusterOtaSoftwareUpdateRequestorAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOtaSoftwareUpdateRequestorID)
+                                        attributeID:@(MTRClusterOtaSoftwareUpdateRequestorAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4058,9 +3949,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveLocaleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeActiveLocaleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeActiveLocaleID)
                                              params:params];
 }
 
@@ -4073,61 +3964,61 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterLocalizationConfigurationID)
-                                  attributeId:@(MTRClusterLocalizationConfigurationAttributeActiveLocaleID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterLocalizationConfigurationID)
+                                  attributeID:@(MTRClusterLocalizationConfigurationAttributeActiveLocaleID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedLocalesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeSupportedLocalesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeSupportedLocalesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLocalizationConfigurationID)
-                                        attributeId:@(MTRClusterLocalizationConfigurationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLocalizationConfigurationID)
+                                        attributeID:@(MTRClusterLocalizationConfigurationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4150,9 +4041,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeHourFormatWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeHourFormatID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeHourFormatID)
                                              params:params];
 }
 
@@ -4165,21 +4056,21 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                  attributeId:@(MTRClusterTimeFormatLocalizationAttributeHourFormatID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                  attributeID:@(MTRClusterTimeFormatLocalizationAttributeHourFormatID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveCalendarTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeActiveCalendarTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeActiveCalendarTypeID)
                                              params:params];
 }
 
@@ -4192,61 +4083,61 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                  attributeId:@(MTRClusterTimeFormatLocalizationAttributeActiveCalendarTypeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                  attributeID:@(MTRClusterTimeFormatLocalizationAttributeActiveCalendarTypeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedCalendarTypesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeSupportedCalendarTypesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeSupportedCalendarTypesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTimeFormatLocalizationID)
-                                        attributeId:@(MTRClusterTimeFormatLocalizationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTimeFormatLocalizationID)
+                                        attributeID:@(MTRClusterTimeFormatLocalizationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4269,9 +4160,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeTemperatureUnitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeTemperatureUnitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeTemperatureUnitID)
                                              params:params];
 }
 
@@ -4284,53 +4175,53 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterUnitLocalizationID)
-                                  attributeId:@(MTRClusterUnitLocalizationAttributeTemperatureUnitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterUnitLocalizationID)
+                                  attributeID:@(MTRClusterUnitLocalizationAttributeTemperatureUnitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUnitLocalizationID)
-                                        attributeId:@(MTRClusterUnitLocalizationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUnitLocalizationID)
+                                        attributeID:@(MTRClusterUnitLocalizationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4353,49 +4244,49 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeSourcesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeSourcesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeSourcesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceConfigurationID)
-                                        attributeId:@(MTRClusterPowerSourceConfigurationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceConfigurationID)
+                                        attributeID:@(MTRClusterPowerSourceConfigurationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4418,289 +4309,289 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOrderWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeOrderID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeOrderID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDescriptionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeDescriptionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeDescriptionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredAssessedInputVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredAssessedInputVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredAssessedInputVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredAssessedInputFrequencyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredAssessedInputFrequencyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredAssessedInputFrequencyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredCurrentTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredCurrentTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredCurrentTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredAssessedCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredAssessedCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredAssessedCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredNominalVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredNominalVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredNominalVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredMaximumCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredMaximumCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredMaximumCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiredPresentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeWiredPresentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeWiredPresentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveWiredFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeActiveWiredFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeActiveWiredFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatPercentRemainingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatPercentRemainingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatPercentRemainingID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatTimeRemainingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatTimeRemainingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatTimeRemainingID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatChargeLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatChargeLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatChargeLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatReplacementNeededWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatReplacementNeededID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatReplacementNeededID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatReplaceabilityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatReplaceabilityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatReplaceabilityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatPresentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatPresentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatPresentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveBatFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeActiveBatFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeActiveBatFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatReplacementDescriptionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatReplacementDescriptionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatReplacementDescriptionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatCommonDesignationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatCommonDesignationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatCommonDesignationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatANSIDesignationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatANSIDesignationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatANSIDesignationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatIECDesignationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatIECDesignationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatIECDesignationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatApprovedChemistryWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatApprovedChemistryID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatApprovedChemistryID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatCapacityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatCapacityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatCapacityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatQuantityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatQuantityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatQuantityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatChargeStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatChargeStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatChargeStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatTimeToFullChargeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatTimeToFullChargeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatTimeToFullChargeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatFunctionalWhileChargingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatFunctionalWhileChargingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatFunctionalWhileChargingID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBatChargingCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeBatChargingCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeBatChargingCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveBatChargeFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeActiveBatChargeFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeActiveBatChargeFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPowerSourceID)
-                                        attributeId:@(MTRClusterPowerSourceAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPowerSourceID)
+                                        attributeID:@(MTRClusterPowerSourceAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4729,27 +4620,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGeneralCommissioningClusterArmFailSafeResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GeneralCommissioning::Commands::ArmFailSafe::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGeneralCommissioningClusterArmFailSafeResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GeneralCommissioning::Commands::ArmFailSafe::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.expiryLengthSeconds = params.expiryLengthSeconds.unsignedShortValue;
-                request.breadcrumb = params.breadcrumb.unsignedLongLongValue;
+            }
+            request.expiryLengthSeconds = params.expiryLengthSeconds.unsignedShortValue;
+            request.breadcrumb = params.breadcrumb.unsignedLongLongValue;
 
-                auto successFn = Callback<GeneralCommissioningClusterArmFailSafeResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GeneralCommissioningClusterArmFailSafeResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -4762,31 +4651,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GeneralCommissioning::Commands::SetRegulatoryConfig::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GeneralCommissioning::Commands::SetRegulatoryConfig::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.newRegulatoryConfig = static_cast<std::remove_reference_t<decltype(request.newRegulatoryConfig)>>(
-                    params.newRegulatoryConfig.unsignedCharValue);
-                request.countryCode = [self asCharSpan:params.countryCode];
-                request.breadcrumb = params.breadcrumb.unsignedLongLongValue;
+            }
+            request.newRegulatoryConfig = static_cast<std::remove_reference_t<decltype(request.newRegulatoryConfig)>>(
+                params.newRegulatoryConfig.unsignedCharValue);
+            request.countryCode = [self asCharSpan:params.countryCode];
+            request.breadcrumb = params.breadcrumb.unsignedLongLongValue;
 
-                auto successFn
-                    = Callback<GeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -4811,36 +4696,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GeneralCommissioning::Commands::CommissioningComplete::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GeneralCommissioning::Commands::CommissioningComplete::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn
-                    = Callback<GeneralCommissioningClusterCommissioningCompleteResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn
+                = Callback<GeneralCommissioningClusterCommissioningCompleteResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GeneralCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBreadcrumbWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeBreadcrumbID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeBreadcrumbID)
                                              params:params];
 }
 
@@ -4853,85 +4735,85 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterGeneralCommissioningID)
-                                  attributeId:@(MTRClusterGeneralCommissioningAttributeBreadcrumbID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterGeneralCommissioningID)
+                                  attributeID:@(MTRClusterGeneralCommissioningAttributeBreadcrumbID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBasicCommissioningInfoWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeBasicCommissioningInfoID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeBasicCommissioningInfoID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRegulatoryConfigWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeRegulatoryConfigID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeRegulatoryConfigID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocationCapabilityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeLocationCapabilityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeLocationCapabilityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportsConcurrentConnectionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeSupportsConcurrentConnectionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeSupportsConcurrentConnectionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralCommissioningID)
-                                        attributeId:@(MTRClusterGeneralCommissioningAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralCommissioningID)
+                                        attributeID:@(MTRClusterGeneralCommissioningAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -4960,40 +4842,38 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterScanNetworksResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::ScanNetworks::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterScanNetworksResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::ScanNetworks::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+                }
+            }
+            if (params != nil) {
+                if (params.ssid != nil) {
+                    auto & definedValue_0 = request.ssid.Emplace();
+                    if (params.ssid == nil) {
+                        definedValue_0.SetNull();
+                    } else {
+                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                        nonNullValue_1 = [self asByteSpan:params.ssid];
                     }
                 }
-                if (params != nil) {
-                    if (params.ssid != nil) {
-                        auto & definedValue_0 = request.ssid.Emplace();
-                        if (params.ssid == nil) {
-                            definedValue_0.SetNull();
-                        } else {
-                            auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                            nonNullValue_1 = [self asByteSpan:params.ssid];
-                        }
-                    }
-                    if (params.breadcrumb != nil) {
-                        auto & definedValue_0 = request.breadcrumb.Emplace();
-                        definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                    }
+                if (params.breadcrumb != nil) {
+                    auto & definedValue_0 = request.breadcrumb.Emplace();
+                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
                 }
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterScanNetworksResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterScanNetworksResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -5006,31 +4886,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.ssid = [self asByteSpan:params.ssid];
-                request.credentials = [self asByteSpan:params.credentials];
-                if (params.breadcrumb != nil) {
-                    auto & definedValue_0 = request.breadcrumb.Emplace();
-                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                }
+            }
+            request.ssid = [self asByteSpan:params.ssid];
+            request.credentials = [self asByteSpan:params.credentials];
+            if (params.breadcrumb != nil) {
+                auto & definedValue_0 = request.breadcrumb.Emplace();
+                definedValue_0 = params.breadcrumb.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -5043,30 +4921,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.operationalDataset = [self asByteSpan:params.operationalDataset];
-                if (params.breadcrumb != nil) {
-                    auto & definedValue_0 = request.breadcrumb.Emplace();
-                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                }
+            }
+            request.operationalDataset = [self asByteSpan:params.operationalDataset];
+            if (params.breadcrumb != nil) {
+                auto & definedValue_0 = request.breadcrumb.Emplace();
+                definedValue_0 = params.breadcrumb.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -5079,30 +4955,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::RemoveNetwork::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::RemoveNetwork::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.networkID = [self asByteSpan:params.networkID];
-                if (params.breadcrumb != nil) {
-                    auto & definedValue_0 = request.breadcrumb.Emplace();
-                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                }
+            }
+            request.networkID = [self asByteSpan:params.networkID];
+            if (params.breadcrumb != nil) {
+                auto & definedValue_0 = request.breadcrumb.Emplace();
+                definedValue_0 = params.breadcrumb.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -5115,30 +4989,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterConnectNetworkResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::ConnectNetwork::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterConnectNetworkResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::ConnectNetwork::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.networkID = [self asByteSpan:params.networkID];
-                if (params.breadcrumb != nil) {
-                    auto & definedValue_0 = request.breadcrumb.Emplace();
-                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                }
+            }
+            request.networkID = [self asByteSpan:params.networkID];
+            if (params.breadcrumb != nil) {
+                auto & definedValue_0 = request.breadcrumb.Emplace();
+                definedValue_0 = params.breadcrumb.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterConnectNetworkResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterConnectNetworkResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -5151,72 +5023,70 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                NetworkCommissioning::Commands::ReorderNetwork::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            NetworkCommissioning::Commands::ReorderNetwork::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.networkID = [self asByteSpan:params.networkID];
-                request.networkIndex = params.networkIndex.unsignedCharValue;
-                if (params.breadcrumb != nil) {
-                    auto & definedValue_0 = request.breadcrumb.Emplace();
-                    definedValue_0 = params.breadcrumb.unsignedLongLongValue;
-                }
+            }
+            request.networkID = [self asByteSpan:params.networkID];
+            request.networkIndex = params.networkIndex.unsignedCharValue;
+            if (params.breadcrumb != nil) {
+                auto & definedValue_0 = request.breadcrumb.Emplace();
+                definedValue_0 = params.breadcrumb.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<NetworkCommissioningClusterNetworkConfigResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::NetworkCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxNetworksWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeMaxNetworksID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeMaxNetworksID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNetworksWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeNetworksID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeNetworksID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeScanMaxTimeSecondsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeScanMaxTimeSecondsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeScanMaxTimeSecondsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeConnectMaxTimeSecondsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeConnectMaxTimeSecondsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeConnectMaxTimeSecondsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInterfaceEnabledWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeInterfaceEnabledID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeInterfaceEnabledID)
                                              params:params];
 }
 
@@ -5229,77 +5099,77 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterNetworkCommissioningID)
-                                  attributeId:@(MTRClusterNetworkCommissioningAttributeInterfaceEnabledID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterNetworkCommissioningID)
+                                  attributeID:@(MTRClusterNetworkCommissioningAttributeInterfaceEnabledID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLastNetworkingStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeLastNetworkingStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeLastNetworkingStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLastNetworkIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeLastNetworkIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeLastNetworkIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLastConnectErrorValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeLastConnectErrorValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeLastConnectErrorValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterNetworkCommissioningID)
-                                        attributeId:@(MTRClusterNetworkCommissioningAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterNetworkCommissioningID)
+                                        attributeID:@(MTRClusterNetworkCommissioningAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -5328,70 +5198,68 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DiagnosticLogs::Commands::RetrieveLogsRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DiagnosticLogs::Commands::RetrieveLogsRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.intent = static_cast<std::remove_reference_t<decltype(request.intent)>>(params.intent.unsignedCharValue);
-                request.requestedProtocol = static_cast<std::remove_reference_t<decltype(request.requestedProtocol)>>(
-                    params.requestedProtocol.unsignedCharValue);
-                request.transferFileDesignator = [self asByteSpan:params.transferFileDesignator];
+            }
+            request.intent = static_cast<std::remove_reference_t<decltype(request.intent)>>(params.intent.unsignedCharValue);
+            request.requestedProtocol = static_cast<std::remove_reference_t<decltype(request.requestedProtocol)>>(
+                params.requestedProtocol.unsignedCharValue);
+            request.transferFileDesignator = [self asByteSpan:params.transferFileDesignator];
 
-                auto successFn = Callback<DiagnosticLogsClusterRetrieveLogsResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DiagnosticLogsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DiagnosticLogsClusterRetrieveLogsResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DiagnosticLogsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDiagnosticLogsID)
-                                        attributeId:@(MTRClusterDiagnosticLogsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDiagnosticLogsID)
+                                        attributeID:@(MTRClusterDiagnosticLogsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDiagnosticLogsID)
-                                        attributeId:@(MTRClusterDiagnosticLogsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDiagnosticLogsID)
+                                        attributeID:@(MTRClusterDiagnosticLogsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDiagnosticLogsID)
-                                        attributeId:@(MTRClusterDiagnosticLogsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDiagnosticLogsID)
+                                        attributeID:@(MTRClusterDiagnosticLogsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDiagnosticLogsID)
-                                        attributeId:@(MTRClusterDiagnosticLogsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDiagnosticLogsID)
+                                        attributeID:@(MTRClusterDiagnosticLogsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDiagnosticLogsID)
-                                        attributeId:@(MTRClusterDiagnosticLogsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDiagnosticLogsID)
+                                        attributeID:@(MTRClusterDiagnosticLogsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -5419,144 +5287,142 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GeneralDiagnostics::Commands::TestEventTrigger::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GeneralDiagnostics::Commands::TestEventTrigger::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.enableKey = [self asByteSpan:params.enableKey];
-                request.eventTrigger = params.eventTrigger.unsignedLongLongValue;
+            }
+            request.enableKey = [self asByteSpan:params.enableKey];
+            request.eventTrigger = params.eventTrigger.unsignedLongLongValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GeneralDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GeneralDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNetworkInterfacesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeNetworkInterfacesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeNetworkInterfacesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRebootCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeRebootCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeRebootCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUpTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeUpTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeUpTimeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTotalOperationalHoursWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeTotalOperationalHoursID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeTotalOperationalHoursID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBootReasonsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeBootReasonsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeBootReasonsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveHardwareFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeActiveHardwareFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeActiveHardwareFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveRadioFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeActiveRadioFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeActiveRadioFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveNetworkFaultsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeActiveNetworkFaultsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeActiveNetworkFaultsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTestEventTriggersEnabledWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeTestEventTriggersEnabledID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeTestEventTriggersEnabledID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGeneralDiagnosticsID)
-                                        attributeId:@(MTRClusterGeneralDiagnosticsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGeneralDiagnosticsID)
+                                        attributeID:@(MTRClusterGeneralDiagnosticsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -5593,102 +5459,100 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                SoftwareDiagnostics::Commands::ResetWatermarks::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            SoftwareDiagnostics::Commands::ResetWatermarks::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::SoftwareDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::SoftwareDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeThreadMetricsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeThreadMetricsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeThreadMetricsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentHeapFreeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapFreeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapFreeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentHeapUsedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapUsedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapUsedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentHeapHighWatermarkWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapHighWatermarkID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeCurrentHeapHighWatermarkID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSoftwareDiagnosticsID)
-                                        attributeId:@(MTRClusterSoftwareDiagnosticsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSoftwareDiagnosticsID)
+                                        attributeID:@(MTRClusterSoftwareDiagnosticsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -5725,575 +5589,573 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ThreadNetworkDiagnostics::Commands::ResetCounts::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ThreadNetworkDiagnostics::Commands::ResetCounts::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ThreadNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ThreadNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeChannelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeChannelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeChannelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRoutingRoleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRoutingRoleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRoutingRoleID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNetworkNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeNetworkNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeNetworkNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePanIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributePanIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributePanIdID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeExtendedPanIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeExtendedPanIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeExtendedPanIdID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeshLocalPrefixWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeMeshLocalPrefixID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeMeshLocalPrefixID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOverrunCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeOverrunCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeOverrunCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNeighborTableListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeNeighborTableListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeNeighborTableListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRouteTableListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRouteTableListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRouteTableListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePartitionIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributePartitionIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributePartitionIdID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWeightingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeWeightingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeWeightingID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDataVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeDataVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeDataVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStableDataVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeStableDataVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeStableDataVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLeaderRouterIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeLeaderRouterIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeLeaderRouterIdID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDetachedRoleCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeDetachedRoleCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeDetachedRoleCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeChildRoleCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeChildRoleCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeChildRoleCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRouterRoleCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRouterRoleCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRouterRoleCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLeaderRoleCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeLeaderRoleCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeLeaderRoleCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttachAttemptCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeAttachAttemptCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeAttachAttemptCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePartitionIdChangeCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributePartitionIdChangeCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributePartitionIdChangeCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBetterPartitionAttachAttemptCountWithParams:(MTRReadParams * _Nullable)params
 {
     return
-        [self.device readAttributeWithEndpointId:@(_endpoint)
-                                       clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                     attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeBetterPartitionAttachAttemptCountID)
+        [self.device readAttributeWithEndpointID:@(_endpoint)
+                                       clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                     attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeBetterPartitionAttachAttemptCountID)
                                           params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeParentChangeCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeParentChangeCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeParentChangeCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxTotalCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxTotalCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxTotalCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxUnicastCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxUnicastCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxUnicastCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxBroadcastCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBroadcastCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBroadcastCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxAckRequestedCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxAckRequestedCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxAckRequestedCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxAckedCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxAckedCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxAckedCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxNoAckRequestedCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxNoAckRequestedCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxNoAckRequestedCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxDataCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDataCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDataCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxDataPollCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDataPollCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDataPollCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxBeaconCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBeaconCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBeaconCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxBeaconRequestCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBeaconRequestCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxBeaconRequestCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxOtherCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxOtherCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxOtherCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxRetryCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxRetryCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxRetryCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxDirectMaxRetryExpiryCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDirectMaxRetryExpiryCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxDirectMaxRetryExpiryCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxIndirectMaxRetryExpiryCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxIndirectMaxRetryExpiryCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxIndirectMaxRetryExpiryCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxErrCcaCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrCcaCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrCcaCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxErrAbortCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrAbortCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrAbortCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxErrBusyChannelCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrBusyChannelCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeTxErrBusyChannelCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxTotalCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxTotalCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxTotalCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxUnicastCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxUnicastCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxUnicastCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxBroadcastCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBroadcastCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBroadcastCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxDataCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDataCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDataCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxDataPollCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDataPollCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDataPollCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxBeaconCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBeaconCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBeaconCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxBeaconRequestCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBeaconRequestCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxBeaconRequestCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxOtherCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxOtherCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxOtherCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxAddressFilteredCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxAddressFilteredCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxAddressFilteredCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxDestAddrFilteredCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDestAddrFilteredCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDestAddrFilteredCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxDuplicatedCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDuplicatedCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxDuplicatedCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrNoFrameCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrNoFrameCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrNoFrameCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrUnknownNeighborCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrUnknownNeighborCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrUnknownNeighborCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrInvalidSrcAddrCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrInvalidSrcAddrCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrInvalidSrcAddrCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrSecCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrSecCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrSecCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrFcsCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrFcsCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrFcsCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRxErrOtherCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrOtherCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeRxErrOtherCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveTimestampWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeActiveTimestampID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeActiveTimestampID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePendingTimestampWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributePendingTimestampID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributePendingTimestampID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeDelayID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSecurityPolicyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeSecurityPolicyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeSecurityPolicyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeChannelPage0MaskWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeChannelPage0MaskID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeChannelPage0MaskID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOperationalDatasetComponentsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeOperationalDatasetComponentsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeOperationalDatasetComponentsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveNetworkFaultsListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeActiveNetworkFaultsListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeActiveNetworkFaultsListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThreadNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterThreadNetworkDiagnosticsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThreadNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterThreadNetworkDiagnosticsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -6330,174 +6192,172 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WiFiNetworkDiagnostics::Commands::ResetCounts::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WiFiNetworkDiagnostics::Commands::ResetCounts::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WiFiNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WiFiNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBssidWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeBssidID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeBssidID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSecurityTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeSecurityTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeSecurityTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWiFiVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeWiFiVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeWiFiVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeChannelNumberWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeChannelNumberID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeChannelNumberID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRssiWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeRssiID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeRssiID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBeaconLostCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeBeaconLostCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeBeaconLostCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBeaconRxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeBeaconRxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeBeaconRxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketMulticastRxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketMulticastRxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketMulticastRxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketMulticastTxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketMulticastTxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketMulticastTxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketUnicastRxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketUnicastRxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketUnicastRxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketUnicastTxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketUnicastTxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributePacketUnicastTxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentMaxRateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeCurrentMaxRateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeCurrentMaxRateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOverrunCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeOverrunCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeOverrunCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWiFiNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterWiFiNetworkDiagnosticsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWiFiNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterWiFiNetworkDiagnosticsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -6534,142 +6394,140 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                EthernetNetworkDiagnostics::Commands::ResetCounts::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            EthernetNetworkDiagnostics::Commands::ResetCounts::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::EthernetNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::EthernetNetworkDiagnosticsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePHYRateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributePHYRateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributePHYRateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFullDuplexWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeFullDuplexID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeFullDuplexID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketRxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributePacketRxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributePacketRxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePacketTxCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributePacketTxCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributePacketTxCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTxErrCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeTxErrCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeTxErrCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCollisionCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeCollisionCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeCollisionCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOverrunCountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeOverrunCountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeOverrunCountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCarrierDetectWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeCarrierDetectID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeCarrierDetectID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTimeSinceResetWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeTimeSinceResetID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeTimeSinceResetID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterEthernetNetworkDiagnosticsID)
-                                        attributeId:@(MTRClusterEthernetNetworkDiagnosticsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterEthernetNetworkDiagnosticsID)
+                                        attributeID:@(MTRClusterEthernetNetworkDiagnosticsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -6692,33 +6550,33 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeVendorNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeVendorNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeVendorIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeVendorIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeProductNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeProductNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNodeLabelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeNodeLabelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeNodeLabelID)
                                              params:params];
 }
 
@@ -6731,141 +6589,141 @@
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                  attributeId:@(MTRClusterBridgedDeviceBasicAttributeNodeLabelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                  attributeID:@(MTRClusterBridgedDeviceBasicAttributeNodeLabelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHardwareVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeHardwareVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeHardwareVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHardwareVersionStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeHardwareVersionStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeHardwareVersionStringID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSoftwareVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeSoftwareVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeSoftwareVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSoftwareVersionStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeSoftwareVersionStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeSoftwareVersionStringID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeManufacturingDateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeManufacturingDateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeManufacturingDateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePartNumberWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributePartNumberID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributePartNumberID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductURLWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeProductURLID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeProductURLID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductLabelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeProductLabelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeProductLabelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSerialNumberWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeSerialNumberID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeSerialNumberID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReachableWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeReachableID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeReachableID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUniqueIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeUniqueIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeUniqueIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBridgedDeviceBasicID)
-                                        attributeId:@(MTRClusterBridgedDeviceBasicAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBridgedDeviceBasicID)
+                                        attributeID:@(MTRClusterBridgedDeviceBasicAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -6888,65 +6746,65 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfPositionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeNumberOfPositionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeNumberOfPositionsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeCurrentPositionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeCurrentPositionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMultiPressMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeMultiPressMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeMultiPressMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterSwitchID)
-                                        attributeId:@(MTRClusterSwitchAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterSwitchID)
+                                        attributeID:@(MTRClusterSwitchAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -6974,37 +6832,35 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AdministratorCommissioning::Commands::OpenCommissioningWindow::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AdministratorCommissioning::Commands::OpenCommissioningWindow::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.commissioningTimeout = params.commissioningTimeout.unsignedShortValue;
-                request.PAKEVerifier = [self asByteSpan:params.pakeVerifier];
-                request.discriminator = params.discriminator.unsignedShortValue;
-                request.iterations = params.iterations.unsignedIntValue;
-                request.salt = [self asByteSpan:params.salt];
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.commissioningTimeout = params.commissioningTimeout.unsignedShortValue;
+            request.PAKEVerifier = [self asByteSpan:params.pakeVerifier];
+            request.discriminator = params.discriminator.unsignedShortValue;
+            request.iterations = params.iterations.unsignedIntValue;
+            request.salt = [self asByteSpan:params.salt];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7016,33 +6872,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.commissioningTimeout = params.commissioningTimeout.unsignedShortValue;
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.commissioningTimeout = params.commissioningTimeout.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7063,97 +6917,95 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AdministratorCommissioning::Commands::RevokeCommissioning::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AdministratorCommissioning::Commands::RevokeCommissioning::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AdministratorCommissioningCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWindowStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeWindowStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeWindowStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAdminFabricIndexWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeAdminFabricIndexID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeAdminFabricIndexID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAdminVendorIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeAdminVendorIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeAdminVendorIdID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAdministratorCommissioningID)
-                                        attributeId:@(MTRClusterAdministratorCommissioningAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAdministratorCommissioningID)
+                                        attributeID:@(MTRClusterAdministratorCommissioningAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -7182,26 +7034,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterAttestationResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::AttestationRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterAttestationResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::AttestationRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.attestationNonce = [self asByteSpan:params.attestationNonce];
+            }
+            request.attestationNonce = [self asByteSpan:params.attestationNonce];
 
-                auto successFn = Callback<OperationalCredentialsClusterAttestationResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterAttestationResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7214,28 +7064,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterCertificateChainResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::CertificateChainRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterCertificateChainResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::CertificateChainRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.certificateType = params.certificateType.unsignedCharValue;
+            }
+            request.certificateType = params.certificateType.unsignedCharValue;
 
-                auto successFn
-                    = Callback<OperationalCredentialsClusterCertificateChainResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterCertificateChainResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7248,30 +7094,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterCSRResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::CSRRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterCSRResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::CSRRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.CSRNonce = [self asByteSpan:params.csrNonce];
-                if (params.isForUpdateNOC != nil) {
-                    auto & definedValue_0 = request.isForUpdateNOC.Emplace();
-                    definedValue_0 = params.isForUpdateNOC.boolValue;
-                }
+            }
+            request.CSRNonce = [self asByteSpan:params.csrNonce];
+            if (params.isForUpdateNOC != nil) {
+                auto & definedValue_0 = request.isForUpdateNOC.Emplace();
+                definedValue_0 = params.isForUpdateNOC.boolValue;
+            }
 
-                auto successFn = Callback<OperationalCredentialsClusterCSRResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterCSRResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7284,34 +7128,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::AddNOC::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::AddNOC::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.NOCValue = [self asByteSpan:params.nocValue];
-                if (params.icacValue != nil) {
-                    auto & definedValue_0 = request.ICACValue.Emplace();
-                    definedValue_0 = [self asByteSpan:params.icacValue];
-                }
-                request.IPKValue = [self asByteSpan:params.ipkValue];
-                request.caseAdminSubject = params.caseAdminSubject.unsignedLongLongValue;
-                request.adminVendorId = static_cast<std::remove_reference_t<decltype(request.adminVendorId)>>(
-                    params.adminVendorId.unsignedShortValue);
+            }
+            request.NOCValue = [self asByteSpan:params.nocValue];
+            if (params.icacValue != nil) {
+                auto & definedValue_0 = request.ICACValue.Emplace();
+                definedValue_0 = [self asByteSpan:params.icacValue];
+            }
+            request.IPKValue = [self asByteSpan:params.ipkValue];
+            request.caseAdminSubject = params.caseAdminSubject.unsignedLongLongValue;
+            request.adminVendorId
+                = static_cast<std::remove_reference_t<decltype(request.adminVendorId)>>(params.adminVendorId.unsignedShortValue);
 
-                auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7324,30 +7166,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::UpdateNOC::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::UpdateNOC::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.NOCValue = [self asByteSpan:params.nocValue];
-                if (params.icacValue != nil) {
-                    auto & definedValue_0 = request.ICACValue.Emplace();
-                    definedValue_0 = [self asByteSpan:params.icacValue];
-                }
+            }
+            request.NOCValue = [self asByteSpan:params.nocValue];
+            if (params.icacValue != nil) {
+                auto & definedValue_0 = request.ICACValue.Emplace();
+                definedValue_0 = [self asByteSpan:params.icacValue];
+            }
 
-                auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7360,26 +7200,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::UpdateFabricLabel::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::UpdateFabricLabel::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.label = [self asCharSpan:params.label];
+            }
+            request.label = [self asCharSpan:params.label];
 
-                auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7392,26 +7230,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::RemoveFabric::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTROperationalCredentialsClusterNOCResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::RemoveFabric::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.fabricIndex = params.fabricIndex.unsignedCharValue;
+            }
+            request.fabricIndex = params.fabricIndex.unsignedCharValue;
 
-                auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<OperationalCredentialsClusterNOCResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7423,119 +7259,117 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                OperationalCredentials::Commands::AddTrustedRootCertificate::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            OperationalCredentials::Commands::AddTrustedRootCertificate::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.rootCertificate = [self asByteSpan:params.rootCertificate];
+            }
+            request.rootCertificate = [self asByteSpan:params.rootCertificate];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::OperationalCredentialsCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNOCsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeNOCsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeNOCsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFabricsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeFabricsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeFabricsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedFabricsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeSupportedFabricsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeSupportedFabricsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCommissionedFabricsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeCommissionedFabricsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeCommissionedFabricsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTrustedRootCertificatesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeTrustedRootCertificatesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeTrustedRootCertificatesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentFabricIndexWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeCurrentFabricIndexID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeCurrentFabricIndexID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOperationalCredentialsID)
-                                        attributeId:@(MTRClusterOperationalCredentialsAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOperationalCredentialsID)
+                                        attributeID:@(MTRClusterOperationalCredentialsAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -7563,69 +7397,67 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GroupKeyManagement::Commands::KeySetWrite::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GroupKeyManagement::Commands::KeySetWrite::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupKeySet.groupKeySetID = params.groupKeySet.groupKeySetID.unsignedShortValue;
-                request.groupKeySet.groupKeySecurityPolicy
-                    = static_cast<std::remove_reference_t<decltype(request.groupKeySet.groupKeySecurityPolicy)>>(
-                        params.groupKeySet.groupKeySecurityPolicy.unsignedCharValue);
-                if (params.groupKeySet.epochKey0 == nil) {
-                    request.groupKeySet.epochKey0.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochKey0.SetNonNull();
-                    nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey0];
-                }
-                if (params.groupKeySet.epochStartTime0 == nil) {
-                    request.groupKeySet.epochStartTime0.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochStartTime0.SetNonNull();
-                    nonNullValue_1 = params.groupKeySet.epochStartTime0.unsignedLongLongValue;
-                }
-                if (params.groupKeySet.epochKey1 == nil) {
-                    request.groupKeySet.epochKey1.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochKey1.SetNonNull();
-                    nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey1];
-                }
-                if (params.groupKeySet.epochStartTime1 == nil) {
-                    request.groupKeySet.epochStartTime1.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochStartTime1.SetNonNull();
-                    nonNullValue_1 = params.groupKeySet.epochStartTime1.unsignedLongLongValue;
-                }
-                if (params.groupKeySet.epochKey2 == nil) {
-                    request.groupKeySet.epochKey2.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochKey2.SetNonNull();
-                    nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey2];
-                }
-                if (params.groupKeySet.epochStartTime2 == nil) {
-                    request.groupKeySet.epochStartTime2.SetNull();
-                } else {
-                    auto & nonNullValue_1 = request.groupKeySet.epochStartTime2.SetNonNull();
-                    nonNullValue_1 = params.groupKeySet.epochStartTime2.unsignedLongLongValue;
-                }
+            }
+            request.groupKeySet.groupKeySetID = params.groupKeySet.groupKeySetID.unsignedShortValue;
+            request.groupKeySet.groupKeySecurityPolicy
+                = static_cast<std::remove_reference_t<decltype(request.groupKeySet.groupKeySecurityPolicy)>>(
+                    params.groupKeySet.groupKeySecurityPolicy.unsignedCharValue);
+            if (params.groupKeySet.epochKey0 == nil) {
+                request.groupKeySet.epochKey0.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochKey0.SetNonNull();
+                nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey0];
+            }
+            if (params.groupKeySet.epochStartTime0 == nil) {
+                request.groupKeySet.epochStartTime0.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochStartTime0.SetNonNull();
+                nonNullValue_1 = params.groupKeySet.epochStartTime0.unsignedLongLongValue;
+            }
+            if (params.groupKeySet.epochKey1 == nil) {
+                request.groupKeySet.epochKey1.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochKey1.SetNonNull();
+                nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey1];
+            }
+            if (params.groupKeySet.epochStartTime1 == nil) {
+                request.groupKeySet.epochStartTime1.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochStartTime1.SetNonNull();
+                nonNullValue_1 = params.groupKeySet.epochStartTime1.unsignedLongLongValue;
+            }
+            if (params.groupKeySet.epochKey2 == nil) {
+                request.groupKeySet.epochKey2.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochKey2.SetNonNull();
+                nonNullValue_1 = [self asByteSpan:params.groupKeySet.epochKey2];
+            }
+            if (params.groupKeySet.epochStartTime2 == nil) {
+                request.groupKeySet.epochStartTime2.SetNull();
+            } else {
+                auto & nonNullValue_1 = request.groupKeySet.epochStartTime2.SetNonNull();
+                nonNullValue_1 = params.groupKeySet.epochStartTime2.unsignedLongLongValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7638,26 +7470,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupKeyManagementClusterKeySetReadResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GroupKeyManagement::Commands::KeySetRead::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupKeyManagementClusterKeySetReadResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GroupKeyManagement::Commands::KeySetRead::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupKeySetID = params.groupKeySetID.unsignedShortValue;
+            }
+            request.groupKeySetID = params.groupKeySetID.unsignedShortValue;
 
-                auto successFn = Callback<GroupKeyManagementClusterKeySetReadResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupKeyManagementClusterKeySetReadResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7669,30 +7499,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GroupKeyManagement::Commands::KeySetRemove::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GroupKeyManagement::Commands::KeySetRemove::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.groupKeySetID = params.groupKeySetID.unsignedShortValue;
+            }
+            request.groupKeySetID = params.groupKeySetID.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -7705,58 +7533,54 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                GroupKeyManagement::Commands::KeySetReadAllIndices::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            GroupKeyManagement::Commands::KeySetReadAllIndices::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.groupKeySetIDs)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.groupKeySetIDs.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.groupKeySetIDs.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.groupKeySetIDs)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.groupKeySetIDs.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.groupKeySetIDs.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.groupKeySetIDs.count; ++i_0) {
+                        if (![params.groupKeySetIDs[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.groupKeySetIDs.count; ++i_0) {
-                            if (![params.groupKeySetIDs[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.groupKeySetIDs[i_0];
-                            listHolder_0->mList[i_0] = element_0.unsignedShortValue;
-                        }
-                        request.groupKeySetIDs = ListType_0(listHolder_0->mList, params.groupKeySetIDs.count);
-                    } else {
-                        request.groupKeySetIDs = ListType_0();
+                        auto element_0 = (NSNumber *) params.groupKeySetIDs[i_0];
+                        listHolder_0->mList[i_0] = element_0.unsignedShortValue;
                     }
+                    request.groupKeySetIDs = ListType_0(listHolder_0->mList, params.groupKeySetIDs.count);
+                } else {
+                    request.groupKeySetIDs = ListType_0();
                 }
+            }
 
-                auto successFn
-                    = Callback<GroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<GroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::GroupKeyManagementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGroupKeyMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeGroupKeyMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeGroupKeyMapID)
                                              params:params];
 }
 
@@ -7769,77 +7593,77 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterGroupKeyManagementID)
-                                  attributeId:@(MTRClusterGroupKeyManagementAttributeGroupKeyMapID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterGroupKeyManagementID)
+                                  attributeID:@(MTRClusterGroupKeyManagementAttributeGroupKeyMapID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGroupTableWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeGroupTableID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeGroupTableID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxGroupsPerFabricWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeMaxGroupsPerFabricID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeMaxGroupsPerFabricID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxGroupKeysPerFabricWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeMaxGroupKeysPerFabricID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeMaxGroupKeysPerFabricID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterGroupKeyManagementID)
-                                        attributeId:@(MTRClusterGroupKeyManagementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterGroupKeyManagementID)
+                                        attributeID:@(MTRClusterGroupKeyManagementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -7862,49 +7686,49 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeLabelListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeLabelListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeLabelListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFixedLabelID)
-                                        attributeId:@(MTRClusterFixedLabelAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFixedLabelID)
+                                        attributeID:@(MTRClusterFixedLabelAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -7927,9 +7751,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeLabelListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeLabelListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeLabelListID)
                                              params:params];
 }
 
@@ -7942,53 +7766,53 @@
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterUserLabelID)
-                                  attributeId:@(MTRClusterUserLabelAttributeLabelListID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterUserLabelID)
+                                  attributeID:@(MTRClusterUserLabelAttributeLabelListID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterUserLabelID)
-                                        attributeId:@(MTRClusterUserLabelAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterUserLabelID)
+                                        attributeID:@(MTRClusterUserLabelAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -8011,49 +7835,49 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeStateValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeStateValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeStateValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBooleanStateID)
-                                        attributeId:@(MTRClusterBooleanStateAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBooleanStateID)
+                                        attributeID:@(MTRClusterBooleanStateAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -8081,71 +7905,69 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ModeSelect::Commands::ChangeToMode::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ModeSelect::Commands::ChangeToMode::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.newMode = params.newMode.unsignedCharValue;
+            }
+            request.newMode = params.newMode.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ModeSelectCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ModeSelectCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDescriptionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeDescriptionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeDescriptionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStandardNamespaceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeStandardNamespaceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeStandardNamespaceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedModesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeSupportedModesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeSupportedModesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeCurrentModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeCurrentModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartUpModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeStartUpModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeStartUpModeID)
                                              params:params];
 }
 
@@ -8158,21 +7980,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterModeSelectID)
-                                  attributeId:@(MTRClusterModeSelectAttributeStartUpModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterModeSelectID)
+                                  attributeID:@(MTRClusterModeSelectAttributeStartUpModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOnModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeOnModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeOnModeID)
                                              params:params];
 }
 
@@ -8185,53 +8007,53 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterModeSelectID)
-                                  attributeId:@(MTRClusterModeSelectAttributeOnModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterModeSelectID)
+                                  attributeID:@(MTRClusterModeSelectAttributeOnModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterModeSelectID)
-                                        attributeId:@(MTRClusterModeSelectAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterModeSelectID)
+                                        attributeID:@(MTRClusterModeSelectAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -8259,38 +8081,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::LockDoor::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::LockDoor::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            if (params != nil) {
+                if (params.pinCode != nil) {
+                    auto & definedValue_0 = request.pinCode.Emplace();
+                    definedValue_0 = [self asByteSpan:params.pinCode];
                 }
-                if (params != nil) {
-                    if (params.pinCode != nil) {
-                        auto & definedValue_0 = request.pinCode.Emplace();
-                        definedValue_0 = [self asByteSpan:params.pinCode];
-                    }
-                }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8302,38 +8122,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::UnlockDoor::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::UnlockDoor::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            if (params != nil) {
+                if (params.pinCode != nil) {
+                    auto & definedValue_0 = request.pinCode.Emplace();
+                    definedValue_0 = [self asByteSpan:params.pinCode];
                 }
-                if (params != nil) {
-                    if (params.pinCode != nil) {
-                        auto & definedValue_0 = request.pinCode.Emplace();
-                        definedValue_0 = [self asByteSpan:params.pinCode];
-                    }
-                }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8345,37 +8163,35 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::UnlockWithTimeout::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::UnlockWithTimeout::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.timeout = params.timeout.unsignedShortValue;
-                if (params.pinCode != nil) {
-                    auto & definedValue_0 = request.pinCode.Emplace();
-                    definedValue_0 = [self asByteSpan:params.pinCode];
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.timeout = params.timeout.unsignedShortValue;
+            if (params.pinCode != nil) {
+                auto & definedValue_0 = request.pinCode.Emplace();
+                definedValue_0 = [self asByteSpan:params.pinCode];
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8387,37 +8203,34 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::SetWeekDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::SetWeekDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
-                request.daysMask
-                    = static_cast<std::remove_reference_t<decltype(request.daysMask)>>(params.daysMask.unsignedCharValue);
-                request.startHour = params.startHour.unsignedCharValue;
-                request.startMinute = params.startMinute.unsignedCharValue;
-                request.endHour = params.endHour.unsignedCharValue;
-                request.endMinute = params.endMinute.unsignedCharValue;
+            }
+            request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
+            request.daysMask = static_cast<std::remove_reference_t<decltype(request.daysMask)>>(params.daysMask.unsignedCharValue);
+            request.startHour = params.startHour.unsignedCharValue;
+            request.startMinute = params.startMinute.unsignedCharValue;
+            request.endHour = params.endHour.unsignedCharValue;
+            request.endMinute = params.endMinute.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8430,27 +8243,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterGetWeekDayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::GetWeekDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterGetWeekDayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::GetWeekDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<DoorLockClusterGetWeekDayScheduleResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterGetWeekDayScheduleResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8462,31 +8273,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::ClearWeekDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::ClearWeekDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            request.weekDayIndex = params.weekDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8498,33 +8307,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::SetYearDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::SetYearDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
-                request.localStartTime = params.localStartTime.unsignedIntValue;
-                request.localEndTime = params.localEndTime.unsignedIntValue;
+            }
+            request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
+            request.localStartTime = params.localStartTime.unsignedIntValue;
+            request.localEndTime = params.localEndTime.unsignedIntValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8537,27 +8344,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterGetYearDayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::GetYearDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterGetYearDayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::GetYearDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<DoorLockClusterGetYearDayScheduleResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterGetYearDayScheduleResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8569,31 +8374,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::ClearYearDaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::ClearYearDaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            request.yearDayIndex = params.yearDayIndex.unsignedCharValue;
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8605,34 +8408,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::SetHolidaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::SetHolidaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.holidayIndex = params.holidayIndex.unsignedCharValue;
-                request.localStartTime = params.localStartTime.unsignedIntValue;
-                request.localEndTime = params.localEndTime.unsignedIntValue;
-                request.operatingMode
-                    = static_cast<std::remove_reference_t<decltype(request.operatingMode)>>(params.operatingMode.unsignedCharValue);
+            }
+            request.holidayIndex = params.holidayIndex.unsignedCharValue;
+            request.localStartTime = params.localStartTime.unsignedIntValue;
+            request.localEndTime = params.localEndTime.unsignedIntValue;
+            request.operatingMode
+                = static_cast<std::remove_reference_t<decltype(request.operatingMode)>>(params.operatingMode.unsignedCharValue);
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8645,26 +8446,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterGetHolidayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::GetHolidaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterGetHolidayScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::GetHolidaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.holidayIndex = params.holidayIndex.unsignedCharValue;
+            }
+            request.holidayIndex = params.holidayIndex.unsignedCharValue;
 
-                auto successFn = Callback<DoorLockClusterGetHolidayScheduleResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterGetHolidayScheduleResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8676,30 +8475,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::ClearHolidaySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::ClearHolidaySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.holidayIndex = params.holidayIndex.unsignedCharValue;
+            }
+            request.holidayIndex = params.holidayIndex.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8711,68 +8508,65 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::SetUser::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::SetUser::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.operationType
-                    = static_cast<std::remove_reference_t<decltype(request.operationType)>>(params.operationType.unsignedCharValue);
-                request.userIndex = params.userIndex.unsignedShortValue;
-                if (params.userName == nil) {
-                    request.userName.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userName.SetNonNull();
-                    nonNullValue_0 = [self asCharSpan:params.userName];
-                }
-                if (params.userUniqueId == nil) {
-                    request.userUniqueId.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userUniqueId.SetNonNull();
-                    nonNullValue_0 = params.userUniqueId.unsignedIntValue;
-                }
-                if (params.userStatus == nil) {
-                    request.userStatus.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userStatus.SetNonNull();
-                    nonNullValue_0
-                        = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userStatus.unsignedCharValue);
-                }
-                if (params.userType == nil) {
-                    request.userType.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userType.SetNonNull();
-                    nonNullValue_0
-                        = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userType.unsignedCharValue);
-                }
-                if (params.credentialRule == nil) {
-                    request.credentialRule.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.credentialRule.SetNonNull();
-                    nonNullValue_0
-                        = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.credentialRule.unsignedCharValue);
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.operationType
+                = static_cast<std::remove_reference_t<decltype(request.operationType)>>(params.operationType.unsignedCharValue);
+            request.userIndex = params.userIndex.unsignedShortValue;
+            if (params.userName == nil) {
+                request.userName.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userName.SetNonNull();
+                nonNullValue_0 = [self asCharSpan:params.userName];
+            }
+            if (params.userUniqueId == nil) {
+                request.userUniqueId.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userUniqueId.SetNonNull();
+                nonNullValue_0 = params.userUniqueId.unsignedIntValue;
+            }
+            if (params.userStatus == nil) {
+                request.userStatus.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userStatus.SetNonNull();
+                nonNullValue_0
+                    = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userStatus.unsignedCharValue);
+            }
+            if (params.userType == nil) {
+                request.userType.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userType.SetNonNull();
+                nonNullValue_0 = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userType.unsignedCharValue);
+            }
+            if (params.credentialRule == nil) {
+                request.credentialRule.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.credentialRule.SetNonNull();
+                nonNullValue_0
+                    = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.credentialRule.unsignedCharValue);
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8785,26 +8579,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterGetUserResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::GetUser::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterGetUserResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::GetUser::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<DoorLockClusterGetUserResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterGetUserResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8816,33 +8608,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::ClearUser::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::ClearUser::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.userIndex = params.userIndex.unsignedShortValue;
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.userIndex = params.userIndex.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8855,55 +8645,51 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterSetCredentialResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::SetCredential::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterSetCredentialResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::SetCredential::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.operationType
-                    = static_cast<std::remove_reference_t<decltype(request.operationType)>>(params.operationType.unsignedCharValue);
-                request.credential.credentialType
-                    = static_cast<std::remove_reference_t<decltype(request.credential.credentialType)>>(
-                        params.credential.credentialType.unsignedCharValue);
-                request.credential.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
-                request.credentialData = [self asByteSpan:params.credentialData];
-                if (params.userIndex == nil) {
-                    request.userIndex.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userIndex.SetNonNull();
-                    nonNullValue_0 = params.userIndex.unsignedShortValue;
-                }
-                if (params.userStatus == nil) {
-                    request.userStatus.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userStatus.SetNonNull();
-                    nonNullValue_0
-                        = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userStatus.unsignedCharValue);
-                }
-                if (params.userType == nil) {
-                    request.userType.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.userType.SetNonNull();
-                    nonNullValue_0
-                        = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userType.unsignedCharValue);
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.operationType
+                = static_cast<std::remove_reference_t<decltype(request.operationType)>>(params.operationType.unsignedCharValue);
+            request.credential.credentialType = static_cast<std::remove_reference_t<decltype(request.credential.credentialType)>>(
+                params.credential.credentialType.unsignedCharValue);
+            request.credential.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
+            request.credentialData = [self asByteSpan:params.credentialData];
+            if (params.userIndex == nil) {
+                request.userIndex.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userIndex.SetNonNull();
+                nonNullValue_0 = params.userIndex.unsignedShortValue;
+            }
+            if (params.userStatus == nil) {
+                request.userStatus.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userStatus.SetNonNull();
+                nonNullValue_0
+                    = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userStatus.unsignedCharValue);
+            }
+            if (params.userType == nil) {
+                request.userType.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.userType.SetNonNull();
+                nonNullValue_0 = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(params.userType.unsignedCharValue);
+            }
 
-                auto successFn = Callback<DoorLockClusterSetCredentialResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterSetCredentialResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8916,29 +8702,26 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRDoorLockClusterGetCredentialStatusResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::GetCredentialStatus::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRDoorLockClusterGetCredentialStatusResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::GetCredentialStatus::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.credential.credentialType
-                    = static_cast<std::remove_reference_t<decltype(request.credential.credentialType)>>(
-                        params.credential.credentialType.unsignedCharValue);
-                request.credential.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
+            }
+            request.credential.credentialType = static_cast<std::remove_reference_t<decltype(request.credential.credentialType)>>(
+                params.credential.credentialType.unsignedCharValue);
+            request.credential.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
 
-                auto successFn = Callback<DoorLockClusterGetCredentialStatusResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<DoorLockClusterGetCredentialStatusResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -8950,81 +8733,79 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                DoorLock::Commands::ClearCredential::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            DoorLock::Commands::ClearCredential::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                if (params.credential == nil) {
-                    request.credential.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.credential.SetNonNull();
-                    nonNullValue_0.credentialType = static_cast<std::remove_reference_t<decltype(nonNullValue_0.credentialType)>>(
-                        params.credential.credentialType.unsignedCharValue);
-                    nonNullValue_0.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            if (params.credential == nil) {
+                request.credential.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.credential.SetNonNull();
+                nonNullValue_0.credentialType = static_cast<std::remove_reference_t<decltype(nonNullValue_0.credentialType)>>(
+                    params.credential.credentialType.unsignedCharValue);
+                nonNullValue_0.credentialIndex = params.credential.credentialIndex.unsignedShortValue;
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::DoorLockCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLockStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeLockStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeLockStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLockTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeLockTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeLockTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActuatorEnabledWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeActuatorEnabledID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeActuatorEnabledID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDoorStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeDoorStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeDoorStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDoorOpenEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeDoorOpenEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeDoorOpenEventsID)
                                              params:params];
 }
 
@@ -9037,21 +8818,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeDoorOpenEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeDoorOpenEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDoorClosedEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeDoorClosedEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeDoorClosedEventsID)
                                              params:params];
 }
 
@@ -9064,21 +8845,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeDoorClosedEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeDoorClosedEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOpenPeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeOpenPeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeOpenPeriodID)
                                              params:params];
 }
 
@@ -9091,117 +8872,117 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeOpenPeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeOpenPeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfTotalUsersSupportedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfTotalUsersSupportedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfTotalUsersSupportedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfPINUsersSupportedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfPINUsersSupportedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfPINUsersSupportedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfRFIDUsersSupportedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfRFIDUsersSupportedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfRFIDUsersSupportedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfWeekDaySchedulesSupportedPerUserWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfWeekDaySchedulesSupportedPerUserID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfWeekDaySchedulesSupportedPerUserID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfYearDaySchedulesSupportedPerUserWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfYearDaySchedulesSupportedPerUserID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfYearDaySchedulesSupportedPerUserID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfHolidaySchedulesSupportedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfHolidaySchedulesSupportedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfHolidaySchedulesSupportedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxPINCodeLengthWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeMaxPINCodeLengthID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeMaxPINCodeLengthID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinPINCodeLengthWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeMinPINCodeLengthID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeMinPINCodeLengthID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxRFIDCodeLengthWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeMaxRFIDCodeLengthID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeMaxRFIDCodeLengthID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinRFIDCodeLengthWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeMinRFIDCodeLengthID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeMinRFIDCodeLengthID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCredentialRulesSupportWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeCredentialRulesSupportID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeCredentialRulesSupportID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfCredentialsSupportedPerUserWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeNumberOfCredentialsSupportedPerUserID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeNumberOfCredentialsSupportedPerUserID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLanguageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeLanguageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeLanguageID)
                                              params:params];
 }
 
@@ -9214,21 +8995,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeLanguageID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeLanguageID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLEDSettingsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeLEDSettingsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeLEDSettingsID)
                                              params:params];
 }
 
@@ -9241,21 +9022,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeLEDSettingsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeLEDSettingsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAutoRelockTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeAutoRelockTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeAutoRelockTimeID)
                                              params:params];
 }
 
@@ -9268,21 +9049,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeAutoRelockTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeAutoRelockTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSoundVolumeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeSoundVolumeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeSoundVolumeID)
                                              params:params];
 }
 
@@ -9295,21 +9076,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeSoundVolumeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeSoundVolumeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOperatingModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeOperatingModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeOperatingModeID)
                                              params:params];
 }
 
@@ -9322,37 +9103,37 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeOperatingModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeOperatingModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedOperatingModesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeSupportedOperatingModesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeSupportedOperatingModesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDefaultConfigurationRegisterWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeDefaultConfigurationRegisterID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeDefaultConfigurationRegisterID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnableLocalProgrammingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeEnableLocalProgrammingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeEnableLocalProgrammingID)
                                              params:params];
 }
 
@@ -9367,21 +9148,21 @@
                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeEnableLocalProgrammingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeEnableLocalProgrammingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnableOneTouchLockingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeEnableOneTouchLockingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeEnableOneTouchLockingID)
                                              params:params];
 }
 
@@ -9396,21 +9177,21 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeEnableOneTouchLockingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeEnableOneTouchLockingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnableInsideStatusLEDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeEnableInsideStatusLEDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeEnableInsideStatusLEDID)
                                              params:params];
 }
 
@@ -9425,21 +9206,21 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeEnableInsideStatusLEDID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeEnableInsideStatusLEDID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnablePrivacyModeButtonWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeEnablePrivacyModeButtonID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeEnablePrivacyModeButtonID)
                                              params:params];
 }
 
@@ -9454,21 +9235,21 @@
                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeEnablePrivacyModeButtonID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeEnablePrivacyModeButtonID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocalProgrammingFeaturesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeLocalProgrammingFeaturesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeLocalProgrammingFeaturesID)
                                              params:params];
 }
 
@@ -9483,21 +9264,21 @@
                                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeLocalProgrammingFeaturesID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeLocalProgrammingFeaturesID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWrongCodeEntryLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeWrongCodeEntryLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeWrongCodeEntryLimitID)
                                              params:params];
 }
 
@@ -9510,21 +9291,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeWrongCodeEntryLimitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeWrongCodeEntryLimitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUserCodeTemporaryDisableTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeUserCodeTemporaryDisableTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeUserCodeTemporaryDisableTimeID)
                                              params:params];
 }
 
@@ -9539,21 +9320,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeUserCodeTemporaryDisableTimeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeUserCodeTemporaryDisableTimeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSendPINOverTheAirWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeSendPINOverTheAirID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeSendPINOverTheAirID)
                                              params:params];
 }
 
@@ -9566,21 +9347,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeSendPINOverTheAirID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeSendPINOverTheAirID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRequirePINforRemoteOperationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeRequirePINforRemoteOperationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeRequirePINforRemoteOperationID)
                                              params:params];
 }
 
@@ -9595,21 +9376,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeRequirePINforRemoteOperationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeRequirePINforRemoteOperationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeExpiringUserTimeoutWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeExpiringUserTimeoutID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeExpiringUserTimeoutID)
                                              params:params];
 }
 
@@ -9622,53 +9403,53 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterDoorLockID)
-                                  attributeId:@(MTRClusterDoorLockAttributeExpiringUserTimeoutID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterDoorLockID)
+                                  attributeID:@(MTRClusterDoorLockAttributeExpiringUserTimeoutID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterDoorLockID)
-                                        attributeId:@(MTRClusterDoorLockAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterDoorLockID)
+                                        attributeID:@(MTRClusterDoorLockAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -9705,29 +9486,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::UpOrOpen::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::UpOrOpen::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9748,29 +9527,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::DownOrClose::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::DownOrClose::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9791,29 +9568,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::StopMotion::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::StopMotion::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9825,30 +9600,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::GoToLiftValue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::GoToLiftValue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.liftValue = params.liftValue.unsignedShortValue;
+            }
+            request.liftValue = params.liftValue.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9860,30 +9633,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::GoToLiftPercentage::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::GoToLiftPercentage::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.liftPercent100thsValue = params.liftPercent100thsValue.unsignedShortValue;
+            }
+            request.liftPercent100thsValue = params.liftPercent100thsValue.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9895,30 +9666,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::GoToTiltValue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::GoToTiltValue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.tiltValue = params.tiltValue.unsignedShortValue;
+            }
+            request.tiltValue = params.tiltValue.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -9930,199 +9699,197 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                WindowCovering::Commands::GoToTiltPercentage::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            WindowCovering::Commands::GoToTiltPercentage::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.tiltPercent100thsValue = params.tiltPercent100thsValue.unsignedShortValue;
+            }
+            request.tiltPercent100thsValue = params.tiltPercent100thsValue.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::WindowCoveringCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalClosedLimitLiftWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributePhysicalClosedLimitLiftID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributePhysicalClosedLimitLiftID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalClosedLimitTiltWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributePhysicalClosedLimitTiltID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributePhysicalClosedLimitTiltID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionLiftWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionTiltWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfActuationsLiftWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeNumberOfActuationsLiftID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeNumberOfActuationsLiftID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfActuationsTiltWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeNumberOfActuationsTiltID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeNumberOfActuationsTiltID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeConfigStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeConfigStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeConfigStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionLiftPercentageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftPercentageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftPercentageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionTiltPercentageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltPercentageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltPercentageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOperationalStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeOperationalStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeOperationalStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTargetPositionLiftPercent100thsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeTargetPositionLiftPercent100thsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeTargetPositionLiftPercent100thsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTargetPositionTiltPercent100thsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeTargetPositionTiltPercent100thsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeTargetPositionTiltPercent100thsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEndProductTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeEndProductTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeEndProductTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionLiftPercent100thsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftPercent100thsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionLiftPercent100thsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentPositionTiltPercent100thsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltPercent100thsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeCurrentPositionTiltPercent100thsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstalledOpenLimitLiftWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeInstalledOpenLimitLiftID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeInstalledOpenLimitLiftID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstalledClosedLimitLiftWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeInstalledClosedLimitLiftID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeInstalledClosedLimitLiftID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstalledOpenLimitTiltWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeInstalledOpenLimitTiltID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeInstalledOpenLimitTiltID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstalledClosedLimitTiltWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeInstalledClosedLimitTiltID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeInstalledClosedLimitTiltID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeModeID)
                                              params:params];
 }
 
@@ -10135,61 +9902,61 @@
               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterWindowCoveringID)
-                                  attributeId:@(MTRClusterWindowCoveringAttributeModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterWindowCoveringID)
+                                  attributeID:@(MTRClusterWindowCoveringAttributeModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSafetyStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeSafetyStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeSafetyStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWindowCoveringID)
-                                        attributeId:@(MTRClusterWindowCoveringAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWindowCoveringID)
+                                        attributeID:@(MTRClusterWindowCoveringAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -10217,30 +9984,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                BarrierControl::Commands::BarrierControlGoToPercent::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            BarrierControl::Commands::BarrierControlGoToPercent::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.percentOpen = params.percentOpen.unsignedCharValue;
+            }
+            request.percentOpen = params.percentOpen.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::BarrierControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::BarrierControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -10261,62 +10026,60 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                BarrierControl::Commands::BarrierControlStop::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            BarrierControl::Commands::BarrierControlStop::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::BarrierControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::BarrierControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierMovingStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierMovingStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierMovingStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierSafetyStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierSafetyStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierSafetyStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierCapabilitiesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierCapabilitiesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierCapabilitiesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierOpenEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierOpenEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierOpenEventsID)
                                              params:params];
 }
 
@@ -10329,21 +10092,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierOpenEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierOpenEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierCloseEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierCloseEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierCloseEventsID)
                                              params:params];
 }
 
@@ -10356,21 +10119,21 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierCloseEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierCloseEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierCommandOpenEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierCommandOpenEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierCommandOpenEventsID)
                                              params:params];
 }
 
@@ -10385,21 +10148,21 @@
                                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierCommandOpenEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierCommandOpenEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierCommandCloseEventsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierCommandCloseEventsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierCommandCloseEventsID)
                                              params:params];
 }
 
@@ -10414,21 +10177,21 @@
                                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierCommandCloseEventsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierCommandCloseEventsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierOpenPeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierOpenPeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierOpenPeriodID)
                                              params:params];
 }
 
@@ -10441,21 +10204,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierOpenPeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierOpenPeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierClosePeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierClosePeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierClosePeriodID)
                                              params:params];
 }
 
@@ -10468,61 +10231,61 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBarrierControlID)
-                                  attributeId:@(MTRClusterBarrierControlAttributeBarrierClosePeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBarrierControlID)
+                                  attributeID:@(MTRClusterBarrierControlAttributeBarrierClosePeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBarrierPositionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeBarrierPositionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeBarrierPositionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBarrierControlID)
-                                        attributeId:@(MTRClusterBarrierControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBarrierControlID)
+                                        attributeID:@(MTRClusterBarrierControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -10545,153 +10308,153 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxPressureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxPressureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxPressureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxSpeedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxSpeedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxSpeedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxFlowWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxFlowID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxFlowID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinConstPressureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMinConstPressureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMinConstPressureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxConstPressureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstPressureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstPressureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinCompPressureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMinCompPressureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMinCompPressureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxCompPressureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxCompPressureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxCompPressureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinConstSpeedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMinConstSpeedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMinConstSpeedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxConstSpeedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstSpeedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstSpeedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinConstFlowWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMinConstFlowID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMinConstFlowID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxConstFlowWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstFlowID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstFlowID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinConstTempWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMinConstTempID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMinConstTempID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxConstTempWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstTempID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeMaxConstTempID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePumpStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributePumpStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributePumpStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEffectiveOperationModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeEffectiveOperationModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeEffectiveOperationModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEffectiveControlModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeEffectiveControlModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeEffectiveControlModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCapacityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeCapacityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeCapacityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSpeedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeSpeedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeSpeedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLifetimeRunningHoursWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeRunningHoursID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeRunningHoursID)
                                              params:params];
 }
 
@@ -10704,29 +10467,29 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                  attributeId:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeRunningHoursID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                  attributeID:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeRunningHoursID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributePowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributePowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLifetimeEnergyConsumedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeEnergyConsumedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeEnergyConsumedID)
                                              params:params];
 }
 
@@ -10741,21 +10504,21 @@
                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                  attributeId:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeEnergyConsumedID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                  attributeID:@(MTRClusterPumpConfigurationAndControlAttributeLifetimeEnergyConsumedID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOperationModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeOperationModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeOperationModeID)
                                              params:params];
 }
 
@@ -10768,21 +10531,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                  attributeId:@(MTRClusterPumpConfigurationAndControlAttributeOperationModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                  attributeID:@(MTRClusterPumpConfigurationAndControlAttributeOperationModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeControlModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeControlModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeControlModeID)
                                              params:params];
 }
 
@@ -10795,53 +10558,53 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                  attributeId:@(MTRClusterPumpConfigurationAndControlAttributeControlModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                  attributeID:@(MTRClusterPumpConfigurationAndControlAttributeControlModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPumpConfigurationAndControlID)
-                                        attributeId:@(MTRClusterPumpConfigurationAndControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPumpConfigurationAndControlID)
+                                        attributeID:@(MTRClusterPumpConfigurationAndControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -10869,31 +10632,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Thermostat::Commands::SetpointRaiseLower::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Thermostat::Commands::SetpointRaiseLower::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.mode = static_cast<std::remove_reference_t<decltype(request.mode)>>(params.mode.unsignedCharValue);
-                request.amount = params.amount.charValue;
+            }
+            request.mode = static_cast<std::remove_reference_t<decltype(request.mode)>>(params.mode.unsignedCharValue);
+            request.amount = params.amount.charValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -10905,68 +10666,66 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Thermostat::Commands::SetWeeklySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Thermostat::Commands::SetWeeklySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.numberOfTransitionsForSequence = params.numberOfTransitionsForSequence.unsignedCharValue;
-                request.dayOfWeekForSequence = static_cast<std::remove_reference_t<decltype(request.dayOfWeekForSequence)>>(
-                    params.dayOfWeekForSequence.unsignedCharValue);
-                request.modeForSequence = static_cast<std::remove_reference_t<decltype(request.modeForSequence)>>(
-                    params.modeForSequence.unsignedCharValue);
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.transitions)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.transitions.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.transitions.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            request.numberOfTransitionsForSequence = params.numberOfTransitionsForSequence.unsignedCharValue;
+            request.dayOfWeekForSequence = static_cast<std::remove_reference_t<decltype(request.dayOfWeekForSequence)>>(
+                params.dayOfWeekForSequence.unsignedCharValue);
+            request.modeForSequence
+                = static_cast<std::remove_reference_t<decltype(request.modeForSequence)>>(params.modeForSequence.unsignedCharValue);
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.transitions)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.transitions.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.transitions.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.transitions.count; ++i_0) {
+                        if (![params.transitions[i_0] isKindOfClass:[MTRThermostatClusterThermostatScheduleTransition class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.transitions.count; ++i_0) {
-                            if (![params.transitions[i_0] isKindOfClass:[MTRThermostatClusterThermostatScheduleTransition class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRThermostatClusterThermostatScheduleTransition *) params.transitions[i_0];
-                            listHolder_0->mList[i_0].transitionTime = element_0.transitionTime.unsignedShortValue;
-                            if (element_0.heatSetpoint == nil) {
-                                listHolder_0->mList[i_0].heatSetpoint.SetNull();
-                            } else {
-                                auto & nonNullValue_2 = listHolder_0->mList[i_0].heatSetpoint.SetNonNull();
-                                nonNullValue_2 = element_0.heatSetpoint.shortValue;
-                            }
-                            if (element_0.coolSetpoint == nil) {
-                                listHolder_0->mList[i_0].coolSetpoint.SetNull();
-                            } else {
-                                auto & nonNullValue_2 = listHolder_0->mList[i_0].coolSetpoint.SetNonNull();
-                                nonNullValue_2 = element_0.coolSetpoint.shortValue;
-                            }
+                        auto element_0 = (MTRThermostatClusterThermostatScheduleTransition *) params.transitions[i_0];
+                        listHolder_0->mList[i_0].transitionTime = element_0.transitionTime.unsignedShortValue;
+                        if (element_0.heatSetpoint == nil) {
+                            listHolder_0->mList[i_0].heatSetpoint.SetNull();
+                        } else {
+                            auto & nonNullValue_2 = listHolder_0->mList[i_0].heatSetpoint.SetNonNull();
+                            nonNullValue_2 = element_0.heatSetpoint.shortValue;
                         }
-                        request.transitions = ListType_0(listHolder_0->mList, params.transitions.count);
-                    } else {
-                        request.transitions = ListType_0();
+                        if (element_0.coolSetpoint == nil) {
+                            listHolder_0->mList[i_0].coolSetpoint.SetNull();
+                        } else {
+                            auto & nonNullValue_2 = listHolder_0->mList[i_0].coolSetpoint.SetNonNull();
+                            nonNullValue_2 = element_0.coolSetpoint.shortValue;
+                        }
                     }
+                    request.transitions = ListType_0(listHolder_0->mList, params.transitions.count);
+                } else {
+                    request.transitions = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -10979,29 +10738,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRThermostatClusterGetWeeklyScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Thermostat::Commands::GetWeeklySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRThermostatClusterGetWeeklyScheduleResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Thermostat::Commands::GetWeeklySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.daysToReturn
-                    = static_cast<std::remove_reference_t<decltype(request.daysToReturn)>>(params.daysToReturn.unsignedCharValue);
-                request.modeToReturn
-                    = static_cast<std::remove_reference_t<decltype(request.modeToReturn)>>(params.modeToReturn.unsignedCharValue);
+            }
+            request.daysToReturn
+                = static_cast<std::remove_reference_t<decltype(request.daysToReturn)>>(params.daysToReturn.unsignedCharValue);
+            request.modeToReturn
+                = static_cast<std::remove_reference_t<decltype(request.modeToReturn)>>(params.modeToReturn.unsignedCharValue);
 
-                auto successFn = Callback<ThermostatClusterGetWeeklyScheduleResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ThermostatClusterGetWeeklyScheduleResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -11022,110 +10779,108 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Thermostat::Commands::ClearWeeklySchedule::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Thermostat::Commands::ClearWeeklySchedule::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ThermostatCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocalTemperatureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeLocalTemperatureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeLocalTemperatureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOutdoorTemperatureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOutdoorTemperatureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOutdoorTemperatureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupancyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupancyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupancyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAbsMinHeatSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAbsMinHeatSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAbsMinHeatSetpointLimitID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAbsMaxHeatSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAbsMaxHeatSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAbsMaxHeatSetpointLimitID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAbsMinCoolSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAbsMinCoolSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAbsMinCoolSetpointLimitID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAbsMaxCoolSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAbsMaxCoolSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAbsMaxCoolSetpointLimitID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePICoolingDemandWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributePICoolingDemandID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributePICoolingDemandID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePIHeatingDemandWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributePIHeatingDemandID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributePIHeatingDemandID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHVACSystemTypeConfigurationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeHVACSystemTypeConfigurationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeHVACSystemTypeConfigurationID)
                                              params:params];
 }
 
@@ -11140,21 +10895,21 @@
                                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeHVACSystemTypeConfigurationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeHVACSystemTypeConfigurationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLocalTemperatureCalibrationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeLocalTemperatureCalibrationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeLocalTemperatureCalibrationID)
                                              params:params];
 }
 
@@ -11169,21 +10924,21 @@
                                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeLocalTemperatureCalibrationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeLocalTemperatureCalibrationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupiedCoolingSetpointWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupiedCoolingSetpointID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupiedCoolingSetpointID)
                                              params:params];
 }
 
@@ -11198,21 +10953,21 @@
                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeOccupiedCoolingSetpointID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeOccupiedCoolingSetpointID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupiedHeatingSetpointWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupiedHeatingSetpointID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupiedHeatingSetpointID)
                                              params:params];
 }
 
@@ -11227,21 +10982,21 @@
                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeOccupiedHeatingSetpointID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeOccupiedHeatingSetpointID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnoccupiedCoolingSetpointWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeUnoccupiedCoolingSetpointID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeUnoccupiedCoolingSetpointID)
                                              params:params];
 }
 
@@ -11256,21 +11011,21 @@
                                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeUnoccupiedCoolingSetpointID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeUnoccupiedCoolingSetpointID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnoccupiedHeatingSetpointWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeUnoccupiedHeatingSetpointID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeUnoccupiedHeatingSetpointID)
                                              params:params];
 }
 
@@ -11285,21 +11040,21 @@
                                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeUnoccupiedHeatingSetpointID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeUnoccupiedHeatingSetpointID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinHeatSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeMinHeatSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeMinHeatSetpointLimitID)
                                              params:params];
 }
 
@@ -11312,21 +11067,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeMinHeatSetpointLimitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeMinHeatSetpointLimitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxHeatSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeMaxHeatSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeMaxHeatSetpointLimitID)
                                              params:params];
 }
 
@@ -11339,21 +11094,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeMaxHeatSetpointLimitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeMaxHeatSetpointLimitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinCoolSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeMinCoolSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeMinCoolSetpointLimitID)
                                              params:params];
 }
 
@@ -11366,21 +11121,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeMinCoolSetpointLimitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeMinCoolSetpointLimitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxCoolSetpointLimitWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeMaxCoolSetpointLimitID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeMaxCoolSetpointLimitID)
                                              params:params];
 }
 
@@ -11393,21 +11148,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeMaxCoolSetpointLimitID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeMaxCoolSetpointLimitID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinSetpointDeadBandWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeMinSetpointDeadBandID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeMinSetpointDeadBandID)
                                              params:params];
 }
 
@@ -11420,21 +11175,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeMinSetpointDeadBandID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeMinSetpointDeadBandID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRemoteSensingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeRemoteSensingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeRemoteSensingID)
                                              params:params];
 }
 
@@ -11447,21 +11202,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeRemoteSensingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeRemoteSensingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeControlSequenceOfOperationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeControlSequenceOfOperationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeControlSequenceOfOperationID)
                                              params:params];
 }
 
@@ -11476,21 +11231,21 @@
                                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeControlSequenceOfOperationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeControlSequenceOfOperationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSystemModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeSystemModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeSystemModeID)
                                              params:params];
 }
 
@@ -11503,53 +11258,53 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeSystemModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeSystemModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeThermostatRunningModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeThermostatRunningModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeThermostatRunningModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartOfWeekWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeStartOfWeekID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeStartOfWeekID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfWeeklyTransitionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeNumberOfWeeklyTransitionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeNumberOfWeeklyTransitionsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfDailyTransitionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeNumberOfDailyTransitionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeNumberOfDailyTransitionsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTemperatureSetpointHoldWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeTemperatureSetpointHoldID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeTemperatureSetpointHoldID)
                                              params:params];
 }
 
@@ -11564,21 +11319,21 @@
                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeTemperatureSetpointHoldID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeTemperatureSetpointHoldID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTemperatureSetpointHoldDurationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeTemperatureSetpointHoldDurationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeTemperatureSetpointHoldDurationID)
                                              params:params];
 }
 
@@ -11593,21 +11348,21 @@
                                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeTemperatureSetpointHoldDurationID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeTemperatureSetpointHoldDurationID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeThermostatProgrammingOperationModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeThermostatProgrammingOperationModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeThermostatProgrammingOperationModeID)
                                              params:params];
 }
 
@@ -11622,53 +11377,53 @@
                                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeThermostatProgrammingOperationModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeThermostatProgrammingOperationModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeThermostatRunningStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeThermostatRunningStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeThermostatRunningStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSetpointChangeSourceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeSetpointChangeSourceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeSetpointChangeSourceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSetpointChangeAmountWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeSetpointChangeAmountID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeSetpointChangeAmountID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSetpointChangeSourceTimestampWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeSetpointChangeSourceTimestampID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeSetpointChangeSourceTimestampID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupiedSetbackWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupiedSetbackID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupiedSetbackID)
                                              params:params];
 }
 
@@ -11681,37 +11436,37 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeOccupiedSetbackID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeOccupiedSetbackID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupiedSetbackMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupiedSetbackMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupiedSetbackMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupiedSetbackMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeOccupiedSetbackMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeOccupiedSetbackMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnoccupiedSetbackWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeUnoccupiedSetbackID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeUnoccupiedSetbackID)
                                              params:params];
 }
 
@@ -11724,37 +11479,37 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeUnoccupiedSetbackID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeUnoccupiedSetbackID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnoccupiedSetbackMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeUnoccupiedSetbackMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeUnoccupiedSetbackMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnoccupiedSetbackMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeUnoccupiedSetbackMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeUnoccupiedSetbackMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEmergencyHeatDeltaWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeEmergencyHeatDeltaID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeEmergencyHeatDeltaID)
                                              params:params];
 }
 
@@ -11767,21 +11522,21 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeEmergencyHeatDeltaID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeEmergencyHeatDeltaID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACTypeID)
                                              params:params];
 }
 
@@ -11794,21 +11549,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACTypeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACTypeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACCapacityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACCapacityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACCapacityID)
                                              params:params];
 }
 
@@ -11821,21 +11576,21 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACCapacityID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACCapacityID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACRefrigerantTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACRefrigerantTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACRefrigerantTypeID)
                                              params:params];
 }
 
@@ -11848,21 +11603,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACRefrigerantTypeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACRefrigerantTypeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACCompressorTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACCompressorTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACCompressorTypeID)
                                              params:params];
 }
 
@@ -11875,21 +11630,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACCompressorTypeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACCompressorTypeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACErrorCodeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACErrorCodeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACErrorCodeID)
                                              params:params];
 }
 
@@ -11902,21 +11657,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACErrorCodeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACErrorCodeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACLouverPositionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACLouverPositionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACLouverPositionID)
                                              params:params];
 }
 
@@ -11929,29 +11684,29 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACLouverPositionID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACLouverPositionID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACCoilTemperatureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACCoilTemperatureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACCoilTemperatureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeACCapacityformatWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeACCapacityformatID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeACCapacityformatID)
                                              params:params];
 }
 
@@ -11964,53 +11719,53 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatID)
-                                  attributeId:@(MTRClusterThermostatAttributeACCapacityformatID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatID)
+                                  attributeID:@(MTRClusterThermostatAttributeACCapacityformatID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatID)
-                                        attributeId:@(MTRClusterThermostatAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatID)
+                                        attributeID:@(MTRClusterThermostatAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -12033,9 +11788,9 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeFanModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeFanModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeFanModeID)
                                              params:params];
 }
 
@@ -12048,21 +11803,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributeFanModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributeFanModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFanModeSequenceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeFanModeSequenceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeFanModeSequenceID)
                                              params:params];
 }
 
@@ -12075,21 +11830,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributeFanModeSequenceID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributeFanModeSequenceID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePercentSettingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributePercentSettingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributePercentSettingID)
                                              params:params];
 }
 
@@ -12102,37 +11857,37 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributePercentSettingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributePercentSettingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePercentCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributePercentCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributePercentCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSpeedMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeSpeedMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeSpeedMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSpeedSettingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeSpeedSettingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeSpeedSettingID)
                                              params:params];
 }
 
@@ -12145,37 +11900,37 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributeSpeedSettingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributeSpeedSettingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSpeedCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeSpeedCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeSpeedCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRockSupportWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeRockSupportID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeRockSupportID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRockSettingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeRockSettingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeRockSettingID)
                                              params:params];
 }
 
@@ -12188,29 +11943,29 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributeRockSettingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributeRockSettingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWindSupportWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeWindSupportID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeWindSupportID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWindSettingWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeWindSettingID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeWindSettingID)
                                              params:params];
 }
 
@@ -12223,53 +11978,53 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterFanControlID)
-                                  attributeId:@(MTRClusterFanControlAttributeWindSettingID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterFanControlID)
+                                  attributeID:@(MTRClusterFanControlAttributeWindSettingID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFanControlID)
-                                        attributeId:@(MTRClusterFanControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFanControlID)
+                                        attributeID:@(MTRClusterFanControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -12293,9 +12048,9 @@
 - (NSDictionary<NSString *, id> *)readAttributeTemperatureDisplayModeWithParams:(MTRReadParams * _Nullable)params
 {
     return
-        [self.device readAttributeWithEndpointId:@(_endpoint)
-                                       clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                     attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeTemperatureDisplayModeID)
+        [self.device readAttributeWithEndpointID:@(_endpoint)
+                                       clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                     attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeTemperatureDisplayModeID)
                                           params:params];
 }
 
@@ -12310,21 +12065,21 @@
                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                  attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeTemperatureDisplayModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                  attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeTemperatureDisplayModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeKeypadLockoutWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeKeypadLockoutID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeKeypadLockoutID)
                                              params:params];
 }
 
@@ -12337,22 +12092,22 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                  attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeKeypadLockoutID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                  attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeKeypadLockoutID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeScheduleProgrammingVisibilityWithParams:(MTRReadParams * _Nullable)params
 {
     return [self.device
-        readAttributeWithEndpointId:@(_endpoint)
-                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeScheduleProgrammingVisibilityID)
+        readAttributeWithEndpointID:@(_endpoint)
+                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeScheduleProgrammingVisibilityID)
                              params:params];
 }
 
@@ -12367,54 +12122,54 @@
                                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
     [self.device
-        writeAttributeWithEndpointId:@(_endpoint)
-                           clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                         attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeScheduleProgrammingVisibilityID)
+        writeAttributeWithEndpointID:@(_endpoint)
+                           clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                         attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeScheduleProgrammingVisibilityID)
                                value:dataValueDictionary
                expectedValueInterval:expectedValueIntervalMs
-                   timedWriteTimeout:waitTimeInMs];
+                   timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterThermostatUserInterfaceConfigurationID)
-                                        attributeId:@(MTRClusterThermostatUserInterfaceConfigurationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterThermostatUserInterfaceConfigurationID)
+                                        attributeID:@(MTRClusterThermostatUserInterfaceConfigurationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -12442,35 +12197,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveToHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveToHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.hue = params.hue.unsignedCharValue;
-                request.direction
-                    = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.hue = params.hue.unsignedCharValue;
+            request.direction
+                = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12482,34 +12235,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                request.rate = params.rate.unsignedCharValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            request.rate = params.rate.unsignedCharValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12521,35 +12271,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::StepHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::StepHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedCharValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedCharValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12561,33 +12308,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveToSaturation::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveToSaturation::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.saturation = params.saturation.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.saturation = params.saturation.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12599,34 +12344,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveSaturation::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveSaturation::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                request.rate = params.rate.unsignedCharValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            request.rate = params.rate.unsignedCharValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12638,35 +12380,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::StepSaturation::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::StepSaturation::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedCharValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedCharValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12678,34 +12417,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveToHueAndSaturation::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveToHueAndSaturation::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.hue = params.hue.unsignedCharValue;
-                request.saturation = params.saturation.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.hue = params.hue.unsignedCharValue;
+            request.saturation = params.saturation.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12717,34 +12454,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveToColor::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveToColor::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.colorX = params.colorX.unsignedShortValue;
-                request.colorY = params.colorY.unsignedShortValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.colorX = params.colorX.unsignedShortValue;
+            request.colorY = params.colorY.unsignedShortValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12756,33 +12491,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveColor::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveColor::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.rateX = params.rateX.shortValue;
-                request.rateY = params.rateY.shortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.rateX = params.rateX.shortValue;
+            request.rateY = params.rateY.shortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12794,34 +12527,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::StepColor::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::StepColor::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepX = params.stepX.shortValue;
-                request.stepY = params.stepY.shortValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepX = params.stepX.shortValue;
+            request.stepY = params.stepY.shortValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12833,33 +12564,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveToColorTemperature::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveToColorTemperature::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.colorTemperature = params.colorTemperature.unsignedShortValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.colorTemperature = params.colorTemperature.unsignedShortValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12871,35 +12600,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::EnhancedMoveToHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::EnhancedMoveToHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.enhancedHue = params.enhancedHue.unsignedShortValue;
-                request.direction
-                    = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.enhancedHue = params.enhancedHue.unsignedShortValue;
+            request.direction
+                = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12911,34 +12638,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::EnhancedMoveHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::EnhancedMoveHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                request.rate = params.rate.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            request.rate = params.rate.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12950,35 +12674,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::EnhancedStepHue::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::EnhancedStepHue::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedShortValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedShortValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -12990,34 +12711,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.enhancedHue = params.enhancedHue.unsignedShortValue;
-                request.saturation = params.saturation.unsignedCharValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.enhancedHue = params.enhancedHue.unsignedShortValue;
+            request.saturation = params.saturation.unsignedCharValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -13029,38 +12748,36 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::ColorLoopSet::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::ColorLoopSet::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.updateFlags
-                    = static_cast<std::remove_reference_t<decltype(request.updateFlags)>>(params.updateFlags.unsignedCharValue);
-                request.action = static_cast<std::remove_reference_t<decltype(request.action)>>(params.action.unsignedCharValue);
-                request.direction
-                    = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
-                request.time = params.time.unsignedShortValue;
-                request.startHue = params.startHue.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.updateFlags
+                = static_cast<std::remove_reference_t<decltype(request.updateFlags)>>(params.updateFlags.unsignedCharValue);
+            request.action = static_cast<std::remove_reference_t<decltype(request.action)>>(params.action.unsignedCharValue);
+            request.direction
+                = static_cast<std::remove_reference_t<decltype(request.direction)>>(params.direction.unsignedCharValue);
+            request.time = params.time.unsignedShortValue;
+            request.startHue = params.startHue.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -13072,31 +12789,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::StopMoveStep::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::StopMoveStep::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -13108,36 +12823,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::MoveColorTemperature::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::MoveColorTemperature::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.moveMode
-                    = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
-                request.rate = params.rate.unsignedShortValue;
-                request.colorTemperatureMinimumMireds = params.colorTemperatureMinimumMireds.unsignedShortValue;
-                request.colorTemperatureMaximumMireds = params.colorTemperatureMaximumMireds.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.moveMode = static_cast<std::remove_reference_t<decltype(request.moveMode)>>(params.moveMode.unsignedCharValue);
+            request.rate = params.rate.unsignedShortValue;
+            request.colorTemperatureMinimumMireds = params.colorTemperatureMinimumMireds.unsignedShortValue;
+            request.colorTemperatureMaximumMireds = params.colorTemperatureMaximumMireds.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -13149,118 +12861,115 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ColorControl::Commands::StepColorTemperature::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ColorControl::Commands::StepColorTemperature::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.stepMode
-                    = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
-                request.stepSize = params.stepSize.unsignedShortValue;
-                request.transitionTime = params.transitionTime.unsignedShortValue;
-                request.colorTemperatureMinimumMireds = params.colorTemperatureMinimumMireds.unsignedShortValue;
-                request.colorTemperatureMaximumMireds = params.colorTemperatureMaximumMireds.unsignedShortValue;
-                request.optionsMask = params.optionsMask.unsignedCharValue;
-                request.optionsOverride = params.optionsOverride.unsignedCharValue;
+            }
+            request.stepMode = static_cast<std::remove_reference_t<decltype(request.stepMode)>>(params.stepMode.unsignedCharValue);
+            request.stepSize = params.stepSize.unsignedShortValue;
+            request.transitionTime = params.transitionTime.unsignedShortValue;
+            request.colorTemperatureMinimumMireds = params.colorTemperatureMinimumMireds.unsignedShortValue;
+            request.colorTemperatureMaximumMireds = params.colorTemperatureMaximumMireds.unsignedShortValue;
+            request.optionsMask = params.optionsMask.unsignedCharValue;
+            request.optionsOverride = params.optionsOverride.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ColorControlCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentHueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCurrentHueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCurrentHueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentSaturationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCurrentSaturationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCurrentSaturationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRemainingTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeRemainingTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeRemainingTimeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentXWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCurrentXID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCurrentXID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentYWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCurrentYID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCurrentYID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDriftCompensationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeDriftCompensationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeDriftCompensationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCompensationTextWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCompensationTextID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCompensationTextID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorTemperatureWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorTemperatureID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorTemperatureID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOptionsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeOptionsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeOptionsID)
                                              params:params];
 }
 
@@ -13273,173 +12982,173 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeOptionsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeOptionsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNumberOfPrimariesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeNumberOfPrimariesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeNumberOfPrimariesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary1XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary1XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary1XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary1YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary1YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary1YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary1IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary1IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary1IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary2XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary2XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary2XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary2YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary2YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary2YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary2IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary2IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary2IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary3XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary3XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary3XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary3YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary3YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary3YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary3IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary3IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary3IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary4XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary4XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary4XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary4YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary4YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary4YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary4IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary4IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary4IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary5XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary5XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary5XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary5YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary5YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary5YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary5IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary5IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary5IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary6XWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary6XID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary6XID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary6YWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary6YID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary6YID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePrimary6IntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributePrimary6IntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributePrimary6IntensityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWhitePointXWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeWhitePointXID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeWhitePointXID)
                                              params:params];
 }
 
@@ -13452,21 +13161,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeWhitePointXID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeWhitePointXID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeWhitePointYWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeWhitePointYID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeWhitePointYID)
                                              params:params];
 }
 
@@ -13479,21 +13188,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeWhitePointYID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeWhitePointYID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointRXWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointRXID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointRXID)
                                              params:params];
 }
 
@@ -13506,21 +13215,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointRXID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointRXID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointRYWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointRYID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointRYID)
                                              params:params];
 }
 
@@ -13533,21 +13242,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointRYID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointRYID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointRIntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointRIntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointRIntensityID)
                                              params:params];
 }
 
@@ -13560,21 +13269,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointRIntensityID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointRIntensityID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointGXWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointGXID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointGXID)
                                              params:params];
 }
 
@@ -13587,21 +13296,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointGXID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointGXID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointGYWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointGYID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointGYID)
                                              params:params];
 }
 
@@ -13614,21 +13323,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointGYID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointGYID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointGIntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointGIntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointGIntensityID)
                                              params:params];
 }
 
@@ -13641,21 +13350,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointGIntensityID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointGIntensityID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointBXWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointBXID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointBXID)
                                              params:params];
 }
 
@@ -13668,21 +13377,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointBXID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointBXID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointBYWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointBYID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointBYID)
                                              params:params];
 }
 
@@ -13695,21 +13404,21 @@
                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointBYID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointBYID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorPointBIntensityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorPointBIntensityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorPointBIntensityID)
                                              params:params];
 }
 
@@ -13722,109 +13431,109 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeColorPointBIntensityID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeColorPointBIntensityID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnhancedCurrentHueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeEnhancedCurrentHueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeEnhancedCurrentHueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnhancedColorModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeEnhancedColorModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeEnhancedColorModeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorLoopActiveWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorLoopActiveID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorLoopActiveID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorLoopDirectionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorLoopDirectionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorLoopDirectionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorLoopTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorLoopTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorLoopTimeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorLoopStartEnhancedHueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorLoopStartEnhancedHueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorLoopStartEnhancedHueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorLoopStoredEnhancedHueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorLoopStoredEnhancedHueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorLoopStoredEnhancedHueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorCapabilitiesWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorCapabilitiesID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorCapabilitiesID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorTempPhysicalMinMiredsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorTempPhysicalMinMiredsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorTempPhysicalMinMiredsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeColorTempPhysicalMaxMiredsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeColorTempPhysicalMaxMiredsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeColorTempPhysicalMaxMiredsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCoupleColorTempToLevelMinMiredsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeCoupleColorTempToLevelMinMiredsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeCoupleColorTempToLevelMinMiredsID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartUpColorTemperatureMiredsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeStartUpColorTemperatureMiredsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeStartUpColorTemperatureMiredsID)
                                              params:params];
 }
 
@@ -13839,53 +13548,53 @@
                                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterColorControlID)
-                                  attributeId:@(MTRClusterColorControlAttributeStartUpColorTemperatureMiredsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterColorControlID)
+                                  attributeID:@(MTRClusterColorControlAttributeStartUpColorTemperatureMiredsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterColorControlID)
-                                        attributeId:@(MTRClusterColorControlAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterColorControlID)
+                                        attributeID:@(MTRClusterColorControlAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -13908,33 +13617,33 @@
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalMinLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributePhysicalMinLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributePhysicalMinLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalMaxLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributePhysicalMaxLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributePhysicalMaxLevelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBallastStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeBallastStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeBallastStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeMinLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeMinLevelID)
                                              params:params];
 }
 
@@ -13947,21 +13656,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeMinLevelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeMinLevelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxLevelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeMaxLevelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeMaxLevelID)
                                              params:params];
 }
 
@@ -13974,21 +13683,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeMaxLevelID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeMaxLevelID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeIntrinsicBalanceFactorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeIntrinsicBalanceFactorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeIntrinsicBalanceFactorID)
                                              params:params];
 }
 
@@ -14003,21 +13712,21 @@
                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeIntrinsicBalanceFactorID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeIntrinsicBalanceFactorID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBallastFactorAdjustmentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeBallastFactorAdjustmentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeBallastFactorAdjustmentID)
                                              params:params];
 }
 
@@ -14032,29 +13741,29 @@
                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeBallastFactorAdjustmentID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeBallastFactorAdjustmentID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampQuantityWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampQuantityID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampQuantityID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampTypeID)
                                              params:params];
 }
 
@@ -14067,21 +13776,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampTypeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampTypeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampManufacturerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampManufacturerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampManufacturerID)
                                              params:params];
 }
 
@@ -14094,21 +13803,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampManufacturerID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampManufacturerID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampRatedHoursWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampRatedHoursID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampRatedHoursID)
                                              params:params];
 }
 
@@ -14121,21 +13830,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampRatedHoursID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampRatedHoursID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampBurnHoursWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampBurnHoursID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampBurnHoursID)
                                              params:params];
 }
 
@@ -14148,21 +13857,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampBurnHoursID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampBurnHoursID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampAlarmModeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampAlarmModeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampAlarmModeID)
                                              params:params];
 }
 
@@ -14175,21 +13884,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampAlarmModeID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampAlarmModeID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLampBurnHoursTripPointWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeLampBurnHoursTripPointID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeLampBurnHoursTripPointID)
                                              params:params];
 }
 
@@ -14204,53 +13913,53 @@
                                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterBallastConfigurationID)
-                                  attributeId:@(MTRClusterBallastConfigurationAttributeLampBurnHoursTripPointID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterBallastConfigurationID)
+                                  attributeID:@(MTRClusterBallastConfigurationAttributeLampBurnHoursTripPointID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterBallastConfigurationID)
-                                        attributeId:@(MTRClusterBallastConfigurationAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterBallastConfigurationID)
+                                        attributeID:@(MTRClusterBallastConfigurationAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14273,81 +13982,81 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeMinMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeMinMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeMaxMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeMaxMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLightSensorTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeLightSensorTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeLightSensorTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterIlluminanceMeasurementID)
-                                        attributeId:@(MTRClusterIlluminanceMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterIlluminanceMeasurementID)
+                                        attributeID:@(MTRClusterIlluminanceMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14370,73 +14079,73 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeMinMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeMinMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeMaxMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeMaxMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTemperatureMeasurementID)
-                                        attributeId:@(MTRClusterTemperatureMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTemperatureMeasurementID)
+                                        attributeID:@(MTRClusterTemperatureMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14459,113 +14168,113 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeMinMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeMinMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeMaxMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeMaxMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeScaledValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeScaledValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeScaledValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinScaledValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeMinScaledValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeMinScaledValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxScaledValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeMaxScaledValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeMaxScaledValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeScaledToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeScaledToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeScaledToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeScaleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeScaleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeScaleID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterPressureMeasurementID)
-                                        attributeId:@(MTRClusterPressureMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterPressureMeasurementID)
+                                        attributeID:@(MTRClusterPressureMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14588,73 +14297,73 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeMinMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeMinMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeMaxMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeMaxMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterFlowMeasurementID)
-                                        attributeId:@(MTRClusterFlowMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterFlowMeasurementID)
+                                        attributeID:@(MTRClusterFlowMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14677,73 +14386,73 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMinMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeMinMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeMinMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMaxMeasuredValueWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeMaxMeasuredValueID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeMaxMeasuredValueID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeToleranceWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeToleranceID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeToleranceID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterRelativeHumidityMeasurementID)
-                                        attributeId:@(MTRClusterRelativeHumidityMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterRelativeHumidityMeasurementID)
+                                        attributeID:@(MTRClusterRelativeHumidityMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -14766,33 +14475,33 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupancyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeOccupancyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeOccupancyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupancySensorTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeOccupancySensorTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeOccupancySensorTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOccupancySensorTypeBitmapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeOccupancySensorTypeBitmapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeOccupancySensorTypeBitmapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePirOccupiedToUnoccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributePirOccupiedToUnoccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributePirOccupiedToUnoccupiedDelayID)
                                              params:params];
 }
 
@@ -14807,21 +14516,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePirOccupiedToUnoccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePirOccupiedToUnoccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePirUnoccupiedToOccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedDelayID)
                                              params:params];
 }
 
@@ -14836,21 +14545,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePirUnoccupiedToOccupiedThresholdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedThresholdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedThresholdID)
                                              params:params];
 }
 
@@ -14865,21 +14574,21 @@
                                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedThresholdID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePirUnoccupiedToOccupiedThresholdID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUltrasonicOccupiedToUnoccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicOccupiedToUnoccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicOccupiedToUnoccupiedDelayID)
                                              params:params];
 }
 
@@ -14894,21 +14603,21 @@
                                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicOccupiedToUnoccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicOccupiedToUnoccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUltrasonicUnoccupiedToOccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedDelayID)
                                              params:params];
 }
 
@@ -14923,21 +14632,21 @@
                                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUltrasonicUnoccupiedToOccupiedThresholdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedThresholdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedThresholdID)
                                              params:params];
 }
 
@@ -14952,21 +14661,21 @@
                                                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedThresholdID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributeUltrasonicUnoccupiedToOccupiedThresholdID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalContactOccupiedToUnoccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactOccupiedToUnoccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactOccupiedToUnoccupiedDelayID)
                                              params:params];
 }
 
@@ -14981,21 +14690,21 @@
                                                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactOccupiedToUnoccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactOccupiedToUnoccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalContactUnoccupiedToOccupiedDelayWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedDelayID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedDelayID)
                                              params:params];
 }
 
@@ -15010,23 +14719,23 @@
                                                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedDelayID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedDelayID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhysicalContactUnoccupiedToOccupiedThresholdWithParams:
     (MTRReadParams * _Nullable)params
 {
     return [self.device
-        readAttributeWithEndpointId:@(_endpoint)
-                          clusterId:@(MTRClusterOccupancySensingID)
-                        attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedThresholdID)
+        readAttributeWithEndpointID:@(_endpoint)
+                          clusterID:@(MTRClusterOccupancySensingID)
+                        attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedThresholdID)
                              params:params];
 }
 
@@ -15041,53 +14750,53 @@
                                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterOccupancySensingID)
-                                  attributeId:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedThresholdID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterOccupancySensingID)
+                                  attributeID:@(MTRClusterOccupancySensingAttributePhysicalContactUnoccupiedToOccupiedThresholdID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterOccupancySensingID)
-                                        attributeId:@(MTRClusterOccupancySensingAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterOccupancySensingID)
+                                        attributeID:@(MTRClusterOccupancySensingAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -15110,49 +14819,49 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeMACAddressWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeMACAddressID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeMACAddressID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterWakeOnLanID)
-                                        attributeId:@(MTRClusterWakeOnLanAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterWakeOnLanID)
+                                        attributeID:@(MTRClusterWakeOnLanAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -15181,26 +14890,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRChannelClusterChangeChannelResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Channel::Commands::ChangeChannel::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRChannelClusterChangeChannelResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Channel::Commands::ChangeChannel::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.match = [self asCharSpan:params.match];
+            }
+            request.match = [self asCharSpan:params.match];
 
-                auto successFn = Callback<ChannelClusterChangeChannelResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ChannelClusterChangeChannelResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15212,31 +14919,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Channel::Commands::ChangeChannelByNumber::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Channel::Commands::ChangeChannelByNumber::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.majorNumber = params.majorNumber.unsignedShortValue;
-                request.minorNumber = params.minorNumber.unsignedShortValue;
+            }
+            request.majorNumber = params.majorNumber.unsignedShortValue;
+            request.minorNumber = params.minorNumber.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15248,95 +14953,93 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                Channel::Commands::SkipChannel::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            Channel::Commands::SkipChannel::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.count = params.count.unsignedShortValue;
+            }
+            request.count = params.count.unsignedShortValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ChannelCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeChannelListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeChannelListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeChannelListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLineupWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeLineupID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeLineupID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentChannelWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeCurrentChannelID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeCurrentChannelID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterChannelID)
-                                        attributeId:@(MTRClusterChannelAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterChannelID)
+                                        attributeID:@(MTRClusterChannelAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -15365,87 +15068,85 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTargetNavigatorClusterNavigateTargetResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TargetNavigator::Commands::NavigateTarget::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTargetNavigatorClusterNavigateTargetResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TargetNavigator::Commands::NavigateTarget::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.target = params.target.unsignedCharValue;
-                if (params.data != nil) {
-                    auto & definedValue_0 = request.data.Emplace();
-                    definedValue_0 = [self asCharSpan:params.data];
-                }
+            }
+            request.target = params.target.unsignedCharValue;
+            if (params.data != nil) {
+                auto & definedValue_0 = request.data.Emplace();
+                definedValue_0 = [self asCharSpan:params.data];
+            }
 
-                auto successFn = Callback<TargetNavigatorClusterNavigateTargetResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TargetNavigatorCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TargetNavigatorClusterNavigateTargetResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TargetNavigatorCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTargetListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeTargetListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeTargetListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentTargetWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeCurrentTargetID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeCurrentTargetID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTargetNavigatorID)
-                                        attributeId:@(MTRClusterTargetNavigatorAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTargetNavigatorID)
+                                        attributeID:@(MTRClusterTargetNavigatorAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -15484,25 +15185,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Play::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Play::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15525,25 +15224,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Pause::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Pause::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15566,25 +15263,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::StopPlayback::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::StopPlayback::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15607,25 +15302,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::StartOver::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::StartOver::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15648,25 +15341,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Previous::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Previous::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15689,25 +15380,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Next::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Next::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15730,25 +15419,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Rewind::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Rewind::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15771,25 +15458,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::FastForward::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::FastForward::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15802,26 +15487,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::SkipForward::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::SkipForward::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.deltaPositionMilliseconds = params.deltaPositionMilliseconds.unsignedLongLongValue;
+            }
+            request.deltaPositionMilliseconds = params.deltaPositionMilliseconds.unsignedLongLongValue;
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15834,26 +15517,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::SkipBackward::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::SkipBackward::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.deltaPositionMilliseconds = params.deltaPositionMilliseconds.unsignedLongLongValue;
+            }
+            request.deltaPositionMilliseconds = params.deltaPositionMilliseconds.unsignedLongLongValue;
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -15866,123 +15547,121 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaPlayback::Commands::Seek::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaPlayback::Commands::Seek::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.position = params.position.unsignedLongLongValue;
+            }
+            request.position = params.position.unsignedLongLongValue;
 
-                auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<MediaPlaybackClusterPlaybackResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaPlaybackCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentStateWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeCurrentStateID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeCurrentStateID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStartTimeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeStartTimeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeStartTimeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDurationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeDurationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeDurationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSampledPositionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeSampledPositionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeSampledPositionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePlaybackSpeedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributePlaybackSpeedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributePlaybackSpeedID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSeekRangeEndWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeSeekRangeEndID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeSeekRangeEndID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSeekRangeStartWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeSeekRangeStartID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeSeekRangeStartID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaPlaybackID)
-                                        attributeId:@(MTRClusterMediaPlaybackAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaPlaybackID)
+                                        attributeID:@(MTRClusterMediaPlaybackAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16010,30 +15689,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaInput::Commands::SelectInput::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaInput::Commands::SelectInput::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.index = params.index.unsignedCharValue;
+            }
+            request.index = params.index.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16054,29 +15731,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaInput::Commands::ShowInputStatus::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaInput::Commands::ShowInputStatus::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16097,29 +15772,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaInput::Commands::HideInputStatus::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaInput::Commands::HideInputStatus::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16131,88 +15804,86 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                MediaInput::Commands::RenameInput::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            MediaInput::Commands::RenameInput::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.index = params.index.unsignedCharValue;
-                request.name = [self asCharSpan:params.name];
+            }
+            request.index = params.index.unsignedCharValue;
+            request.name = [self asCharSpan:params.name];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::MediaInputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInputListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeInputListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeInputListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentInputWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeCurrentInputID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeCurrentInputID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterMediaInputID)
-                                        attributeId:@(MTRClusterMediaInputAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterMediaInputID)
+                                        attributeID:@(MTRClusterMediaInputAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16249,70 +15920,68 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                LowPower::Commands::Sleep::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            LowPower::Commands::Sleep::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::LowPowerCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::LowPowerCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLowPowerID)
-                                        attributeId:@(MTRClusterLowPowerAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLowPowerID)
+                                        attributeID:@(MTRClusterLowPowerAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLowPowerID)
-                                        attributeId:@(MTRClusterLowPowerAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLowPowerID)
+                                        attributeID:@(MTRClusterLowPowerAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLowPowerID)
-                                        attributeId:@(MTRClusterLowPowerAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLowPowerID)
+                                        attributeID:@(MTRClusterLowPowerAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLowPowerID)
-                                        attributeId:@(MTRClusterLowPowerAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLowPowerID)
+                                        attributeID:@(MTRClusterLowPowerAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterLowPowerID)
-                                        attributeId:@(MTRClusterLowPowerAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterLowPowerID)
+                                        attributeID:@(MTRClusterLowPowerAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16341,67 +16010,65 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRKeypadInputClusterSendKeyResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                KeypadInput::Commands::SendKey::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRKeypadInputClusterSendKeyResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            KeypadInput::Commands::SendKey::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.keyCode = static_cast<std::remove_reference_t<decltype(request.keyCode)>>(params.keyCode.unsignedCharValue);
+            }
+            request.keyCode = static_cast<std::remove_reference_t<decltype(request.keyCode)>>(params.keyCode.unsignedCharValue);
 
-                auto successFn = Callback<KeypadInputClusterSendKeyResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::KeypadInputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<KeypadInputClusterSendKeyResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::KeypadInputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterKeypadInputID)
-                                        attributeId:@(MTRClusterKeypadInputAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterKeypadInputID)
+                                        attributeID:@(MTRClusterKeypadInputAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterKeypadInputID)
-                                        attributeId:@(MTRClusterKeypadInputAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterKeypadInputID)
+                                        attributeID:@(MTRClusterKeypadInputAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterKeypadInputID)
-                                        attributeId:@(MTRClusterKeypadInputAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterKeypadInputID)
+                                        attributeID:@(MTRClusterKeypadInputAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterKeypadInputID)
-                                        attributeId:@(MTRClusterKeypadInputAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterKeypadInputID)
+                                        attributeID:@(MTRClusterKeypadInputAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterKeypadInputID)
-                                        attributeId:@(MTRClusterKeypadInputAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterKeypadInputID)
+                                        attributeID:@(MTRClusterKeypadInputAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16430,83 +16097,80 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRContentLauncherClusterLaunchResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ContentLauncher::Commands::LaunchContent::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRContentLauncherClusterLaunchResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ContentLauncher::Commands::LaunchContent::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_1 = std::remove_reference_t<decltype(request.search.parameterList)>;
-                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                    if (params.search.parameterList.count != 0) {
-                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.search.parameterList.count);
-                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            {
+                using ListType_1 = std::remove_reference_t<decltype(request.search.parameterList)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (params.search.parameterList.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.search.parameterList.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < params.search.parameterList.count; ++i_1) {
+                        if (![params.search.parameterList[i_1] isKindOfClass:[MTRContentLauncherClusterParameter class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_1);
-                        for (size_t i_1 = 0; i_1 < params.search.parameterList.count; ++i_1) {
-                            if (![params.search.parameterList[i_1] isKindOfClass:[MTRContentLauncherClusterParameter class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_1 = (MTRContentLauncherClusterParameter *) params.search.parameterList[i_1];
-                            listHolder_1->mList[i_1].type
-                                = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].type)>>(
-                                    element_1.type.unsignedCharValue);
-                            listHolder_1->mList[i_1].value = [self asCharSpan:element_1.value];
-                            if (element_1.externalIDList != nil) {
-                                auto & definedValue_3 = listHolder_1->mList[i_1].externalIDList.Emplace();
-                                {
-                                    using ListType_4 = std::remove_reference_t<decltype(definedValue_3)>;
-                                    using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
-                                    if (element_1.externalIDList.count != 0) {
-                                        auto * listHolder_4 = new ListHolder<ListMemberType_4>(element_1.externalIDList.count);
-                                        if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                        auto element_1 = (MTRContentLauncherClusterParameter *) params.search.parameterList[i_1];
+                        listHolder_1->mList[i_1].type
+                            = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].type)>>(
+                                element_1.type.unsignedCharValue);
+                        listHolder_1->mList[i_1].value = [self asCharSpan:element_1.value];
+                        if (element_1.externalIDList != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].externalIDList.Emplace();
+                            {
+                                using ListType_4 = std::remove_reference_t<decltype(definedValue_3)>;
+                                using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+                                if (element_1.externalIDList.count != 0) {
+                                    auto * listHolder_4 = new ListHolder<ListMemberType_4>(element_1.externalIDList.count);
+                                    if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    listFreer.add(listHolder_4);
+                                    for (size_t i_4 = 0; i_4 < element_1.externalIDList.count; ++i_4) {
+                                        if (![element_1.externalIDList[i_4]
+                                                isKindOfClass:[MTRContentLauncherClusterAdditionalInfo class]]) {
+                                            // Wrong kind of value.
                                             return CHIP_ERROR_INVALID_ARGUMENT;
                                         }
-                                        listFreer.add(listHolder_4);
-                                        for (size_t i_4 = 0; i_4 < element_1.externalIDList.count; ++i_4) {
-                                            if (![element_1.externalIDList[i_4]
-                                                    isKindOfClass:[MTRContentLauncherClusterAdditionalInfo class]]) {
-                                                // Wrong kind of value.
-                                                return CHIP_ERROR_INVALID_ARGUMENT;
-                                            }
-                                            auto element_4
-                                                = (MTRContentLauncherClusterAdditionalInfo *) element_1.externalIDList[i_4];
-                                            listHolder_4->mList[i_4].name = [self asCharSpan:element_4.name];
-                                            listHolder_4->mList[i_4].value = [self asCharSpan:element_4.value];
-                                        }
-                                        definedValue_3 = ListType_4(listHolder_4->mList, element_1.externalIDList.count);
-                                    } else {
-                                        definedValue_3 = ListType_4();
+                                        auto element_4 = (MTRContentLauncherClusterAdditionalInfo *) element_1.externalIDList[i_4];
+                                        listHolder_4->mList[i_4].name = [self asCharSpan:element_4.name];
+                                        listHolder_4->mList[i_4].value = [self asCharSpan:element_4.value];
                                     }
+                                    definedValue_3 = ListType_4(listHolder_4->mList, element_1.externalIDList.count);
+                                } else {
+                                    definedValue_3 = ListType_4();
                                 }
                             }
                         }
-                        request.search.parameterList = ListType_1(listHolder_1->mList, params.search.parameterList.count);
-                    } else {
-                        request.search.parameterList = ListType_1();
                     }
+                    request.search.parameterList = ListType_1(listHolder_1->mList, params.search.parameterList.count);
+                } else {
+                    request.search.parameterList = ListType_1();
                 }
-                request.autoPlay = params.autoPlay.boolValue;
-                if (params.data != nil) {
-                    auto & definedValue_0 = request.data.Emplace();
-                    definedValue_0 = [self asCharSpan:params.data];
-                }
+            }
+            request.autoPlay = params.autoPlay.boolValue;
+            if (params.data != nil) {
+                auto & definedValue_0 = request.data.Emplace();
+                definedValue_0 = [self asCharSpan:params.data];
+            }
 
-                auto successFn = Callback<ContentLauncherClusterLaunchResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ContentLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ContentLauncherClusterLaunchResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ContentLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16519,141 +16183,139 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRContentLauncherClusterLaunchResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ContentLauncher::Commands::LaunchURL::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRContentLauncherClusterLaunchResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ContentLauncher::Commands::LaunchURL::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+                }
+            }
+            request.contentURL = [self asCharSpan:params.contentURL];
+            if (params.displayString != nil) {
+                auto & definedValue_0 = request.displayString.Emplace();
+                definedValue_0 = [self asCharSpan:params.displayString];
+            }
+            if (params.brandingInformation != nil) {
+                auto & definedValue_0 = request.brandingInformation.Emplace();
+                definedValue_0.providerName = [self asCharSpan:params.brandingInformation.providerName];
+                if (params.brandingInformation.background != nil) {
+                    auto & definedValue_2 = definedValue_0.background.Emplace();
+                    if (params.brandingInformation.background.imageUrl != nil) {
+                        auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.background.imageUrl];
+                    }
+                    if (params.brandingInformation.background.color != nil) {
+                        auto & definedValue_4 = definedValue_2.color.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.background.color];
+                    }
+                    if (params.brandingInformation.background.size != nil) {
+                        auto & definedValue_4 = definedValue_2.size.Emplace();
+                        definedValue_4.width = params.brandingInformation.background.size.width.doubleValue;
+                        definedValue_4.height = params.brandingInformation.background.size.height.doubleValue;
+                        definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
+                            params.brandingInformation.background.size.metric.unsignedCharValue);
                     }
                 }
-                request.contentURL = [self asCharSpan:params.contentURL];
-                if (params.displayString != nil) {
-                    auto & definedValue_0 = request.displayString.Emplace();
-                    definedValue_0 = [self asCharSpan:params.displayString];
-                }
-                if (params.brandingInformation != nil) {
-                    auto & definedValue_0 = request.brandingInformation.Emplace();
-                    definedValue_0.providerName = [self asCharSpan:params.brandingInformation.providerName];
-                    if (params.brandingInformation.background != nil) {
-                        auto & definedValue_2 = definedValue_0.background.Emplace();
-                        if (params.brandingInformation.background.imageUrl != nil) {
-                            auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.background.imageUrl];
-                        }
-                        if (params.brandingInformation.background.color != nil) {
-                            auto & definedValue_4 = definedValue_2.color.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.background.color];
-                        }
-                        if (params.brandingInformation.background.size != nil) {
-                            auto & definedValue_4 = definedValue_2.size.Emplace();
-                            definedValue_4.width = params.brandingInformation.background.size.width.doubleValue;
-                            definedValue_4.height = params.brandingInformation.background.size.height.doubleValue;
-                            definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
-                                params.brandingInformation.background.size.metric.unsignedCharValue);
-                        }
+                if (params.brandingInformation.logo != nil) {
+                    auto & definedValue_2 = definedValue_0.logo.Emplace();
+                    if (params.brandingInformation.logo.imageUrl != nil) {
+                        auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.logo.imageUrl];
                     }
-                    if (params.brandingInformation.logo != nil) {
-                        auto & definedValue_2 = definedValue_0.logo.Emplace();
-                        if (params.brandingInformation.logo.imageUrl != nil) {
-                            auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.logo.imageUrl];
-                        }
-                        if (params.brandingInformation.logo.color != nil) {
-                            auto & definedValue_4 = definedValue_2.color.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.logo.color];
-                        }
-                        if (params.brandingInformation.logo.size != nil) {
-                            auto & definedValue_4 = definedValue_2.size.Emplace();
-                            definedValue_4.width = params.brandingInformation.logo.size.width.doubleValue;
-                            definedValue_4.height = params.brandingInformation.logo.size.height.doubleValue;
-                            definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
-                                params.brandingInformation.logo.size.metric.unsignedCharValue);
-                        }
+                    if (params.brandingInformation.logo.color != nil) {
+                        auto & definedValue_4 = definedValue_2.color.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.logo.color];
                     }
-                    if (params.brandingInformation.progressBar != nil) {
-                        auto & definedValue_2 = definedValue_0.progressBar.Emplace();
-                        if (params.brandingInformation.progressBar.imageUrl != nil) {
-                            auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.progressBar.imageUrl];
-                        }
-                        if (params.brandingInformation.progressBar.color != nil) {
-                            auto & definedValue_4 = definedValue_2.color.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.progressBar.color];
-                        }
-                        if (params.brandingInformation.progressBar.size != nil) {
-                            auto & definedValue_4 = definedValue_2.size.Emplace();
-                            definedValue_4.width = params.brandingInformation.progressBar.size.width.doubleValue;
-                            definedValue_4.height = params.brandingInformation.progressBar.size.height.doubleValue;
-                            definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
-                                params.brandingInformation.progressBar.size.metric.unsignedCharValue);
-                        }
-                    }
-                    if (params.brandingInformation.splash != nil) {
-                        auto & definedValue_2 = definedValue_0.splash.Emplace();
-                        if (params.brandingInformation.splash.imageUrl != nil) {
-                            auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.splash.imageUrl];
-                        }
-                        if (params.brandingInformation.splash.color != nil) {
-                            auto & definedValue_4 = definedValue_2.color.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.splash.color];
-                        }
-                        if (params.brandingInformation.splash.size != nil) {
-                            auto & definedValue_4 = definedValue_2.size.Emplace();
-                            definedValue_4.width = params.brandingInformation.splash.size.width.doubleValue;
-                            definedValue_4.height = params.brandingInformation.splash.size.height.doubleValue;
-                            definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
-                                params.brandingInformation.splash.size.metric.unsignedCharValue);
-                        }
-                    }
-                    if (params.brandingInformation.waterMark != nil) {
-                        auto & definedValue_2 = definedValue_0.waterMark.Emplace();
-                        if (params.brandingInformation.waterMark.imageUrl != nil) {
-                            auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.waterMark.imageUrl];
-                        }
-                        if (params.brandingInformation.waterMark.color != nil) {
-                            auto & definedValue_4 = definedValue_2.color.Emplace();
-                            definedValue_4 = [self asCharSpan:params.brandingInformation.waterMark.color];
-                        }
-                        if (params.brandingInformation.waterMark.size != nil) {
-                            auto & definedValue_4 = definedValue_2.size.Emplace();
-                            definedValue_4.width = params.brandingInformation.waterMark.size.width.doubleValue;
-                            definedValue_4.height = params.brandingInformation.waterMark.size.height.doubleValue;
-                            definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
-                                params.brandingInformation.waterMark.size.metric.unsignedCharValue);
-                        }
+                    if (params.brandingInformation.logo.size != nil) {
+                        auto & definedValue_4 = definedValue_2.size.Emplace();
+                        definedValue_4.width = params.brandingInformation.logo.size.width.doubleValue;
+                        definedValue_4.height = params.brandingInformation.logo.size.height.doubleValue;
+                        definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
+                            params.brandingInformation.logo.size.metric.unsignedCharValue);
                     }
                 }
+                if (params.brandingInformation.progressBar != nil) {
+                    auto & definedValue_2 = definedValue_0.progressBar.Emplace();
+                    if (params.brandingInformation.progressBar.imageUrl != nil) {
+                        auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.progressBar.imageUrl];
+                    }
+                    if (params.brandingInformation.progressBar.color != nil) {
+                        auto & definedValue_4 = definedValue_2.color.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.progressBar.color];
+                    }
+                    if (params.brandingInformation.progressBar.size != nil) {
+                        auto & definedValue_4 = definedValue_2.size.Emplace();
+                        definedValue_4.width = params.brandingInformation.progressBar.size.width.doubleValue;
+                        definedValue_4.height = params.brandingInformation.progressBar.size.height.doubleValue;
+                        definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
+                            params.brandingInformation.progressBar.size.metric.unsignedCharValue);
+                    }
+                }
+                if (params.brandingInformation.splash != nil) {
+                    auto & definedValue_2 = definedValue_0.splash.Emplace();
+                    if (params.brandingInformation.splash.imageUrl != nil) {
+                        auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.splash.imageUrl];
+                    }
+                    if (params.brandingInformation.splash.color != nil) {
+                        auto & definedValue_4 = definedValue_2.color.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.splash.color];
+                    }
+                    if (params.brandingInformation.splash.size != nil) {
+                        auto & definedValue_4 = definedValue_2.size.Emplace();
+                        definedValue_4.width = params.brandingInformation.splash.size.width.doubleValue;
+                        definedValue_4.height = params.brandingInformation.splash.size.height.doubleValue;
+                        definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
+                            params.brandingInformation.splash.size.metric.unsignedCharValue);
+                    }
+                }
+                if (params.brandingInformation.waterMark != nil) {
+                    auto & definedValue_2 = definedValue_0.waterMark.Emplace();
+                    if (params.brandingInformation.waterMark.imageUrl != nil) {
+                        auto & definedValue_4 = definedValue_2.imageUrl.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.waterMark.imageUrl];
+                    }
+                    if (params.brandingInformation.waterMark.color != nil) {
+                        auto & definedValue_4 = definedValue_2.color.Emplace();
+                        definedValue_4 = [self asCharSpan:params.brandingInformation.waterMark.color];
+                    }
+                    if (params.brandingInformation.waterMark.size != nil) {
+                        auto & definedValue_4 = definedValue_2.size.Emplace();
+                        definedValue_4.width = params.brandingInformation.waterMark.size.width.doubleValue;
+                        definedValue_4.height = params.brandingInformation.waterMark.size.height.doubleValue;
+                        definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(
+                            params.brandingInformation.waterMark.size.metric.unsignedCharValue);
+                    }
+                }
+            }
 
-                auto successFn = Callback<ContentLauncherClusterLaunchResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ContentLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ContentLauncherClusterLaunchResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ContentLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptHeaderWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeAcceptHeaderID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeAcceptHeaderID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeSupportedStreamingProtocolsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeSupportedStreamingProtocolsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeSupportedStreamingProtocolsID)
                                              params:params];
 }
 
@@ -16668,53 +16330,53 @@
                                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterContentLauncherID)
-                                  attributeId:@(MTRClusterContentLauncherAttributeSupportedStreamingProtocolsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterContentLauncherID)
+                                  attributeID:@(MTRClusterContentLauncherAttributeSupportedStreamingProtocolsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterContentLauncherID)
-                                        attributeId:@(MTRClusterContentLauncherAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterContentLauncherID)
+                                        attributeID:@(MTRClusterContentLauncherAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16742,30 +16404,28 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AudioOutput::Commands::SelectOutput::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AudioOutput::Commands::SelectOutput::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.index = params.index.unsignedCharValue;
+            }
+            request.index = params.index.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AudioOutputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AudioOutputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16777,88 +16437,86 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AudioOutput::Commands::RenameOutput::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AudioOutput::Commands::RenameOutput::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.index = params.index.unsignedCharValue;
-                request.name = [self asCharSpan:params.name];
+            }
+            request.index = params.index.unsignedCharValue;
+            request.name = [self asCharSpan:params.name];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AudioOutputCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AudioOutputCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOutputListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeOutputListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeOutputListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentOutputWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeCurrentOutputID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeCurrentOutputID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAudioOutputID)
-                                        attributeId:@(MTRClusterAudioOutputAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAudioOutputID)
+                                        attributeID:@(MTRClusterAudioOutputAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -16887,31 +16545,29 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ApplicationLauncher::Commands::LaunchApp::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ApplicationLauncher::Commands::LaunchApp::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
-                request.application.applicationId = [self asCharSpan:params.application.applicationId];
-                if (params.data != nil) {
-                    auto & definedValue_0 = request.data.Emplace();
-                    definedValue_0 = [self asByteSpan:params.data];
-                }
+            }
+            request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
+            request.application.applicationId = [self asCharSpan:params.application.applicationId];
+            if (params.data != nil) {
+                auto & definedValue_0 = request.data.Emplace();
+                definedValue_0 = [self asByteSpan:params.data];
+            }
 
-                auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16924,27 +16580,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ApplicationLauncher::Commands::StopApp::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ApplicationLauncher::Commands::StopApp::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
-                request.application.applicationId = [self asCharSpan:params.application.applicationId];
+            }
+            request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
+            request.application.applicationId = [self asCharSpan:params.application.applicationId];
 
-                auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -16957,44 +16611,42 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ApplicationLauncher::Commands::HideApp::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRApplicationLauncherClusterLauncherResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ApplicationLauncher::Commands::HideApp::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
-                request.application.applicationId = [self asCharSpan:params.application.applicationId];
+            }
+            request.application.catalogVendorId = params.application.catalogVendorId.unsignedShortValue;
+            request.application.applicationId = [self asCharSpan:params.application.applicationId];
 
-                auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<ApplicationLauncherClusterLauncherResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ApplicationLauncherCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCatalogListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeCatalogListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeCatalogListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentAppWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeCurrentAppID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeCurrentAppID)
                                              params:params];
 }
 
@@ -17007,53 +16659,53 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterApplicationLauncherID)
-                                  attributeId:@(MTRClusterApplicationLauncherAttributeCurrentAppID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterApplicationLauncherID)
+                                  attributeID:@(MTRClusterApplicationLauncherAttributeCurrentAppID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationLauncherID)
-                                        attributeId:@(MTRClusterApplicationLauncherAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationLauncherID)
+                                        attributeID:@(MTRClusterApplicationLauncherAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -17076,105 +16728,105 @@
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeVendorNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeVendorNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeVendorIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeVendorIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApplicationNameWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeApplicationNameID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeApplicationNameID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeProductIDWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeProductIDID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeProductIDID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApplicationWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeApplicationID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeApplicationID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStatusWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeStatusID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeStatusID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApplicationVersionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeApplicationVersionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeApplicationVersionID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAllowedVendorListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeAllowedVendorListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeAllowedVendorListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterApplicationBasicID)
-                                        attributeId:@(MTRClusterApplicationBasicAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterApplicationBasicID)
+                                        attributeID:@(MTRClusterApplicationBasicAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -17203,29 +16855,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRAccountLoginClusterGetSetupPINResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AccountLogin::Commands::GetSetupPIN::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRAccountLoginClusterGetSetupPINResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AccountLogin::Commands::GetSetupPIN::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.tempAccountIdentifier = [self asCharSpan:params.tempAccountIdentifier];
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.tempAccountIdentifier = [self asCharSpan:params.tempAccountIdentifier];
 
-                auto successFn = Callback<AccountLoginClusterGetSetupPINResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<AccountLoginClusterGetSetupPINResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -17237,34 +16887,32 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AccountLogin::Commands::Login::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AccountLogin::Commands::Login::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
-                request.tempAccountIdentifier = [self asCharSpan:params.tempAccountIdentifier];
-                request.setupPIN = [self asCharSpan:params.setupPIN];
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
+            request.tempAccountIdentifier = [self asCharSpan:params.tempAccountIdentifier];
+            request.setupPIN = [self asCharSpan:params.setupPIN];
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -17285,73 +16933,71 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                AccountLogin::Commands::Logout::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            AccountLogin::Commands::Logout::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::AccountLoginCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccountLoginID)
-                                        attributeId:@(MTRClusterAccountLoginAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccountLoginID)
+                                        attributeID:@(MTRClusterAccountLoginAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccountLoginID)
-                                        attributeId:@(MTRClusterAccountLoginAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccountLoginID)
+                                        attributeID:@(MTRClusterAccountLoginAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccountLoginID)
-                                        attributeId:@(MTRClusterAccountLoginAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccountLoginID)
+                                        attributeID:@(MTRClusterAccountLoginAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccountLoginID)
-                                        attributeId:@(MTRClusterAccountLoginAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccountLoginID)
+                                        attributeID:@(MTRClusterAccountLoginAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterAccountLoginID)
-                                        attributeId:@(MTRClusterAccountLoginAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterAccountLoginID)
+                                        attributeID:@(MTRClusterAccountLoginAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -17388,29 +17034,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ElectricalMeasurement::Commands::GetProfileInfoCommand::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ElectricalMeasurement::Commands::GetProfileInfoCommand::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ElectricalMeasurementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ElectricalMeasurementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -17422,505 +17066,503 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.attributeId = params.attributeId.unsignedShortValue;
-                request.startTime = params.startTime.unsignedIntValue;
-                request.numberOfIntervals = params.numberOfIntervals.unsignedCharValue;
+            }
+            request.attributeId = params.attributeId.unsignedShortValue;
+            request.startTime = params.startTime.unsignedIntValue;
+            request.numberOfIntervals = params.numberOfIntervals.unsignedCharValue;
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::ElectricalMeasurementCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::ElectricalMeasurementCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasurementTypeWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasurementTypeID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasurementTypeID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcVoltageMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcVoltageMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcVoltageMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcVoltageMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcVoltageMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcVoltageMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcCurrentMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcCurrentMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcCurrentMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcCurrentMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcCurrentMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcCurrentMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcPowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcPowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcPowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcPowerMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcPowerMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcPowerMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcPowerMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcPowerMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcPowerMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcVoltageMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcVoltageMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcVoltageMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcVoltageDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcVoltageDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcVoltageDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcCurrentMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcCurrentMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcCurrentMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcCurrentDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcCurrentDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcCurrentDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcPowerMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcPowerMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcPowerMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeDcPowerDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeDcPowerDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeDcPowerDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcFrequencyWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcFrequencyID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcFrequencyID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcFrequencyMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcFrequencyMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNeutralCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeNeutralCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeNeutralCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTotalActivePowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeTotalActivePowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeTotalActivePowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTotalReactivePowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeTotalReactivePowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeTotalReactivePowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTotalApparentPowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeTotalApparentPowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeTotalApparentPowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured1stHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured1stHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured1stHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured3rdHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured3rdHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured3rdHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured5thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured5thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured5thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured7thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured7thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured7thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured9thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured9thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured9thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasured11thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasured11thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasured11thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase1stHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase1stHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase1stHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase3rdHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase3rdHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase3rdHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase5thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase5thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase5thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase7thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase7thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase7thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase9thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase9thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase9thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeMeasuredPhase11thHarmonicCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase11thHarmonicCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeMeasuredPhase11thHarmonicCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcFrequencyMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcFrequencyMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcFrequencyDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcFrequencyDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcFrequencyDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePowerMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePowerMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePowerDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePowerDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeHarmonicCurrentMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeHarmonicCurrentMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeHarmonicCurrentMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePhaseHarmonicCurrentMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePhaseHarmonicCurrentMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePhaseHarmonicCurrentMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstantaneousVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeInstantaneousVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeInstantaneousVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstantaneousLineCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeInstantaneousLineCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeInstantaneousLineCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstantaneousActiveCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeInstantaneousActiveCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeInstantaneousActiveCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstantaneousReactiveCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeInstantaneousReactiveCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeInstantaneousReactiveCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInstantaneousPowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeInstantaneousPowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeInstantaneousPowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMinWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMinID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMinID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMaxWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReactivePowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeReactivePowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeReactivePowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApparentPowerWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeApparentPowerID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeApparentPowerID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerFactorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePowerFactorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePowerFactorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsVoltageMeasurementPeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodID)
                                              params:params];
 }
 
@@ -17935,21 +17577,21 @@
                                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsUnderVoltageCounterWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterID)
                                              params:params];
 }
 
@@ -17964,21 +17606,21 @@
                                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeOverVoltagePeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodID)
                                              params:params];
 }
 
@@ -17993,21 +17635,21 @@
                                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeUnderVoltagePeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodID)
                                              params:params];
 }
 
@@ -18022,21 +17664,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSagPeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodID)
                                              params:params];
 }
 
@@ -18049,21 +17691,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSwellPeriodWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodID)
                                              params:params];
 }
 
@@ -18078,69 +17720,69 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcVoltageMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcVoltageMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcVoltageMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcVoltageDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcVoltageDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcVoltageDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcCurrentMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcCurrentMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcCurrentMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcCurrentDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcCurrentDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcCurrentDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcPowerMultiplierWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcPowerMultiplierID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcPowerMultiplierID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcPowerDivisorWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcPowerDivisorID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcPowerDivisorID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOverloadAlarmsMaskWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeOverloadAlarmsMaskID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeOverloadAlarmsMaskID)
                                              params:params];
 }
 
@@ -18153,37 +17795,37 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeOverloadAlarmsMaskID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeOverloadAlarmsMaskID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVoltageOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeVoltageOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeVoltageOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCurrentOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeCurrentOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeCurrentOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcOverloadAlarmsMaskWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcOverloadAlarmsMaskID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcOverloadAlarmsMaskID)
                                              params:params];
 }
 
@@ -18196,487 +17838,487 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterElectricalMeasurementID)
-                                  attributeId:@(MTRClusterElectricalMeasurementAttributeAcOverloadAlarmsMaskID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterElectricalMeasurementID)
+                                  attributeID:@(MTRClusterElectricalMeasurementAttributeAcOverloadAlarmsMaskID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcVoltageOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcVoltageOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcVoltageOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcCurrentOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcCurrentOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcCurrentOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcActivePowerOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcActivePowerOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcActivePowerOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcReactivePowerOverloadWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcReactivePowerOverloadID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcReactivePowerOverloadID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsOverVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsUnderVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeOverVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeUnderVoltageWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltageID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltageID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSagWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSwellWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLineCurrentPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeLineCurrentPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeLineCurrentPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveCurrentPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActiveCurrentPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActiveCurrentPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReactiveCurrentPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeReactiveCurrentPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeReactiveCurrentPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltagePhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltagePhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltagePhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMinPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMaxPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMinPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMaxPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMinPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMinPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMinPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMaxPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReactivePowerPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeReactivePowerPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeReactivePowerPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApparentPowerPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeApparentPowerPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeApparentPowerPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerFactorPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePowerFactorPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePowerFactorPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsVoltageMeasurementPeriodPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
     return [self.device
-        readAttributeWithEndpointId:@(_endpoint)
-                          clusterId:@(MTRClusterElectricalMeasurementID)
-                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodPhaseBID)
+        readAttributeWithEndpointID:@(_endpoint)
+                          clusterID:@(MTRClusterElectricalMeasurementID)
+                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodPhaseBID)
                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsOverVoltageCounterPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageCounterPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageCounterPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsUnderVoltageCounterPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeOverVoltagePeriodPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeUnderVoltagePeriodPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSagPeriodPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSwellPeriodPhaseBWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodPhaseBID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodPhaseBID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLineCurrentPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeLineCurrentPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeLineCurrentPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActiveCurrentPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActiveCurrentPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActiveCurrentPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReactiveCurrentPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeReactiveCurrentPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeReactiveCurrentPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltagePhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltagePhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltagePhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMinPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMinPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageMaxPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageMaxPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMinPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMinPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsCurrentMaxPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsCurrentMaxPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMinPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMinPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMinPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeActivePowerMaxPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeActivePowerMaxPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeReactivePowerPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeReactivePowerPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeReactivePowerPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeApparentPowerPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeApparentPowerPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeApparentPowerPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributePowerFactorPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributePowerFactorPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributePowerFactorPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsVoltageMeasurementPeriodPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
     return [self.device
-        readAttributeWithEndpointId:@(_endpoint)
-                          clusterId:@(MTRClusterElectricalMeasurementID)
-                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodPhaseCID)
+        readAttributeWithEndpointID:@(_endpoint)
+                          clusterID:@(MTRClusterElectricalMeasurementID)
+                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsVoltageMeasurementPeriodPhaseCID)
                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsOverVoltageCounterPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageCounterPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsOverVoltageCounterPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAverageRmsUnderVoltageCounterPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAverageRmsUnderVoltageCounterPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeOverVoltagePeriodPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeOverVoltagePeriodPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsExtremeUnderVoltagePeriodPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsExtremeUnderVoltagePeriodPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSagPeriodPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSagPeriodPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRmsVoltageSwellPeriodPhaseCWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodPhaseCID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeRmsVoltageSwellPeriodPhaseCID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterElectricalMeasurementID)
-                                        attributeId:@(MTRClusterElectricalMeasurementAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterElectricalMeasurementID)
+                                        attributeID:@(MTRClusterElectricalMeasurementAttributeClusterRevisionID)
                                              params:params];
 }
 
@@ -18713,29 +18355,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::Test::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::Test::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18756,29 +18396,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestNotHandled::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestNotHandled::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18801,25 +18439,23 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestSpecificResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestSpecific::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestSpecificResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestSpecific::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterTestSpecificResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestSpecificResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18840,29 +18476,27 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestUnknownCommand::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestUnknownCommand::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18875,27 +18509,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestAddArgumentsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestAddArguments::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestAddArgumentsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestAddArguments::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1 = params.arg1.unsignedCharValue;
-                request.arg2 = params.arg2.unsignedCharValue;
+            }
+            request.arg1 = params.arg1.unsignedCharValue;
+            request.arg2 = params.arg2.unsignedCharValue;
 
-                auto successFn = Callback<TestClusterClusterTestAddArgumentsResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestAddArgumentsResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18908,26 +18540,24 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestSimpleArgumentResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestSimpleArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestSimpleArgumentResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestSimpleArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1 = params.arg1.boolValue;
+            }
+            request.arg1 = params.arg1.boolValue;
 
-                auto successFn = Callback<TestClusterClusterTestSimpleArgumentResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestSimpleArgumentResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -18941,237 +18571,233 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestStructArrayArgumentResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestStructArrayArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestStructArrayArgumentResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestStructArrayArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg1.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg1.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
+                        if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterNestedStructList class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
-                            if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterNestedStructList class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRTestClusterClusterNestedStructList *) params.arg1[i_0];
-                            listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].b = element_0.b.boolValue;
-                            listHolder_0->mList[i_0].c.a = element_0.c.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].c.b = element_0.c.b.boolValue;
-                            listHolder_0->mList[i_0].c.c
-                                = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.c)>>(
-                                    element_0.c.c.unsignedCharValue);
-                            listHolder_0->mList[i_0].c.d = [self asByteSpan:element_0.c.d];
-                            listHolder_0->mList[i_0].c.e = [self asCharSpan:element_0.c.e];
-                            listHolder_0->mList[i_0].c.f
-                                = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.f)>>(
-                                    element_0.c.f.unsignedCharValue);
-                            listHolder_0->mList[i_0].c.g = element_0.c.g.floatValue;
-                            listHolder_0->mList[i_0].c.h = element_0.c.h.doubleValue;
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].d)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.d.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.d.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                        auto element_0 = (MTRTestClusterClusterNestedStructList *) params.arg1[i_0];
+                        listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].b = element_0.b.boolValue;
+                        listHolder_0->mList[i_0].c.a = element_0.c.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].c.b = element_0.c.b.boolValue;
+                        listHolder_0->mList[i_0].c.c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.c)>>(
+                            element_0.c.c.unsignedCharValue);
+                        listHolder_0->mList[i_0].c.d = [self asByteSpan:element_0.c.d];
+                        listHolder_0->mList[i_0].c.e = [self asCharSpan:element_0.c.e];
+                        listHolder_0->mList[i_0].c.f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.f)>>(
+                            element_0.c.f.unsignedCharValue);
+                        listHolder_0->mList[i_0].c.g = element_0.c.g.floatValue;
+                        listHolder_0->mList[i_0].c.h = element_0.c.h.doubleValue;
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].d)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.d.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.d.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.d.count; ++i_2) {
+                                    if (![element_0.d[i_2] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
+                                        // Wrong kind of value.
                                         return CHIP_ERROR_INVALID_ARGUMENT;
                                     }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.d.count; ++i_2) {
-                                        if (![element_0.d[i_2] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (MTRTestClusterClusterSimpleStruct *) element_0.d[i_2];
-                                        listHolder_2->mList[i_2].a = element_2.a.unsignedCharValue;
-                                        listHolder_2->mList[i_2].b = element_2.b.boolValue;
-                                        listHolder_2->mList[i_2].c
-                                            = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].c)>>(
-                                                element_2.c.unsignedCharValue);
-                                        listHolder_2->mList[i_2].d = [self asByteSpan:element_2.d];
-                                        listHolder_2->mList[i_2].e = [self asCharSpan:element_2.e];
-                                        listHolder_2->mList[i_2].f
-                                            = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].f)>>(
-                                                element_2.f.unsignedCharValue);
-                                        listHolder_2->mList[i_2].g = element_2.g.floatValue;
-                                        listHolder_2->mList[i_2].h = element_2.h.doubleValue;
-                                    }
-                                    listHolder_0->mList[i_0].d = ListType_2(listHolder_2->mList, element_0.d.count);
-                                } else {
-                                    listHolder_0->mList[i_0].d = ListType_2();
+                                    auto element_2 = (MTRTestClusterClusterSimpleStruct *) element_0.d[i_2];
+                                    listHolder_2->mList[i_2].a = element_2.a.unsignedCharValue;
+                                    listHolder_2->mList[i_2].b = element_2.b.boolValue;
+                                    listHolder_2->mList[i_2].c
+                                        = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].c)>>(
+                                            element_2.c.unsignedCharValue);
+                                    listHolder_2->mList[i_2].d = [self asByteSpan:element_2.d];
+                                    listHolder_2->mList[i_2].e = [self asCharSpan:element_2.e];
+                                    listHolder_2->mList[i_2].f
+                                        = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].f)>>(
+                                            element_2.f.unsignedCharValue);
+                                    listHolder_2->mList[i_2].g = element_2.g.floatValue;
+                                    listHolder_2->mList[i_2].h = element_2.h.doubleValue;
                                 }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].e)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.e.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.e.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.e.count; ++i_2) {
-                                        if (![element_0.e[i_2] isKindOfClass:[NSNumber class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSNumber *) element_0.e[i_2];
-                                        listHolder_2->mList[i_2] = element_2.unsignedIntValue;
-                                    }
-                                    listHolder_0->mList[i_0].e = ListType_2(listHolder_2->mList, element_0.e.count);
-                                } else {
-                                    listHolder_0->mList[i_0].e = ListType_2();
-                                }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.f.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.f.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.f.count; ++i_2) {
-                                        if (![element_0.f[i_2] isKindOfClass:[NSData class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSData *) element_0.f[i_2];
-                                        listHolder_2->mList[i_2] = [self asByteSpan:element_2];
-                                    }
-                                    listHolder_0->mList[i_0].f = ListType_2(listHolder_2->mList, element_0.f.count);
-                                } else {
-                                    listHolder_0->mList[i_0].f = ListType_2();
-                                }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].g)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.g.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.g.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.g.count; ++i_2) {
-                                        if (![element_0.g[i_2] isKindOfClass:[NSNumber class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSNumber *) element_0.g[i_2];
-                                        listHolder_2->mList[i_2] = element_2.unsignedCharValue;
-                                    }
-                                    listHolder_0->mList[i_0].g = ListType_2(listHolder_2->mList, element_0.g.count);
-                                } else {
-                                    listHolder_0->mList[i_0].g = ListType_2();
-                                }
+                                listHolder_0->mList[i_0].d = ListType_2(listHolder_2->mList, element_0.d.count);
+                            } else {
+                                listHolder_0->mList[i_0].d = ListType_2();
                             }
                         }
-                        request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
-                    } else {
-                        request.arg1 = ListType_0();
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].e)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.e.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.e.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.e.count; ++i_2) {
+                                    if (![element_0.e[i_2] isKindOfClass:[NSNumber class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSNumber *) element_0.e[i_2];
+                                    listHolder_2->mList[i_2] = element_2.unsignedIntValue;
+                                }
+                                listHolder_0->mList[i_0].e = ListType_2(listHolder_2->mList, element_0.e.count);
+                            } else {
+                                listHolder_0->mList[i_0].e = ListType_2();
+                            }
+                        }
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.f.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.f.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.f.count; ++i_2) {
+                                    if (![element_0.f[i_2] isKindOfClass:[NSData class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSData *) element_0.f[i_2];
+                                    listHolder_2->mList[i_2] = [self asByteSpan:element_2];
+                                }
+                                listHolder_0->mList[i_0].f = ListType_2(listHolder_2->mList, element_0.f.count);
+                            } else {
+                                listHolder_0->mList[i_0].f = ListType_2();
+                            }
+                        }
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].g)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.g.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.g.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.g.count; ++i_2) {
+                                    if (![element_0.g[i_2] isKindOfClass:[NSNumber class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSNumber *) element_0.g[i_2];
+                                    listHolder_2->mList[i_2] = element_2.unsignedCharValue;
+                                }
+                                listHolder_0->mList[i_0].g = ListType_2(listHolder_2->mList, element_0.g.count);
+                            } else {
+                                listHolder_0->mList[i_0].g = ListType_2();
+                            }
+                        }
                     }
+                    request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
+                } else {
+                    request.arg1 = ListType_0();
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg2)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg2.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg2.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg2)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg2.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg2.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg2.count; ++i_0) {
+                        if (![params.arg2[i_0] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg2.count; ++i_0) {
-                            if (![params.arg2[i_0] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRTestClusterClusterSimpleStruct *) params.arg2[i_0];
-                            listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].b = element_0.b.boolValue;
-                            listHolder_0->mList[i_0].c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c)>>(
-                                element_0.c.unsignedCharValue);
-                            listHolder_0->mList[i_0].d = [self asByteSpan:element_0.d];
-                            listHolder_0->mList[i_0].e = [self asCharSpan:element_0.e];
-                            listHolder_0->mList[i_0].f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>>(
-                                element_0.f.unsignedCharValue);
-                            listHolder_0->mList[i_0].g = element_0.g.floatValue;
-                            listHolder_0->mList[i_0].h = element_0.h.doubleValue;
-                        }
-                        request.arg2 = ListType_0(listHolder_0->mList, params.arg2.count);
-                    } else {
-                        request.arg2 = ListType_0();
+                        auto element_0 = (MTRTestClusterClusterSimpleStruct *) params.arg2[i_0];
+                        listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].b = element_0.b.boolValue;
+                        listHolder_0->mList[i_0].c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c)>>(
+                            element_0.c.unsignedCharValue);
+                        listHolder_0->mList[i_0].d = [self asByteSpan:element_0.d];
+                        listHolder_0->mList[i_0].e = [self asCharSpan:element_0.e];
+                        listHolder_0->mList[i_0].f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>>(
+                            element_0.f.unsignedCharValue);
+                        listHolder_0->mList[i_0].g = element_0.g.floatValue;
+                        listHolder_0->mList[i_0].h = element_0.h.doubleValue;
                     }
+                    request.arg2 = ListType_0(listHolder_0->mList, params.arg2.count);
+                } else {
+                    request.arg2 = ListType_0();
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg3)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg3.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg3.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg3)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg3.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg3.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg3.count; ++i_0) {
+                        if (![params.arg3[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg3.count; ++i_0) {
-                            if (![params.arg3[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.arg3[i_0];
-                            listHolder_0->mList[i_0] = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0])>>(
-                                element_0.unsignedCharValue);
-                        }
-                        request.arg3 = ListType_0(listHolder_0->mList, params.arg3.count);
-                    } else {
-                        request.arg3 = ListType_0();
+                        auto element_0 = (NSNumber *) params.arg3[i_0];
+                        listHolder_0->mList[i_0]
+                            = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0])>>(element_0.unsignedCharValue);
                     }
+                    request.arg3 = ListType_0(listHolder_0->mList, params.arg3.count);
+                } else {
+                    request.arg3 = ListType_0();
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg4)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg4.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg4.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg4)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg4.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg4.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg4.count; ++i_0) {
+                        if (![params.arg4[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg4.count; ++i_0) {
-                            if (![params.arg4[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.arg4[i_0];
-                            listHolder_0->mList[i_0] = element_0.boolValue;
-                        }
-                        request.arg4 = ListType_0(listHolder_0->mList, params.arg4.count);
-                    } else {
-                        request.arg4 = ListType_0();
+                        auto element_0 = (NSNumber *) params.arg4[i_0];
+                        listHolder_0->mList[i_0] = element_0.boolValue;
                     }
+                    request.arg4 = ListType_0(listHolder_0->mList, params.arg4.count);
+                } else {
+                    request.arg4 = ListType_0();
                 }
-                request.arg5 = static_cast<std::remove_reference_t<decltype(request.arg5)>>(params.arg5.unsignedCharValue);
-                request.arg6 = params.arg6.boolValue;
+            }
+            request.arg5 = static_cast<std::remove_reference_t<decltype(request.arg5)>>(params.arg5.unsignedCharValue);
+            request.arg6 = params.arg6.boolValue;
 
-                auto successFn = Callback<TestClusterClusterTestStructArrayArgumentResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestStructArrayArgumentResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19184,33 +18810,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestStructArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestStructArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1.a = params.arg1.a.unsignedCharValue;
-                request.arg1.b = params.arg1.b.boolValue;
-                request.arg1.c = static_cast<std::remove_reference_t<decltype(request.arg1.c)>>(params.arg1.c.unsignedCharValue);
-                request.arg1.d = [self asByteSpan:params.arg1.d];
-                request.arg1.e = [self asCharSpan:params.arg1.e];
-                request.arg1.f = static_cast<std::remove_reference_t<decltype(request.arg1.f)>>(params.arg1.f.unsignedCharValue);
-                request.arg1.g = params.arg1.g.floatValue;
-                request.arg1.h = params.arg1.h.doubleValue;
+            }
+            request.arg1.a = params.arg1.a.unsignedCharValue;
+            request.arg1.b = params.arg1.b.boolValue;
+            request.arg1.c = static_cast<std::remove_reference_t<decltype(request.arg1.c)>>(params.arg1.c.unsignedCharValue);
+            request.arg1.d = [self asByteSpan:params.arg1.d];
+            request.arg1.e = [self asCharSpan:params.arg1.e];
+            request.arg1.f = static_cast<std::remove_reference_t<decltype(request.arg1.f)>>(params.arg1.f.unsignedCharValue);
+            request.arg1.g = params.arg1.g.floatValue;
+            request.arg1.h = params.arg1.h.doubleValue;
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19223,37 +18847,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestNestedStructArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestNestedStructArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1.a = params.arg1.a.unsignedCharValue;
-                request.arg1.b = params.arg1.b.boolValue;
-                request.arg1.c.a = params.arg1.c.a.unsignedCharValue;
-                request.arg1.c.b = params.arg1.c.b.boolValue;
-                request.arg1.c.c
-                    = static_cast<std::remove_reference_t<decltype(request.arg1.c.c)>>(params.arg1.c.c.unsignedCharValue);
-                request.arg1.c.d = [self asByteSpan:params.arg1.c.d];
-                request.arg1.c.e = [self asCharSpan:params.arg1.c.e];
-                request.arg1.c.f
-                    = static_cast<std::remove_reference_t<decltype(request.arg1.c.f)>>(params.arg1.c.f.unsignedCharValue);
-                request.arg1.c.g = params.arg1.c.g.floatValue;
-                request.arg1.c.h = params.arg1.c.h.doubleValue;
+            }
+            request.arg1.a = params.arg1.a.unsignedCharValue;
+            request.arg1.b = params.arg1.b.boolValue;
+            request.arg1.c.a = params.arg1.c.a.unsignedCharValue;
+            request.arg1.c.b = params.arg1.c.b.boolValue;
+            request.arg1.c.c = static_cast<std::remove_reference_t<decltype(request.arg1.c.c)>>(params.arg1.c.c.unsignedCharValue);
+            request.arg1.c.d = [self asByteSpan:params.arg1.c.d];
+            request.arg1.c.e = [self asCharSpan:params.arg1.c.e];
+            request.arg1.c.f = static_cast<std::remove_reference_t<decltype(request.arg1.c.f)>>(params.arg1.c.f.unsignedCharValue);
+            request.arg1.c.g = params.arg1.c.g.floatValue;
+            request.arg1.c.h = params.arg1.c.h.doubleValue;
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19266,56 +18886,54 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestListStructArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestListStructArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg1.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg1.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
+                        if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
-                            if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRTestClusterClusterSimpleStruct *) params.arg1[i_0];
-                            listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].b = element_0.b.boolValue;
-                            listHolder_0->mList[i_0].c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c)>>(
-                                element_0.c.unsignedCharValue);
-                            listHolder_0->mList[i_0].d = [self asByteSpan:element_0.d];
-                            listHolder_0->mList[i_0].e = [self asCharSpan:element_0.e];
-                            listHolder_0->mList[i_0].f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>>(
-                                element_0.f.unsignedCharValue);
-                            listHolder_0->mList[i_0].g = element_0.g.floatValue;
-                            listHolder_0->mList[i_0].h = element_0.h.doubleValue;
-                        }
-                        request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
-                    } else {
-                        request.arg1 = ListType_0();
+                        auto element_0 = (MTRTestClusterClusterSimpleStruct *) params.arg1[i_0];
+                        listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].b = element_0.b.boolValue;
+                        listHolder_0->mList[i_0].c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c)>>(
+                            element_0.c.unsignedCharValue);
+                        listHolder_0->mList[i_0].d = [self asByteSpan:element_0.d];
+                        listHolder_0->mList[i_0].e = [self asCharSpan:element_0.e];
+                        listHolder_0->mList[i_0].f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>>(
+                            element_0.f.unsignedCharValue);
+                        listHolder_0->mList[i_0].g = element_0.g.floatValue;
+                        listHolder_0->mList[i_0].h = element_0.h.doubleValue;
                     }
+                    request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
+                } else {
+                    request.arg1 = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19328,47 +18946,45 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestListInt8UArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestListInt8UArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg1.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg1.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
+                        if (![params.arg1[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
-                            if (![params.arg1[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.arg1[i_0];
-                            listHolder_0->mList[i_0] = element_0.unsignedCharValue;
-                        }
-                        request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
-                    } else {
-                        request.arg1 = ListType_0();
+                        auto element_0 = (NSNumber *) params.arg1[i_0];
+                        listHolder_0->mList[i_0] = element_0.unsignedCharValue;
                     }
+                    request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
+                } else {
+                    request.arg1 = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19381,134 +18997,130 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestNestedStructListArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestNestedStructListArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1.a = params.arg1.a.unsignedCharValue;
-                request.arg1.b = params.arg1.b.boolValue;
-                request.arg1.c.a = params.arg1.c.a.unsignedCharValue;
-                request.arg1.c.b = params.arg1.c.b.boolValue;
-                request.arg1.c.c
-                    = static_cast<std::remove_reference_t<decltype(request.arg1.c.c)>>(params.arg1.c.c.unsignedCharValue);
-                request.arg1.c.d = [self asByteSpan:params.arg1.c.d];
-                request.arg1.c.e = [self asCharSpan:params.arg1.c.e];
-                request.arg1.c.f
-                    = static_cast<std::remove_reference_t<decltype(request.arg1.c.f)>>(params.arg1.c.f.unsignedCharValue);
-                request.arg1.c.g = params.arg1.c.g.floatValue;
-                request.arg1.c.h = params.arg1.c.h.doubleValue;
-                {
-                    using ListType_1 = std::remove_reference_t<decltype(request.arg1.d)>;
-                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                    if (params.arg1.d.count != 0) {
-                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.d.count);
-                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            request.arg1.a = params.arg1.a.unsignedCharValue;
+            request.arg1.b = params.arg1.b.boolValue;
+            request.arg1.c.a = params.arg1.c.a.unsignedCharValue;
+            request.arg1.c.b = params.arg1.c.b.boolValue;
+            request.arg1.c.c = static_cast<std::remove_reference_t<decltype(request.arg1.c.c)>>(params.arg1.c.c.unsignedCharValue);
+            request.arg1.c.d = [self asByteSpan:params.arg1.c.d];
+            request.arg1.c.e = [self asCharSpan:params.arg1.c.e];
+            request.arg1.c.f = static_cast<std::remove_reference_t<decltype(request.arg1.c.f)>>(params.arg1.c.f.unsignedCharValue);
+            request.arg1.c.g = params.arg1.c.g.floatValue;
+            request.arg1.c.h = params.arg1.c.h.doubleValue;
+            {
+                using ListType_1 = std::remove_reference_t<decltype(request.arg1.d)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (params.arg1.d.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.d.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < params.arg1.d.count; ++i_1) {
+                        if (![params.arg1.d[i_1] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_1);
-                        for (size_t i_1 = 0; i_1 < params.arg1.d.count; ++i_1) {
-                            if (![params.arg1.d[i_1] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_1 = (MTRTestClusterClusterSimpleStruct *) params.arg1.d[i_1];
-                            listHolder_1->mList[i_1].a = element_1.a.unsignedCharValue;
-                            listHolder_1->mList[i_1].b = element_1.b.boolValue;
-                            listHolder_1->mList[i_1].c = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].c)>>(
-                                element_1.c.unsignedCharValue);
-                            listHolder_1->mList[i_1].d = [self asByteSpan:element_1.d];
-                            listHolder_1->mList[i_1].e = [self asCharSpan:element_1.e];
-                            listHolder_1->mList[i_1].f = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].f)>>(
-                                element_1.f.unsignedCharValue);
-                            listHolder_1->mList[i_1].g = element_1.g.floatValue;
-                            listHolder_1->mList[i_1].h = element_1.h.doubleValue;
-                        }
-                        request.arg1.d = ListType_1(listHolder_1->mList, params.arg1.d.count);
-                    } else {
-                        request.arg1.d = ListType_1();
+                        auto element_1 = (MTRTestClusterClusterSimpleStruct *) params.arg1.d[i_1];
+                        listHolder_1->mList[i_1].a = element_1.a.unsignedCharValue;
+                        listHolder_1->mList[i_1].b = element_1.b.boolValue;
+                        listHolder_1->mList[i_1].c = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].c)>>(
+                            element_1.c.unsignedCharValue);
+                        listHolder_1->mList[i_1].d = [self asByteSpan:element_1.d];
+                        listHolder_1->mList[i_1].e = [self asCharSpan:element_1.e];
+                        listHolder_1->mList[i_1].f = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].f)>>(
+                            element_1.f.unsignedCharValue);
+                        listHolder_1->mList[i_1].g = element_1.g.floatValue;
+                        listHolder_1->mList[i_1].h = element_1.h.doubleValue;
                     }
+                    request.arg1.d = ListType_1(listHolder_1->mList, params.arg1.d.count);
+                } else {
+                    request.arg1.d = ListType_1();
                 }
-                {
-                    using ListType_1 = std::remove_reference_t<decltype(request.arg1.e)>;
-                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                    if (params.arg1.e.count != 0) {
-                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.e.count);
-                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            {
+                using ListType_1 = std::remove_reference_t<decltype(request.arg1.e)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (params.arg1.e.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.e.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < params.arg1.e.count; ++i_1) {
+                        if (![params.arg1.e[i_1] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_1);
-                        for (size_t i_1 = 0; i_1 < params.arg1.e.count; ++i_1) {
-                            if (![params.arg1.e[i_1] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_1 = (NSNumber *) params.arg1.e[i_1];
-                            listHolder_1->mList[i_1] = element_1.unsignedIntValue;
-                        }
-                        request.arg1.e = ListType_1(listHolder_1->mList, params.arg1.e.count);
-                    } else {
-                        request.arg1.e = ListType_1();
+                        auto element_1 = (NSNumber *) params.arg1.e[i_1];
+                        listHolder_1->mList[i_1] = element_1.unsignedIntValue;
                     }
+                    request.arg1.e = ListType_1(listHolder_1->mList, params.arg1.e.count);
+                } else {
+                    request.arg1.e = ListType_1();
                 }
-                {
-                    using ListType_1 = std::remove_reference_t<decltype(request.arg1.f)>;
-                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                    if (params.arg1.f.count != 0) {
-                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.f.count);
-                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            {
+                using ListType_1 = std::remove_reference_t<decltype(request.arg1.f)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (params.arg1.f.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.f.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < params.arg1.f.count; ++i_1) {
+                        if (![params.arg1.f[i_1] isKindOfClass:[NSData class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_1);
-                        for (size_t i_1 = 0; i_1 < params.arg1.f.count; ++i_1) {
-                            if (![params.arg1.f[i_1] isKindOfClass:[NSData class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_1 = (NSData *) params.arg1.f[i_1];
-                            listHolder_1->mList[i_1] = [self asByteSpan:element_1];
-                        }
-                        request.arg1.f = ListType_1(listHolder_1->mList, params.arg1.f.count);
-                    } else {
-                        request.arg1.f = ListType_1();
+                        auto element_1 = (NSData *) params.arg1.f[i_1];
+                        listHolder_1->mList[i_1] = [self asByteSpan:element_1];
                     }
+                    request.arg1.f = ListType_1(listHolder_1->mList, params.arg1.f.count);
+                } else {
+                    request.arg1.f = ListType_1();
                 }
-                {
-                    using ListType_1 = std::remove_reference_t<decltype(request.arg1.g)>;
-                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                    if (params.arg1.g.count != 0) {
-                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.g.count);
-                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            {
+                using ListType_1 = std::remove_reference_t<decltype(request.arg1.g)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (params.arg1.g.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.arg1.g.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < params.arg1.g.count; ++i_1) {
+                        if (![params.arg1.g[i_1] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_1);
-                        for (size_t i_1 = 0; i_1 < params.arg1.g.count; ++i_1) {
-                            if (![params.arg1.g[i_1] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_1 = (NSNumber *) params.arg1.g[i_1];
-                            listHolder_1->mList[i_1] = element_1.unsignedCharValue;
-                        }
-                        request.arg1.g = ListType_1(listHolder_1->mList, params.arg1.g.count);
-                    } else {
-                        request.arg1.g = ListType_1();
+                        auto element_1 = (NSNumber *) params.arg1.g[i_1];
+                        listHolder_1->mList[i_1] = element_1.unsignedCharValue;
                     }
+                    request.arg1.g = ListType_1(listHolder_1->mList, params.arg1.g.count);
+                } else {
+                    request.arg1.g = ListType_1();
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19522,159 +19134,155 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestListNestedStructListArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterBooleanResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestListNestedStructListArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg1.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg1.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
+                        if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterNestedStructList class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
-                            if (![params.arg1[i_0] isKindOfClass:[MTRTestClusterClusterNestedStructList class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (MTRTestClusterClusterNestedStructList *) params.arg1[i_0];
-                            listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].b = element_0.b.boolValue;
-                            listHolder_0->mList[i_0].c.a = element_0.c.a.unsignedCharValue;
-                            listHolder_0->mList[i_0].c.b = element_0.c.b.boolValue;
-                            listHolder_0->mList[i_0].c.c
-                                = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.c)>>(
-                                    element_0.c.c.unsignedCharValue);
-                            listHolder_0->mList[i_0].c.d = [self asByteSpan:element_0.c.d];
-                            listHolder_0->mList[i_0].c.e = [self asCharSpan:element_0.c.e];
-                            listHolder_0->mList[i_0].c.f
-                                = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.f)>>(
-                                    element_0.c.f.unsignedCharValue);
-                            listHolder_0->mList[i_0].c.g = element_0.c.g.floatValue;
-                            listHolder_0->mList[i_0].c.h = element_0.c.h.doubleValue;
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].d)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.d.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.d.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                        auto element_0 = (MTRTestClusterClusterNestedStructList *) params.arg1[i_0];
+                        listHolder_0->mList[i_0].a = element_0.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].b = element_0.b.boolValue;
+                        listHolder_0->mList[i_0].c.a = element_0.c.a.unsignedCharValue;
+                        listHolder_0->mList[i_0].c.b = element_0.c.b.boolValue;
+                        listHolder_0->mList[i_0].c.c = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.c)>>(
+                            element_0.c.c.unsignedCharValue);
+                        listHolder_0->mList[i_0].c.d = [self asByteSpan:element_0.c.d];
+                        listHolder_0->mList[i_0].c.e = [self asCharSpan:element_0.c.e];
+                        listHolder_0->mList[i_0].c.f = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0].c.f)>>(
+                            element_0.c.f.unsignedCharValue);
+                        listHolder_0->mList[i_0].c.g = element_0.c.g.floatValue;
+                        listHolder_0->mList[i_0].c.h = element_0.c.h.doubleValue;
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].d)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.d.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.d.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.d.count; ++i_2) {
+                                    if (![element_0.d[i_2] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
+                                        // Wrong kind of value.
                                         return CHIP_ERROR_INVALID_ARGUMENT;
                                     }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.d.count; ++i_2) {
-                                        if (![element_0.d[i_2] isKindOfClass:[MTRTestClusterClusterSimpleStruct class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (MTRTestClusterClusterSimpleStruct *) element_0.d[i_2];
-                                        listHolder_2->mList[i_2].a = element_2.a.unsignedCharValue;
-                                        listHolder_2->mList[i_2].b = element_2.b.boolValue;
-                                        listHolder_2->mList[i_2].c
-                                            = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].c)>>(
-                                                element_2.c.unsignedCharValue);
-                                        listHolder_2->mList[i_2].d = [self asByteSpan:element_2.d];
-                                        listHolder_2->mList[i_2].e = [self asCharSpan:element_2.e];
-                                        listHolder_2->mList[i_2].f
-                                            = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].f)>>(
-                                                element_2.f.unsignedCharValue);
-                                        listHolder_2->mList[i_2].g = element_2.g.floatValue;
-                                        listHolder_2->mList[i_2].h = element_2.h.doubleValue;
-                                    }
-                                    listHolder_0->mList[i_0].d = ListType_2(listHolder_2->mList, element_0.d.count);
-                                } else {
-                                    listHolder_0->mList[i_0].d = ListType_2();
+                                    auto element_2 = (MTRTestClusterClusterSimpleStruct *) element_0.d[i_2];
+                                    listHolder_2->mList[i_2].a = element_2.a.unsignedCharValue;
+                                    listHolder_2->mList[i_2].b = element_2.b.boolValue;
+                                    listHolder_2->mList[i_2].c
+                                        = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].c)>>(
+                                            element_2.c.unsignedCharValue);
+                                    listHolder_2->mList[i_2].d = [self asByteSpan:element_2.d];
+                                    listHolder_2->mList[i_2].e = [self asCharSpan:element_2.e];
+                                    listHolder_2->mList[i_2].f
+                                        = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2].f)>>(
+                                            element_2.f.unsignedCharValue);
+                                    listHolder_2->mList[i_2].g = element_2.g.floatValue;
+                                    listHolder_2->mList[i_2].h = element_2.h.doubleValue;
                                 }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].e)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.e.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.e.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.e.count; ++i_2) {
-                                        if (![element_0.e[i_2] isKindOfClass:[NSNumber class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSNumber *) element_0.e[i_2];
-                                        listHolder_2->mList[i_2] = element_2.unsignedIntValue;
-                                    }
-                                    listHolder_0->mList[i_0].e = ListType_2(listHolder_2->mList, element_0.e.count);
-                                } else {
-                                    listHolder_0->mList[i_0].e = ListType_2();
-                                }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.f.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.f.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.f.count; ++i_2) {
-                                        if (![element_0.f[i_2] isKindOfClass:[NSData class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSData *) element_0.f[i_2];
-                                        listHolder_2->mList[i_2] = [self asByteSpan:element_2];
-                                    }
-                                    listHolder_0->mList[i_0].f = ListType_2(listHolder_2->mList, element_0.f.count);
-                                } else {
-                                    listHolder_0->mList[i_0].f = ListType_2();
-                                }
-                            }
-                            {
-                                using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].g)>;
-                                using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                                if (element_0.g.count != 0) {
-                                    auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.g.count);
-                                    if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    listFreer.add(listHolder_2);
-                                    for (size_t i_2 = 0; i_2 < element_0.g.count; ++i_2) {
-                                        if (![element_0.g[i_2] isKindOfClass:[NSNumber class]]) {
-                                            // Wrong kind of value.
-                                            return CHIP_ERROR_INVALID_ARGUMENT;
-                                        }
-                                        auto element_2 = (NSNumber *) element_0.g[i_2];
-                                        listHolder_2->mList[i_2] = element_2.unsignedCharValue;
-                                    }
-                                    listHolder_0->mList[i_0].g = ListType_2(listHolder_2->mList, element_0.g.count);
-                                } else {
-                                    listHolder_0->mList[i_0].g = ListType_2();
-                                }
+                                listHolder_0->mList[i_0].d = ListType_2(listHolder_2->mList, element_0.d.count);
+                            } else {
+                                listHolder_0->mList[i_0].d = ListType_2();
                             }
                         }
-                        request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
-                    } else {
-                        request.arg1 = ListType_0();
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].e)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.e.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.e.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.e.count; ++i_2) {
+                                    if (![element_0.e[i_2] isKindOfClass:[NSNumber class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSNumber *) element_0.e[i_2];
+                                    listHolder_2->mList[i_2] = element_2.unsignedIntValue;
+                                }
+                                listHolder_0->mList[i_0].e = ListType_2(listHolder_2->mList, element_0.e.count);
+                            } else {
+                                listHolder_0->mList[i_0].e = ListType_2();
+                            }
+                        }
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].f)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.f.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.f.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.f.count; ++i_2) {
+                                    if (![element_0.f[i_2] isKindOfClass:[NSData class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSData *) element_0.f[i_2];
+                                    listHolder_2->mList[i_2] = [self asByteSpan:element_2];
+                                }
+                                listHolder_0->mList[i_0].f = ListType_2(listHolder_2->mList, element_0.f.count);
+                            } else {
+                                listHolder_0->mList[i_0].f = ListType_2();
+                            }
+                        }
+                        {
+                            using ListType_2 = std::remove_reference_t<decltype(listHolder_0->mList[i_0].g)>;
+                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                            if (element_0.g.count != 0) {
+                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(element_0.g.count);
+                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_2);
+                                for (size_t i_2 = 0; i_2 < element_0.g.count; ++i_2) {
+                                    if (![element_0.g[i_2] isKindOfClass:[NSNumber class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_2 = (NSNumber *) element_0.g[i_2];
+                                    listHolder_2->mList[i_2] = element_2.unsignedCharValue;
+                                }
+                                listHolder_0->mList[i_0].g = ListType_2(listHolder_2->mList, element_0.g.count);
+                            } else {
+                                listHolder_0->mList[i_0].g = ListType_2();
+                            }
+                        }
                     }
+                    request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
+                } else {
+                    request.arg1 = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterBooleanResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19687,47 +19295,45 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestListInt8UReverseResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestListInt8UReverseRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestListInt8UReverseResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestListInt8UReverseRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                {
-                    using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
-                    using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
-                    if (params.arg1.count != 0) {
-                        auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
-                        if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+            }
+            {
+                using ListType_0 = std::remove_reference_t<decltype(request.arg1)>;
+                using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+                if (params.arg1.count != 0) {
+                    auto * listHolder_0 = new ListHolder<ListMemberType_0>(params.arg1.count);
+                    if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_0);
+                    for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
+                        if (![params.arg1[i_0] isKindOfClass:[NSNumber class]]) {
+                            // Wrong kind of value.
                             return CHIP_ERROR_INVALID_ARGUMENT;
                         }
-                        listFreer.add(listHolder_0);
-                        for (size_t i_0 = 0; i_0 < params.arg1.count; ++i_0) {
-                            if (![params.arg1[i_0] isKindOfClass:[NSNumber class]]) {
-                                // Wrong kind of value.
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            auto element_0 = (NSNumber *) params.arg1[i_0];
-                            listHolder_0->mList[i_0] = element_0.unsignedCharValue;
-                        }
-                        request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
-                    } else {
-                        request.arg1 = ListType_0();
+                        auto element_0 = (NSNumber *) params.arg1[i_0];
+                        listHolder_0->mList[i_0] = element_0.unsignedCharValue;
                     }
+                    request.arg1 = ListType_0(listHolder_0->mList, params.arg1.count);
+                } else {
+                    request.arg1 = ListType_0();
                 }
+            }
 
-                auto successFn = Callback<TestClusterClusterTestListInt8UReverseResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestListInt8UReverseResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19740,27 +19346,25 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestEnumsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestEnumsRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestEnumsResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestEnumsRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1 = static_cast<std::remove_reference_t<decltype(request.arg1)>>(params.arg1.unsignedShortValue);
-                request.arg2 = static_cast<std::remove_reference_t<decltype(request.arg2)>>(params.arg2.unsignedCharValue);
+            }
+            request.arg1 = static_cast<std::remove_reference_t<decltype(request.arg1)>>(params.arg1.unsignedShortValue);
+            request.arg2 = static_cast<std::remove_reference_t<decltype(request.arg2)>>(params.arg2.unsignedCharValue);
 
-                auto successFn = Callback<TestClusterClusterTestEnumsResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestEnumsResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19773,36 +19377,34 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestNullableOptionalResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestNullableOptionalRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestNullableOptionalResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestNullableOptionalRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
+                }
+            }
+            if (params != nil) {
+                if (params.arg1 != nil) {
+                    auto & definedValue_0 = request.arg1.Emplace();
+                    if (params.arg1 == nil) {
+                        definedValue_0.SetNull();
+                    } else {
+                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                        nonNullValue_1 = params.arg1.unsignedCharValue;
                     }
                 }
-                if (params != nil) {
-                    if (params.arg1 != nil) {
-                        auto & definedValue_0 = request.arg1.Emplace();
-                        if (params.arg1 == nil) {
-                            definedValue_0.SetNull();
-                        } else {
-                            auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                            nonNullValue_1 = params.arg1.unsignedCharValue;
-                        }
-                    }
-                }
+            }
 
-                auto successFn = Callback<TestClusterClusterTestNullableOptionalResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestNullableOptionalResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -19816,197 +19418,192 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestComplexNullableOptionalResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestComplexNullableOptionalRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestComplexNullableOptionalResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestComplexNullableOptionalRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (params.nullableInt == nil) {
-                    request.nullableInt.SetNull();
+            }
+            if (params.nullableInt == nil) {
+                request.nullableInt.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.nullableInt.SetNonNull();
+                nonNullValue_0 = params.nullableInt.unsignedShortValue;
+            }
+            if (params.optionalInt != nil) {
+                auto & definedValue_0 = request.optionalInt.Emplace();
+                definedValue_0 = params.optionalInt.unsignedShortValue;
+            }
+            if (params.nullableOptionalInt != nil) {
+                auto & definedValue_0 = request.nullableOptionalInt.Emplace();
+                if (params.nullableOptionalInt == nil) {
+                    definedValue_0.SetNull();
                 } else {
-                    auto & nonNullValue_0 = request.nullableInt.SetNonNull();
-                    nonNullValue_0 = params.nullableInt.unsignedShortValue;
+                    auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                    nonNullValue_1 = params.nullableOptionalInt.unsignedShortValue;
                 }
-                if (params.optionalInt != nil) {
-                    auto & definedValue_0 = request.optionalInt.Emplace();
-                    definedValue_0 = params.optionalInt.unsignedShortValue;
-                }
-                if (params.nullableOptionalInt != nil) {
-                    auto & definedValue_0 = request.nullableOptionalInt.Emplace();
-                    if (params.nullableOptionalInt == nil) {
-                        definedValue_0.SetNull();
-                    } else {
-                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                        nonNullValue_1 = params.nullableOptionalInt.unsignedShortValue;
-                    }
-                }
-                if (params.nullableString == nil) {
-                    request.nullableString.SetNull();
+            }
+            if (params.nullableString == nil) {
+                request.nullableString.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.nullableString.SetNonNull();
+                nonNullValue_0 = [self asCharSpan:params.nullableString];
+            }
+            if (params.optionalString != nil) {
+                auto & definedValue_0 = request.optionalString.Emplace();
+                definedValue_0 = [self asCharSpan:params.optionalString];
+            }
+            if (params.nullableOptionalString != nil) {
+                auto & definedValue_0 = request.nullableOptionalString.Emplace();
+                if (params.nullableOptionalString == nil) {
+                    definedValue_0.SetNull();
                 } else {
-                    auto & nonNullValue_0 = request.nullableString.SetNonNull();
-                    nonNullValue_0 = [self asCharSpan:params.nullableString];
+                    auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                    nonNullValue_1 = [self asCharSpan:params.nullableOptionalString];
                 }
-                if (params.optionalString != nil) {
-                    auto & definedValue_0 = request.optionalString.Emplace();
-                    definedValue_0 = [self asCharSpan:params.optionalString];
-                }
-                if (params.nullableOptionalString != nil) {
-                    auto & definedValue_0 = request.nullableOptionalString.Emplace();
-                    if (params.nullableOptionalString == nil) {
-                        definedValue_0.SetNull();
-                    } else {
-                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                        nonNullValue_1 = [self asCharSpan:params.nullableOptionalString];
-                    }
-                }
-                if (params.nullableStruct == nil) {
-                    request.nullableStruct.SetNull();
+            }
+            if (params.nullableStruct == nil) {
+                request.nullableStruct.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.nullableStruct.SetNonNull();
+                nonNullValue_0.a = params.nullableStruct.a.unsignedCharValue;
+                nonNullValue_0.b = params.nullableStruct.b.boolValue;
+                nonNullValue_0.c
+                    = static_cast<std::remove_reference_t<decltype(nonNullValue_0.c)>>(params.nullableStruct.c.unsignedCharValue);
+                nonNullValue_0.d = [self asByteSpan:params.nullableStruct.d];
+                nonNullValue_0.e = [self asCharSpan:params.nullableStruct.e];
+                nonNullValue_0.f
+                    = static_cast<std::remove_reference_t<decltype(nonNullValue_0.f)>>(params.nullableStruct.f.unsignedCharValue);
+                nonNullValue_0.g = params.nullableStruct.g.floatValue;
+                nonNullValue_0.h = params.nullableStruct.h.doubleValue;
+            }
+            if (params.optionalStruct != nil) {
+                auto & definedValue_0 = request.optionalStruct.Emplace();
+                definedValue_0.a = params.optionalStruct.a.unsignedCharValue;
+                definedValue_0.b = params.optionalStruct.b.boolValue;
+                definedValue_0.c
+                    = static_cast<std::remove_reference_t<decltype(definedValue_0.c)>>(params.optionalStruct.c.unsignedCharValue);
+                definedValue_0.d = [self asByteSpan:params.optionalStruct.d];
+                definedValue_0.e = [self asCharSpan:params.optionalStruct.e];
+                definedValue_0.f
+                    = static_cast<std::remove_reference_t<decltype(definedValue_0.f)>>(params.optionalStruct.f.unsignedCharValue);
+                definedValue_0.g = params.optionalStruct.g.floatValue;
+                definedValue_0.h = params.optionalStruct.h.doubleValue;
+            }
+            if (params.nullableOptionalStruct != nil) {
+                auto & definedValue_0 = request.nullableOptionalStruct.Emplace();
+                if (params.nullableOptionalStruct == nil) {
+                    definedValue_0.SetNull();
                 } else {
-                    auto & nonNullValue_0 = request.nullableStruct.SetNonNull();
-                    nonNullValue_0.a = params.nullableStruct.a.unsignedCharValue;
-                    nonNullValue_0.b = params.nullableStruct.b.boolValue;
-                    nonNullValue_0.c = static_cast<std::remove_reference_t<decltype(nonNullValue_0.c)>>(
-                        params.nullableStruct.c.unsignedCharValue);
-                    nonNullValue_0.d = [self asByteSpan:params.nullableStruct.d];
-                    nonNullValue_0.e = [self asCharSpan:params.nullableStruct.e];
-                    nonNullValue_0.f = static_cast<std::remove_reference_t<decltype(nonNullValue_0.f)>>(
-                        params.nullableStruct.f.unsignedCharValue);
-                    nonNullValue_0.g = params.nullableStruct.g.floatValue;
-                    nonNullValue_0.h = params.nullableStruct.h.doubleValue;
+                    auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                    nonNullValue_1.a = params.nullableOptionalStruct.a.unsignedCharValue;
+                    nonNullValue_1.b = params.nullableOptionalStruct.b.boolValue;
+                    nonNullValue_1.c = static_cast<std::remove_reference_t<decltype(nonNullValue_1.c)>>(
+                        params.nullableOptionalStruct.c.unsignedCharValue);
+                    nonNullValue_1.d = [self asByteSpan:params.nullableOptionalStruct.d];
+                    nonNullValue_1.e = [self asCharSpan:params.nullableOptionalStruct.e];
+                    nonNullValue_1.f = static_cast<std::remove_reference_t<decltype(nonNullValue_1.f)>>(
+                        params.nullableOptionalStruct.f.unsignedCharValue);
+                    nonNullValue_1.g = params.nullableOptionalStruct.g.floatValue;
+                    nonNullValue_1.h = params.nullableOptionalStruct.h.doubleValue;
                 }
-                if (params.optionalStruct != nil) {
-                    auto & definedValue_0 = request.optionalStruct.Emplace();
-                    definedValue_0.a = params.optionalStruct.a.unsignedCharValue;
-                    definedValue_0.b = params.optionalStruct.b.boolValue;
-                    definedValue_0.c = static_cast<std::remove_reference_t<decltype(definedValue_0.c)>>(
-                        params.optionalStruct.c.unsignedCharValue);
-                    definedValue_0.d = [self asByteSpan:params.optionalStruct.d];
-                    definedValue_0.e = [self asCharSpan:params.optionalStruct.e];
-                    definedValue_0.f = static_cast<std::remove_reference_t<decltype(definedValue_0.f)>>(
-                        params.optionalStruct.f.unsignedCharValue);
-                    definedValue_0.g = params.optionalStruct.g.floatValue;
-                    definedValue_0.h = params.optionalStruct.h.doubleValue;
-                }
-                if (params.nullableOptionalStruct != nil) {
-                    auto & definedValue_0 = request.nullableOptionalStruct.Emplace();
-                    if (params.nullableOptionalStruct == nil) {
-                        definedValue_0.SetNull();
-                    } else {
-                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                        nonNullValue_1.a = params.nullableOptionalStruct.a.unsignedCharValue;
-                        nonNullValue_1.b = params.nullableOptionalStruct.b.boolValue;
-                        nonNullValue_1.c = static_cast<std::remove_reference_t<decltype(nonNullValue_1.c)>>(
-                            params.nullableOptionalStruct.c.unsignedCharValue);
-                        nonNullValue_1.d = [self asByteSpan:params.nullableOptionalStruct.d];
-                        nonNullValue_1.e = [self asCharSpan:params.nullableOptionalStruct.e];
-                        nonNullValue_1.f = static_cast<std::remove_reference_t<decltype(nonNullValue_1.f)>>(
-                            params.nullableOptionalStruct.f.unsignedCharValue);
-                        nonNullValue_1.g = params.nullableOptionalStruct.g.floatValue;
-                        nonNullValue_1.h = params.nullableOptionalStruct.h.doubleValue;
-                    }
-                }
-                if (params.nullableList == nil) {
-                    request.nullableList.SetNull();
-                } else {
-                    auto & nonNullValue_0 = request.nullableList.SetNonNull();
-                    {
-                        using ListType_1 = std::remove_reference_t<decltype(nonNullValue_0)>;
-                        using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                        if (params.nullableList.count != 0) {
-                            auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.nullableList.count);
-                            if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+            }
+            if (params.nullableList == nil) {
+                request.nullableList.SetNull();
+            } else {
+                auto & nonNullValue_0 = request.nullableList.SetNonNull();
+                {
+                    using ListType_1 = std::remove_reference_t<decltype(nonNullValue_0)>;
+                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                    if (params.nullableList.count != 0) {
+                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.nullableList.count);
+                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        listFreer.add(listHolder_1);
+                        for (size_t i_1 = 0; i_1 < params.nullableList.count; ++i_1) {
+                            if (![params.nullableList[i_1] isKindOfClass:[NSNumber class]]) {
+                                // Wrong kind of value.
                                 return CHIP_ERROR_INVALID_ARGUMENT;
                             }
-                            listFreer.add(listHolder_1);
-                            for (size_t i_1 = 0; i_1 < params.nullableList.count; ++i_1) {
-                                if (![params.nullableList[i_1] isKindOfClass:[NSNumber class]]) {
+                            auto element_1 = (NSNumber *) params.nullableList[i_1];
+                            listHolder_1->mList[i_1] = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1])>>(
+                                element_1.unsignedCharValue);
+                        }
+                        nonNullValue_0 = ListType_1(listHolder_1->mList, params.nullableList.count);
+                    } else {
+                        nonNullValue_0 = ListType_1();
+                    }
+                }
+            }
+            if (params.optionalList != nil) {
+                auto & definedValue_0 = request.optionalList.Emplace();
+                {
+                    using ListType_1 = std::remove_reference_t<decltype(definedValue_0)>;
+                    using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                    if (params.optionalList.count != 0) {
+                        auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.optionalList.count);
+                        if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        listFreer.add(listHolder_1);
+                        for (size_t i_1 = 0; i_1 < params.optionalList.count; ++i_1) {
+                            if (![params.optionalList[i_1] isKindOfClass:[NSNumber class]]) {
+                                // Wrong kind of value.
+                                return CHIP_ERROR_INVALID_ARGUMENT;
+                            }
+                            auto element_1 = (NSNumber *) params.optionalList[i_1];
+                            listHolder_1->mList[i_1] = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1])>>(
+                                element_1.unsignedCharValue);
+                        }
+                        definedValue_0 = ListType_1(listHolder_1->mList, params.optionalList.count);
+                    } else {
+                        definedValue_0 = ListType_1();
+                    }
+                }
+            }
+            if (params.nullableOptionalList != nil) {
+                auto & definedValue_0 = request.nullableOptionalList.Emplace();
+                if (params.nullableOptionalList == nil) {
+                    definedValue_0.SetNull();
+                } else {
+                    auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                    {
+                        using ListType_2 = std::remove_reference_t<decltype(nonNullValue_1)>;
+                        using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
+                        if (params.nullableOptionalList.count != 0) {
+                            auto * listHolder_2 = new ListHolder<ListMemberType_2>(params.nullableOptionalList.count);
+                            if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
+                                return CHIP_ERROR_INVALID_ARGUMENT;
+                            }
+                            listFreer.add(listHolder_2);
+                            for (size_t i_2 = 0; i_2 < params.nullableOptionalList.count; ++i_2) {
+                                if (![params.nullableOptionalList[i_2] isKindOfClass:[NSNumber class]]) {
                                     // Wrong kind of value.
                                     return CHIP_ERROR_INVALID_ARGUMENT;
                                 }
-                                auto element_1 = (NSNumber *) params.nullableList[i_1];
-                                listHolder_1->mList[i_1] = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1])>>(
-                                    element_1.unsignedCharValue);
+                                auto element_2 = (NSNumber *) params.nullableOptionalList[i_2];
+                                listHolder_2->mList[i_2] = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2])>>(
+                                    element_2.unsignedCharValue);
                             }
-                            nonNullValue_0 = ListType_1(listHolder_1->mList, params.nullableList.count);
+                            nonNullValue_1 = ListType_2(listHolder_2->mList, params.nullableOptionalList.count);
                         } else {
-                            nonNullValue_0 = ListType_1();
+                            nonNullValue_1 = ListType_2();
                         }
                     }
                 }
-                if (params.optionalList != nil) {
-                    auto & definedValue_0 = request.optionalList.Emplace();
-                    {
-                        using ListType_1 = std::remove_reference_t<decltype(definedValue_0)>;
-                        using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
-                        if (params.optionalList.count != 0) {
-                            auto * listHolder_1 = new ListHolder<ListMemberType_1>(params.optionalList.count);
-                            if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
-                                return CHIP_ERROR_INVALID_ARGUMENT;
-                            }
-                            listFreer.add(listHolder_1);
-                            for (size_t i_1 = 0; i_1 < params.optionalList.count; ++i_1) {
-                                if (![params.optionalList[i_1] isKindOfClass:[NSNumber class]]) {
-                                    // Wrong kind of value.
-                                    return CHIP_ERROR_INVALID_ARGUMENT;
-                                }
-                                auto element_1 = (NSNumber *) params.optionalList[i_1];
-                                listHolder_1->mList[i_1] = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1])>>(
-                                    element_1.unsignedCharValue);
-                            }
-                            definedValue_0 = ListType_1(listHolder_1->mList, params.optionalList.count);
-                        } else {
-                            definedValue_0 = ListType_1();
-                        }
-                    }
-                }
-                if (params.nullableOptionalList != nil) {
-                    auto & definedValue_0 = request.nullableOptionalList.Emplace();
-                    if (params.nullableOptionalList == nil) {
-                        definedValue_0.SetNull();
-                    } else {
-                        auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                        {
-                            using ListType_2 = std::remove_reference_t<decltype(nonNullValue_1)>;
-                            using ListMemberType_2 = ListMemberTypeGetter<ListType_2>::Type;
-                            if (params.nullableOptionalList.count != 0) {
-                                auto * listHolder_2 = new ListHolder<ListMemberType_2>(params.nullableOptionalList.count);
-                                if (listHolder_2 == nullptr || listHolder_2->mList == nullptr) {
-                                    return CHIP_ERROR_INVALID_ARGUMENT;
-                                }
-                                listFreer.add(listHolder_2);
-                                for (size_t i_2 = 0; i_2 < params.nullableOptionalList.count; ++i_2) {
-                                    if (![params.nullableOptionalList[i_2] isKindOfClass:[NSNumber class]]) {
-                                        // Wrong kind of value.
-                                        return CHIP_ERROR_INVALID_ARGUMENT;
-                                    }
-                                    auto element_2 = (NSNumber *) params.nullableOptionalList[i_2];
-                                    listHolder_2->mList[i_2]
-                                        = static_cast<std::remove_reference_t<decltype(listHolder_2->mList[i_2])>>(
-                                            element_2.unsignedCharValue);
-                                }
-                                nonNullValue_1 = ListType_2(listHolder_2->mList, params.nullableOptionalList.count);
-                            } else {
-                                nonNullValue_1 = ListType_2();
-                            }
-                        }
-                    }
-                }
+            }
 
-                auto successFn
-                    = Callback<TestClusterClusterTestComplexNullableOptionalResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestComplexNullableOptionalResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -20019,33 +19616,31 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterSimpleStructResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::SimpleStructEchoRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterSimpleStructResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::SimpleStructEchoRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1.a = params.arg1.a.unsignedCharValue;
-                request.arg1.b = params.arg1.b.boolValue;
-                request.arg1.c = static_cast<std::remove_reference_t<decltype(request.arg1.c)>>(params.arg1.c.unsignedCharValue);
-                request.arg1.d = [self asByteSpan:params.arg1.d];
-                request.arg1.e = [self asCharSpan:params.arg1.e];
-                request.arg1.f = static_cast<std::remove_reference_t<decltype(request.arg1.f)>>(params.arg1.f.unsignedCharValue);
-                request.arg1.g = params.arg1.g.floatValue;
-                request.arg1.h = params.arg1.h.doubleValue;
+            }
+            request.arg1.a = params.arg1.a.unsignedCharValue;
+            request.arg1.b = params.arg1.b.boolValue;
+            request.arg1.c = static_cast<std::remove_reference_t<decltype(request.arg1.c)>>(params.arg1.c.unsignedCharValue);
+            request.arg1.d = [self asByteSpan:params.arg1.d];
+            request.arg1.e = [self asCharSpan:params.arg1.e];
+            request.arg1.f = static_cast<std::remove_reference_t<decltype(request.arg1.f)>>(params.arg1.f.unsignedCharValue);
+            request.arg1.g = params.arg1.g.floatValue;
+            request.arg1.h = params.arg1.h.doubleValue;
 
-                auto successFn = Callback<TestClusterClusterSimpleStructResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterSimpleStructResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -20066,32 +19661,30 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TimedInvokeRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TimedInvokeRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (!timedInvokeTimeoutMs.HasValue()) {
-                    timedInvokeTimeoutMs.SetValue(10000);
-                }
+            }
+            if (!timedInvokeTimeoutMs.HasValue()) {
+                timedInvokeTimeoutMs.SetValue(10000);
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -20103,35 +19696,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRCommandSuccessCallbackBridge(
-            self.callbackQueue, baseDevice,
-            ^(id _Nullable value, NSError * _Nullable error) {
-                completionHandler(error);
-            },
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestSimpleOptionalArgumentRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRCommandSuccessCallbackBridge(
+        self.callbackQueue, baseDevice,
+        ^(id _Nullable value, NSError * _Nullable error) {
+            completionHandler(error);
+        },
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestSimpleOptionalArgumentRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                if (params != nil) {
-                    if (params.arg1 != nil) {
-                        auto & definedValue_0 = request.arg1.Emplace();
-                        definedValue_0 = params.arg1.boolValue;
-                    }
+            }
+            if (params != nil) {
+                if (params.arg1 != nil) {
+                    auto & definedValue_0 = request.arg1.Emplace();
+                    definedValue_0 = params.arg1.boolValue;
                 }
+            }
 
-                auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<CommandSuccessCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -20144,28 +19735,26 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestEmitTestEventResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestEmitTestEventRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestEmitTestEventResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestEmitTestEventRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1 = params.arg1.unsignedCharValue;
-                request.arg2 = static_cast<std::remove_reference_t<decltype(request.arg2)>>(params.arg2.unsignedCharValue);
-                request.arg3 = params.arg3.boolValue;
+            }
+            request.arg1 = params.arg1.unsignedCharValue;
+            request.arg2 = static_cast<std::remove_reference_t<decltype(request.arg2)>>(params.arg2.unsignedCharValue);
+            request.arg3 = params.arg3.boolValue;
 
-                auto successFn = Callback<TestClusterClusterTestEmitTestEventResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestEmitTestEventResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
@@ -20180,37 +19769,33 @@
 {
     // Make a copy of params before we go async.
     params = [params copy];
-    [self.device connectAndPerformAsync:^(MTRBaseDevice * baseDevice) {
-        new MTRTestClusterClusterTestEmitTestFabricScopedEventResponseCallbackBridge(self.callbackQueue, baseDevice,
-            completionHandler,
-            ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
-                chip::Optional<uint16_t> timedInvokeTimeoutMs;
-                ListFreer listFreer;
-                TestCluster::Commands::TestEmitTestFabricScopedEventRequest::Type request;
-                if (params != nil) {
-                    if (params.timedInvokeTimeoutMs != nil) {
-                        timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
-                    }
+    MTRBaseDevice * baseDevice = [[MTRBaseDevice alloc] initWithNodeID:self.device.nodeID controller:self.device.deviceController];
+    new MTRTestClusterClusterTestEmitTestFabricScopedEventResponseCallbackBridge(self.callbackQueue, baseDevice, completionHandler,
+        ^(ExchangeManager & exchangeManager, const SessionHandle & session, Cancelable * success, Cancelable * failure) {
+            chip::Optional<uint16_t> timedInvokeTimeoutMs;
+            ListFreer listFreer;
+            TestCluster::Commands::TestEmitTestFabricScopedEventRequest::Type request;
+            if (params != nil) {
+                if (params.timedInvokeTimeoutMs != nil) {
+                    timedInvokeTimeoutMs.SetValue(params.timedInvokeTimeoutMs.unsignedShortValue);
                 }
-                request.arg1 = params.arg1.unsignedCharValue;
+            }
+            request.arg1 = params.arg1.unsignedCharValue;
 
-                auto successFn
-                    = Callback<TestClusterClusterTestEmitTestFabricScopedEventResponseCallbackType>::FromCancelable(success);
-                auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
-                chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
-                return cppCluster.InvokeCommand(
-                    request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
-            });
-    }];
+            auto successFn = Callback<TestClusterClusterTestEmitTestFabricScopedEventResponseCallbackType>::FromCancelable(success);
+            auto failureFn = Callback<DefaultFailureCallbackType>::FromCancelable(failure);
+            chip::Controller::TestClusterCluster cppCluster(exchangeManager, session, self->_endpoint);
+            return cppCluster.InvokeCommand(request, successFn->mContext, successFn->mCall, failureFn->mCall, timedInvokeTimeoutMs);
+        });
 
     [self.device setExpectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBooleanWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeBooleanID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeBooleanID)
                                              params:params];
 }
 
@@ -20223,21 +19808,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeBooleanID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeBooleanID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBitmap8WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeBitmap8ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeBitmap8ID)
                                              params:params];
 }
 
@@ -20250,21 +19835,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeBitmap8ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeBitmap8ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBitmap16WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeBitmap16ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeBitmap16ID)
                                              params:params];
 }
 
@@ -20277,21 +19862,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeBitmap16ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeBitmap16ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBitmap32WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeBitmap32ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeBitmap32ID)
                                              params:params];
 }
 
@@ -20304,21 +19889,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeBitmap32ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeBitmap32ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeBitmap64WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeBitmap64ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeBitmap64ID)
                                              params:params];
 }
 
@@ -20331,21 +19916,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeBitmap64ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeBitmap64ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt8uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt8uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt8uID)
                                              params:params];
 }
 
@@ -20358,21 +19943,21 @@
                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt8uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt8uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt16uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt16uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt16uID)
                                              params:params];
 }
 
@@ -20385,21 +19970,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt16uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt16uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt24uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt24uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt24uID)
                                              params:params];
 }
 
@@ -20412,21 +19997,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt24uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt24uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt32uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt32uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt32uID)
                                              params:params];
 }
 
@@ -20439,21 +20024,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt32uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt32uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt40uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt40uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt40uID)
                                              params:params];
 }
 
@@ -20466,21 +20051,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt40uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt40uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt48uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt48uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt48uID)
                                              params:params];
 }
 
@@ -20493,21 +20078,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt48uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt48uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt56uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt56uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt56uID)
                                              params:params];
 }
 
@@ -20520,21 +20105,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt56uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt56uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt64uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt64uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt64uID)
                                              params:params];
 }
 
@@ -20547,21 +20132,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt64uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt64uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt8sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt8sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt8sID)
                                              params:params];
 }
 
@@ -20574,21 +20159,21 @@
                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt8sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt8sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt16sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt16sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt16sID)
                                              params:params];
 }
 
@@ -20601,21 +20186,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt16sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt16sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt24sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt24sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt24sID)
                                              params:params];
 }
 
@@ -20628,21 +20213,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt24sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt24sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt32sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt32sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt32sID)
                                              params:params];
 }
 
@@ -20655,21 +20240,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt32sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt32sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt40sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt40sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt40sID)
                                              params:params];
 }
 
@@ -20682,21 +20267,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt40sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt40sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt48sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt48sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt48sID)
                                              params:params];
 }
 
@@ -20709,21 +20294,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt48sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt48sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt56sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt56sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt56sID)
                                              params:params];
 }
 
@@ -20736,21 +20321,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt56sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt56sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeInt64sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeInt64sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeInt64sID)
                                              params:params];
 }
 
@@ -20763,21 +20348,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeInt64sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeInt64sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnum8WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeEnum8ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeEnum8ID)
                                              params:params];
 }
 
@@ -20790,21 +20375,21 @@
                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeEnum8ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeEnum8ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnum16WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeEnum16ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeEnum16ID)
                                              params:params];
 }
 
@@ -20817,21 +20402,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeEnum16ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeEnum16ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFloatSingleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeFloatSingleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeFloatSingleID)
                                              params:params];
 }
 
@@ -20844,21 +20429,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeFloatSingleID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeFloatSingleID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFloatDoubleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeFloatDoubleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeFloatDoubleID)
                                              params:params];
 }
 
@@ -20871,21 +20456,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeFloatDoubleID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeFloatDoubleID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeOctetStringID)
                                              params:params];
 }
 
@@ -20898,21 +20483,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListInt8uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListInt8uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListInt8uID)
                                              params:params];
 }
 
@@ -20925,21 +20510,21 @@
                    expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                   params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListInt8uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListInt8uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListOctetStringID)
                                              params:params];
 }
 
@@ -20952,21 +20537,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListStructOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListStructOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListStructOctetStringID)
                                              params:params];
 }
 
@@ -20981,21 +20566,21 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListStructOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListStructOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLongOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeLongOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeLongOctetStringID)
                                              params:params];
 }
 
@@ -21008,21 +20593,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeLongOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeLongOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeCharStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeCharStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeCharStringID)
                                              params:params];
 }
 
@@ -21035,21 +20620,21 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeCharStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeCharStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeLongCharStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeLongCharStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeLongCharStringID)
                                              params:params];
 }
 
@@ -21062,21 +20647,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeLongCharStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeLongCharStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEpochUsWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeEpochUsID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeEpochUsID)
                                              params:params];
 }
 
@@ -21089,21 +20674,21 @@
                  expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                 params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeEpochUsID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeEpochUsID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEpochSWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeEpochSID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeEpochSID)
                                              params:params];
 }
 
@@ -21116,21 +20701,21 @@
                 expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeEpochSID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeEpochSID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeVendorIdWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeVendorIdID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeVendorIdID)
                                              params:params];
 }
 
@@ -21143,21 +20728,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeVendorIdID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeVendorIdID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListNullablesAndOptionalsStructWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListNullablesAndOptionalsStructID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListNullablesAndOptionalsStructID)
                                              params:params];
 }
 
@@ -21172,21 +20757,21 @@
                                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListNullablesAndOptionalsStructID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListNullablesAndOptionalsStructID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeEnumAttrWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeEnumAttrID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeEnumAttrID)
                                              params:params];
 }
 
@@ -21199,21 +20784,21 @@
                   expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                  params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeEnumAttrID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeEnumAttrID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeStructAttrWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeStructAttrID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeStructAttrID)
                                              params:params];
 }
 
@@ -21226,21 +20811,21 @@
                     expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                    params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeStructAttrID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeStructAttrID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRangeRestrictedInt8uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt8uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt8uID)
                                              params:params];
 }
 
@@ -21253,21 +20838,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt8uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt8uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRangeRestrictedInt8sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt8sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt8sID)
                                              params:params];
 }
 
@@ -21280,21 +20865,21 @@
                               expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                              params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt8sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt8sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRangeRestrictedInt16uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt16uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt16uID)
                                              params:params];
 }
 
@@ -21309,21 +20894,21 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt16uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt16uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeRangeRestrictedInt16sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt16sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt16sID)
                                              params:params];
 }
 
@@ -21338,21 +20923,21 @@
                                expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                               params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeRangeRestrictedInt16sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeRangeRestrictedInt16sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListLongOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListLongOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListLongOctetStringID)
                                              params:params];
 }
 
@@ -21365,21 +20950,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListLongOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListLongOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeListFabricScopedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeListFabricScopedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeListFabricScopedID)
                                              params:params];
 }
 
@@ -21392,21 +20977,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeListFabricScopedID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeListFabricScopedID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeTimedWriteBooleanWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeTimedWriteBooleanID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeTimedWriteBooleanID)
                                              params:params];
 }
 
@@ -21419,21 +21004,21 @@
                            expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                           params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeTimedWriteBooleanID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeTimedWriteBooleanID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneralErrorBooleanWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeGeneralErrorBooleanID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeGeneralErrorBooleanID)
                                              params:params];
 }
 
@@ -21446,21 +21031,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeGeneralErrorBooleanID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeGeneralErrorBooleanID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterErrorBooleanWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeClusterErrorBooleanID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeClusterErrorBooleanID)
                                              params:params];
 }
 
@@ -21473,21 +21058,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeClusterErrorBooleanID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeClusterErrorBooleanID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeUnsupportedWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeUnsupportedID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeUnsupportedID)
                                              params:params];
 }
 
@@ -21500,21 +21085,21 @@
                      expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                     params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeUnsupportedID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeUnsupportedID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableBooleanWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableBooleanID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableBooleanID)
                                              params:params];
 }
 
@@ -21527,21 +21112,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableBooleanID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableBooleanID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableBitmap8WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableBitmap8ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableBitmap8ID)
                                              params:params];
 }
 
@@ -21554,21 +21139,21 @@
                          expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                         params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableBitmap8ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableBitmap8ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableBitmap16WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableBitmap16ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableBitmap16ID)
                                              params:params];
 }
 
@@ -21581,21 +21166,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableBitmap16ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableBitmap16ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableBitmap32WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableBitmap32ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableBitmap32ID)
                                              params:params];
 }
 
@@ -21608,21 +21193,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableBitmap32ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableBitmap32ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableBitmap64WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableBitmap64ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableBitmap64ID)
                                              params:params];
 }
 
@@ -21635,21 +21220,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableBitmap64ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableBitmap64ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt8uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt8uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt8uID)
                                              params:params];
 }
 
@@ -21662,21 +21247,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt8uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt8uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt16uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt16uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt16uID)
                                              params:params];
 }
 
@@ -21689,21 +21274,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt16uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt16uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt24uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt24uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt24uID)
                                              params:params];
 }
 
@@ -21716,21 +21301,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt24uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt24uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt32uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt32uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt32uID)
                                              params:params];
 }
 
@@ -21743,21 +21328,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt32uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt32uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt40uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt40uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt40uID)
                                              params:params];
 }
 
@@ -21770,21 +21355,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt40uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt40uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt48uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt48uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt48uID)
                                              params:params];
 }
 
@@ -21797,21 +21382,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt48uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt48uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt56uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt56uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt56uID)
                                              params:params];
 }
 
@@ -21824,21 +21409,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt56uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt56uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt64uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt64uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt64uID)
                                              params:params];
 }
 
@@ -21851,21 +21436,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt64uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt64uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt8sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt8sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt8sID)
                                              params:params];
 }
 
@@ -21878,21 +21463,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt8sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt8sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt16sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt16sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt16sID)
                                              params:params];
 }
 
@@ -21905,21 +21490,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt16sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt16sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt24sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt24sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt24sID)
                                              params:params];
 }
 
@@ -21932,21 +21517,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt24sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt24sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt32sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt32sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt32sID)
                                              params:params];
 }
 
@@ -21959,21 +21544,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt32sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt32sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt40sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt40sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt40sID)
                                              params:params];
 }
 
@@ -21986,21 +21571,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt40sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt40sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt48sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt48sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt48sID)
                                              params:params];
 }
 
@@ -22013,21 +21598,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt48sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt48sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt56sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt56sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt56sID)
                                              params:params];
 }
 
@@ -22040,21 +21625,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt56sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt56sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableInt64sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableInt64sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableInt64sID)
                                              params:params];
 }
 
@@ -22067,21 +21652,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableInt64sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableInt64sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableEnum8WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableEnum8ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableEnum8ID)
                                              params:params];
 }
 
@@ -22094,21 +21679,21 @@
                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableEnum8ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableEnum8ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableEnum16WithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableEnum16ID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableEnum16ID)
                                              params:params];
 }
 
@@ -22121,21 +21706,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableEnum16ID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableEnum16ID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableFloatSingleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableFloatSingleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableFloatSingleID)
                                              params:params];
 }
 
@@ -22148,21 +21733,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableFloatSingleID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableFloatSingleID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableFloatDoubleWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableFloatDoubleID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableFloatDoubleID)
                                              params:params];
 }
 
@@ -22175,21 +21760,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableFloatDoubleID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableFloatDoubleID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableOctetStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableOctetStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableOctetStringID)
                                              params:params];
 }
 
@@ -22202,21 +21787,21 @@
                              expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                             params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableOctetStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableOctetStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableCharStringWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableCharStringID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableCharStringID)
                                              params:params];
 }
 
@@ -22229,21 +21814,21 @@
                             expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                            params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableCharStringID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableCharStringID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableEnumAttrWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableEnumAttrID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableEnumAttrID)
                                              params:params];
 }
 
@@ -22256,21 +21841,21 @@
                           expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                          params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableEnumAttrID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableEnumAttrID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableStructWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableStructID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableStructID)
                                              params:params];
 }
 
@@ -22283,21 +21868,21 @@
                         expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                        params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableStructID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableStructID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableRangeRestrictedInt8uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8uID)
                                              params:params];
 }
 
@@ -22312,21 +21897,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableRangeRestrictedInt8sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8sID)
                                              params:params];
 }
 
@@ -22341,21 +21926,21 @@
                                       expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                      params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt8sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableRangeRestrictedInt16uWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16uID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16uID)
                                              params:params];
 }
 
@@ -22370,21 +21955,21 @@
                                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16uID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16uID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeNullableRangeRestrictedInt16sWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16sID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16sID)
                                              params:params];
 }
 
@@ -22399,53 +21984,53 @@
                                        expectedValueInterval:(NSNumber *)expectedValueIntervalMs
                                                       params:(MTRWriteParams * _Nullable)params
 {
-    NSNumber * waitTimeInMs = params.timedWriteTimeout;
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
 
-    [self.device writeAttributeWithEndpointId:@(_endpoint)
-                                    clusterId:@(MTRClusterTestClusterID)
-                                  attributeId:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16sID)
+    [self.device writeAttributeWithEndpointID:@(_endpoint)
+                                    clusterID:@(MTRClusterTestClusterID)
+                                  attributeID:@(MTRClusterTestClusterAttributeNullableRangeRestrictedInt16sID)
                                         value:dataValueDictionary
                         expectedValueInterval:expectedValueIntervalMs
-                            timedWriteTimeout:waitTimeInMs];
+                            timedWriteTimeout:timedWriteTimeout];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeGeneratedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeGeneratedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeAcceptedCommandListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeAcceptedCommandListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeAttributeListID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeAttributeListID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeFeatureMapID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeFeatureMapID)
                                              params:params];
 }
 
 - (NSDictionary<NSString *, id> *)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
 {
-    return [self.device readAttributeWithEndpointId:@(_endpoint)
-                                          clusterId:@(MTRClusterTestClusterID)
-                                        attributeId:@(MTRClusterTestClusterAttributeClusterRevisionID)
+    return [self.device readAttributeWithEndpointID:@(_endpoint)
+                                          clusterID:@(MTRClusterTestClusterID)
+                                        attributeID:@(MTRClusterTestClusterAttributeClusterRevisionID)
                                              params:params];
 }
 
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters_internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters_internal.h
index bdbddb5..3bc39de 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters_internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters_internal.h
@@ -18,7 +18,6 @@
 // THIS FILE IS GENERATED BY ZAP
 
 #import <Foundation/Foundation.h>
-#import <os/lock.h>
 
 #import "MTRClusters.h"
 #import "MTRDevice.h"
diff --git a/src/darwin/Framework/CHIPTests/MTRAsyncCallbackQueueTests.m b/src/darwin/Framework/CHIPTests/MTRAsyncCallbackQueueTests.m
index 8467f79..716727b 100644
--- a/src/darwin/Framework/CHIPTests/MTRAsyncCallbackQueueTests.m
+++ b/src/darwin/Framework/CHIPTests/MTRAsyncCallbackQueueTests.m
@@ -19,7 +19,7 @@
 // system dependencies
 #import <XCTest/XCTest.h>
 
-#import "MTRAsyncCallbackWorkQueue_Internal.h"
+#import "MTRAsyncCallbackWorkQueue.h"
 
 @interface MTRAsyncCallbackQueueTests : XCTestCase
 
@@ -62,10 +62,8 @@
         [[MTRAsyncCallbackQueueWorkItem alloc] initWithQueue:dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)];
     __block int counter = 0;
     MTRAsyncCallbackReadyHandler readyHandler1 = ^(MTRDevice * _Nonnull device, NSUInteger retryCount) {
-        NSLog(@"Item 1 called with counter %d", counter);
         sleep(1);
         counter++;
-        NSLog(@"Item 1 woke after sleep with counter %d", counter);
         [workItem1 endWork];
     };
     workItem1.readyHandler = readyHandler1;
@@ -77,7 +75,6 @@
         [[MTRAsyncCallbackQueueWorkItem alloc] initWithQueue:dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)];
     MTRAsyncCallbackReadyHandler readyHandler2 = ^(MTRDevice * _Nonnull device, NSUInteger retryCount) {
         // expect this to have waited until workItem1's sleep(1) finished and incremented counter
-        NSLog(@"Item 2 called with counter %d", counter);
         if (counter == 1) {
             [expectation fulfill];
         }
@@ -88,9 +85,7 @@
     };
     [workQueue enqueueWorkItem:workItem2];
 
-    NSLog(@"2Items start wait %@", [NSDate date]);
     [self waitForExpectationsWithTimeout:5 handler:nil];
-    NSLog(@"2Items finished wait %@", [NSDate date]);
 
     // see that workItem1 only ran once
     XCTAssertEqual(counter, 1);
@@ -106,10 +101,8 @@
         [[MTRAsyncCallbackQueueWorkItem alloc] initWithQueue:dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)];
     __block int counter = 0;
     MTRAsyncCallbackReadyHandler readyHandler1 = ^(MTRDevice * _Nonnull device, NSUInteger retryCount) {
-        NSLog(@"Item 1 called with counter %d retryCount %lu", counter, (unsigned long) retryCount);
         sleep(1);
         counter++;
-        NSLog(@"Item 1 woke after sleep with counter %d", counter);
 
         if (retryCount) {
             // only end after retried once
@@ -127,7 +120,6 @@
         [[MTRAsyncCallbackQueueWorkItem alloc] initWithQueue:dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)];
     MTRAsyncCallbackReadyHandler readyHandler2 = ^(MTRDevice * _Nonnull device, NSUInteger retryCount) {
         // expect this to have waited until workItem1's sleep(1) finished and incremented counter twice
-        NSLog(@"Item 2 called with counter %d", counter);
         if (counter == 2) {
             [expectation fulfill];
         }
@@ -138,9 +130,7 @@
     };
     [workQueue enqueueWorkItem:workItem2];
 
-    NSLog(@"2Items start wait %@", [NSDate date]);
     [self waitForExpectationsWithTimeout:5 handler:nil];
-    NSLog(@"2Items finished wait %@", [NSDate date]);
 
     // see that workItem1 ran twice after the retry
     XCTAssertEqual(counter, 2);