Add ways to get a command name by ID, for known commands, to Matter.framework. (#35882)
diff --git a/src/darwin/Framework/CHIP/MTRClusterNames.h b/src/darwin/Framework/CHIP/MTRClusterNames.h
index c13edf4..46b5a5b 100644
--- a/src/darwin/Framework/CHIP/MTRClusterNames.h
+++ b/src/darwin/Framework/CHIP/MTRClusterNames.h
@@ -43,6 +43,24 @@
MTR_EXTERN MTR_AVAILABLE(ios(17.6), macos(14.6), watchos(10.6), tvos(17.6)) NSString * MTRAttributeNameForID(MTRClusterIDType clusterID, MTRAttributeIDType attributeID);
/**
+ * Resolve Matter request (client to server) command IDs into a descriptive string.
+ *
+ * For unknown IDs, a string '<Unknown clusterID %d>' (if the cluster ID is not known)
+ * or '<Unknown commandID %d>' (if the cluster ID is known but the command ID is not known)
+ * will be returned.
+ */
+MTR_EXTERN MTR_NEWLY_AVAILABLE NSString * MTRRequestCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID);
+
+/**
+ * Resolve Matter response (server to client) command IDs into a descriptive string.
+ *
+ * For unknown IDs, a string '<Unknown clusterID %d>' (if the cluster ID is not known)
+ * or '<Unknown commandID %d>' (if the cluster ID is known but the command ID is not known)
+ * will be returned.
+ */
+MTR_EXTERN MTR_NEWLY_AVAILABLE NSString * MTRResponseCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID);
+
+/**
* Resolve Matter event IDs into a descriptive string.
*
* For unknown IDs, a string '<Unknown clusterID %d>' (if the cluster ID is not known)
diff --git a/src/darwin/Framework/CHIP/templates/MTRClusterNames-src.zapt b/src/darwin/Framework/CHIP/templates/MTRClusterNames-src.zapt
index 1c18b6a..5928160 100644
--- a/src/darwin/Framework/CHIP/templates/MTRClusterNames-src.zapt
+++ b/src/darwin/Framework/CHIP/templates/MTRClusterNames-src.zapt
@@ -87,6 +87,62 @@
return result;
}
+#pragma mark - Command IDs
+
+{{!Takes "source" as an argument, can be "client" or "server"}}
+{{~#*inline "commandIDOutput"}}
+ NSString * result = nil;
+
+ switch (clusterID) {
+
+{{#zcl_clusters}}
+{{#if (isSupported (asUpperCamelCase label preserveAcronyms=true) isForIds=true)}}
+{{~#*inline "cluster"}}{{asUpperCamelCase label preserveAcronyms=true}}{{/inline~}}
+ case MTRClusterIDType{{>cluster}}ID:
+
+ switch (commandID) {
+
+{{#*inline "commandIDs"}}
+{{#zcl_commands}}
+{{~#*inline "cluster"}}{{asUpperCamelCase ../clusterName preserveAcronyms=true}}{{/inline~}}
+{{~#*inline "command"}}{{asUpperCamelCase label preserveAcronyms=true}}{{/inline~}}
+{{#if (and (isSupported (asUpperCamelCase ../clusterName preserveAcronyms=true) command=(asUpperCamelCase label preserveAcronyms=true) isForIds=true)
+ (isStrEqual source ../../../source))}}
+ case MTRCommandIDTypeCluster{{>cluster}}Command{{>command}}ID:
+ result = @"{{>command}}";
+ break;
+
+{{/if}}
+{{/zcl_commands}}
+{{/inline}}
+
+{{> commandIDs clusterName=label}}
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+{{/if}}
+
+{{/zcl_clusters}}
+ default:
+ result = [NSString stringWithFormat:@"<Unknown clusterID %d>", clusterID];
+ break;
+ }
+
+ return result;
+{{/inline}}
+
+NSString * MTRRequestCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID)
+{
+{{> commandIDOutput source="client"}}
+}
+
+NSString * MTRResponseCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID)
+{
+{{> commandIDOutput source="server"}}
+}
#pragma mark - Event IDs
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
index e0a8484..51fa188 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
@@ -8706,6 +8706,3956 @@
return result;
}
+#pragma mark - Command IDs
+
+NSString * MTRRequestCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID)
+{
+ NSString * result = nil;
+
+ switch (clusterID) {
+
+ case MTRClusterIDTypeIdentifyID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterIdentifyCommandIdentifyID:
+ result = @"Identify";
+ break;
+
+ case MTRCommandIDTypeClusterIdentifyCommandTriggerEffectID:
+ result = @"TriggerEffect";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGroupsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGroupsCommandAddGroupID:
+ result = @"AddGroup";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandViewGroupID:
+ result = @"ViewGroup";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandGetGroupMembershipID:
+ result = @"GetGroupMembership";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandRemoveGroupID:
+ result = @"RemoveGroup";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandRemoveAllGroupsID:
+ result = @"RemoveAllGroups";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandAddGroupIfIdentifyingID:
+ result = @"AddGroupIfIdentifying";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOnOffID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOnOffCommandOffID:
+ result = @"Off";
+ break;
+
+ case MTRCommandIDTypeClusterOnOffCommandOnID:
+ result = @"On";
+ break;
+
+ case MTRCommandIDTypeClusterOnOffCommandToggleID:
+ result = @"Toggle";
+ break;
+
+ case MTRCommandIDTypeClusterOnOffCommandOffWithEffectID:
+ result = @"OffWithEffect";
+ break;
+
+ case MTRCommandIDTypeClusterOnOffCommandOnWithRecallGlobalSceneID:
+ result = @"OnWithRecallGlobalScene";
+ break;
+
+ case MTRCommandIDTypeClusterOnOffCommandOnWithTimedOffID:
+ result = @"OnWithTimedOff";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLevelControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterLevelControlCommandMoveToLevelID:
+ result = @"MoveToLevel";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandMoveID:
+ result = @"Move";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandStepID:
+ result = @"Step";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandStopID:
+ result = @"Stop";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandMoveToLevelWithOnOffID:
+ result = @"MoveToLevelWithOnOff";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandMoveWithOnOffID:
+ result = @"MoveWithOnOff";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandStepWithOnOffID:
+ result = @"StepWithOnOff";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandStopWithOnOffID:
+ result = @"StopWithOnOff";
+ break;
+
+ case MTRCommandIDTypeClusterLevelControlCommandMoveToClosestFrequencyID:
+ result = @"MoveToClosestFrequency";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePulseWidthModulationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDescriptorID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBindingID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAccessControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAccessControlCommandReviewFabricRestrictionsID:
+ result = @"ReviewFabricRestrictions";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeActionsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterActionsCommandInstantActionID:
+ result = @"InstantAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandInstantActionWithTransitionID:
+ result = @"InstantActionWithTransition";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandStartActionID:
+ result = @"StartAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandStartActionWithDurationID:
+ result = @"StartActionWithDuration";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandStopActionID:
+ result = @"StopAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandPauseActionID:
+ result = @"PauseAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandPauseActionWithDurationID:
+ result = @"PauseActionWithDuration";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandResumeActionID:
+ result = @"ResumeAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandEnableActionID:
+ result = @"EnableAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandEnableActionWithDurationID:
+ result = @"EnableActionWithDuration";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandDisableActionID:
+ result = @"DisableAction";
+ break;
+
+ case MTRCommandIDTypeClusterActionsCommandDisableActionWithDurationID:
+ result = @"DisableActionWithDuration";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBasicInformationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOTASoftwareUpdateProviderID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateProviderCommandQueryImageID:
+ result = @"QueryImage";
+ break;
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateProviderCommandApplyUpdateRequestID:
+ result = @"ApplyUpdateRequest";
+ break;
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateProviderCommandNotifyUpdateAppliedID:
+ result = @"NotifyUpdateApplied";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOTASoftwareUpdateRequestorID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateRequestorCommandAnnounceOTAProviderID:
+ result = @"AnnounceOTAProvider";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLocalizationConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimeFormatLocalizationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUnitLocalizationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerSourceConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerSourceID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGeneralCommissioningID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandArmFailSafeID:
+ result = @"ArmFailSafe";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandSetRegulatoryConfigID:
+ result = @"SetRegulatoryConfig";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandCommissioningCompleteID:
+ result = @"CommissioningComplete";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandSetTCAcknowledgementsID:
+ result = @"SetTCAcknowledgements";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeNetworkCommissioningID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandScanNetworksID:
+ result = @"ScanNetworks";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandAddOrUpdateWiFiNetworkID:
+ result = @"AddOrUpdateWiFiNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandAddOrUpdateThreadNetworkID:
+ result = @"AddOrUpdateThreadNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandRemoveNetworkID:
+ result = @"RemoveNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandConnectNetworkID:
+ result = @"ConnectNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandReorderNetworkID:
+ result = @"ReorderNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandQueryIdentityID:
+ result = @"QueryIdentity";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDiagnosticLogsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDiagnosticLogsCommandRetrieveLogsRequestID:
+ result = @"RetrieveLogsRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGeneralDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGeneralDiagnosticsCommandTestEventTriggerID:
+ result = @"TestEventTrigger";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralDiagnosticsCommandTimeSnapshotID:
+ result = @"TimeSnapshot";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralDiagnosticsCommandPayloadTestRequestID:
+ result = @"PayloadTestRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSoftwareDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterSoftwareDiagnosticsCommandResetWatermarksID:
+ result = @"ResetWatermarks";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThreadNetworkDiagnosticsCommandResetCountsID:
+ result = @"ResetCounts";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWiFiNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWiFiNetworkDiagnosticsCommandResetCountsID:
+ result = @"ResetCounts";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEthernetNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterEthernetNetworkDiagnosticsCommandResetCountsID:
+ result = @"ResetCounts";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimeSynchronizationID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetUTCTimeID:
+ result = @"SetUTCTime";
+ break;
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetTrustedTimeSourceID:
+ result = @"SetTrustedTimeSource";
+ break;
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetTimeZoneID:
+ result = @"SetTimeZone";
+ break;
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetDSTOffsetID:
+ result = @"SetDSTOffset";
+ break;
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetDefaultNTPID:
+ result = @"SetDefaultNTP";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBridgedDeviceBasicInformationID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterBridgedDeviceBasicInformationCommandKeepActiveID:
+ result = @"KeepActive";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSwitchID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAdministratorCommissioningID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAdministratorCommissioningCommandOpenCommissioningWindowID:
+ result = @"OpenCommissioningWindow";
+ break;
+
+ case MTRCommandIDTypeClusterAdministratorCommissioningCommandOpenBasicCommissioningWindowID:
+ result = @"OpenBasicCommissioningWindow";
+ break;
+
+ case MTRCommandIDTypeClusterAdministratorCommissioningCommandRevokeCommissioningID:
+ result = @"RevokeCommissioning";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOperationalCredentialsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandAttestationRequestID:
+ result = @"AttestationRequest";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandCertificateChainRequestID:
+ result = @"CertificateChainRequest";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandCSRRequestID:
+ result = @"CSRRequest";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandAddNOCID:
+ result = @"AddNOC";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandUpdateNOCID:
+ result = @"UpdateNOC";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandUpdateFabricLabelID:
+ result = @"UpdateFabricLabel";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandRemoveFabricID:
+ result = @"RemoveFabric";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandAddTrustedRootCertificateID:
+ result = @"AddTrustedRootCertificate";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGroupKeyManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetWriteID:
+ result = @"KeySetWrite";
+ break;
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetReadID:
+ result = @"KeySetRead";
+ break;
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetRemoveID:
+ result = @"KeySetRemove";
+ break;
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetReadAllIndicesID:
+ result = @"KeySetReadAllIndices";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFixedLabelID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUserLabelID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBooleanStateID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeICDManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterICDManagementCommandRegisterClientID:
+ result = @"RegisterClient";
+ break;
+
+ case MTRCommandIDTypeClusterICDManagementCommandUnregisterClientID:
+ result = @"UnregisterClient";
+ break;
+
+ case MTRCommandIDTypeClusterICDManagementCommandStayActiveRequestID:
+ result = @"StayActiveRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimerID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTimerCommandSetTimerID:
+ result = @"SetTimer";
+ break;
+
+ case MTRCommandIDTypeClusterTimerCommandResetTimerID:
+ result = @"ResetTimer";
+ break;
+
+ case MTRCommandIDTypeClusterTimerCommandAddTimeID:
+ result = @"AddTime";
+ break;
+
+ case MTRCommandIDTypeClusterTimerCommandReduceTimeID:
+ result = @"ReduceTime";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOvenCavityOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOvenCavityOperationalStateCommandPauseID:
+ result = @"Pause";
+ break;
+
+ case MTRCommandIDTypeClusterOvenCavityOperationalStateCommandStopID:
+ result = @"Stop";
+ break;
+
+ case MTRCommandIDTypeClusterOvenCavityOperationalStateCommandStartID:
+ result = @"Start";
+ break;
+
+ case MTRCommandIDTypeClusterOvenCavityOperationalStateCommandResumeID:
+ result = @"Resume";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOvenModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOvenModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryDryerControlsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeModeSelectID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterModeSelectCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryWasherModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterLaundryWasherModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRefrigeratorAndTemperatureControlledCabinetModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRefrigeratorAndTemperatureControlledCabinetModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryWasherControlsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCRunModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCRunModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCCleanModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCCleanModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTemperatureControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTemperatureControlCommandSetTemperatureID:
+ result = @"SetTemperature";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRefrigeratorAlarmID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDishwasherModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDishwasherModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAirQualityID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSmokeCOAlarmID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterSmokeCOAlarmCommandSelfTestRequestID:
+ result = @"SelfTestRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDishwasherAlarmID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDishwasherAlarmCommandResetID:
+ result = @"Reset";
+ break;
+
+ case MTRCommandIDTypeClusterDishwasherAlarmCommandModifyEnabledAlarmsID:
+ result = @"ModifyEnabledAlarms";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMicrowaveOvenModeID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMicrowaveOvenControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterMicrowaveOvenControlCommandSetCookingParametersID:
+ result = @"SetCookingParameters";
+ break;
+
+ case MTRCommandIDTypeClusterMicrowaveOvenControlCommandAddMoreTimeID:
+ result = @"AddMoreTime";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOperationalStateCommandPauseID:
+ result = @"Pause";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalStateCommandStopID:
+ result = @"Stop";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalStateCommandStartID:
+ result = @"Start";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalStateCommandResumeID:
+ result = @"Resume";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCOperationalStateCommandPauseID:
+ result = @"Pause";
+ break;
+
+ case MTRCommandIDTypeClusterRVCOperationalStateCommandResumeID:
+ result = @"Resume";
+ break;
+
+ case MTRCommandIDTypeClusterRVCOperationalStateCommandGoHomeID:
+ result = @"GoHome";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeScenesManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterScenesManagementCommandAddSceneID:
+ result = @"AddScene";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandViewSceneID:
+ result = @"ViewScene";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandRemoveSceneID:
+ result = @"RemoveScene";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandRemoveAllScenesID:
+ result = @"RemoveAllScenes";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandStoreSceneID:
+ result = @"StoreScene";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandRecallSceneID:
+ result = @"RecallScene";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandGetSceneMembershipID:
+ result = @"GetSceneMembership";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandCopySceneID:
+ result = @"CopyScene";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeHEPAFilterMonitoringID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterHEPAFilterMonitoringCommandResetConditionID:
+ result = @"ResetCondition";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeActivatedCarbonFilterMonitoringID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterActivatedCarbonFilterMonitoringCommandResetConditionID:
+ result = @"ResetCondition";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBooleanStateConfigurationID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterBooleanStateConfigurationCommandSuppressAlarmID:
+ result = @"SuppressAlarm";
+ break;
+
+ case MTRCommandIDTypeClusterBooleanStateConfigurationCommandEnableDisableAlarmID:
+ result = @"EnableDisableAlarm";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeValveConfigurationAndControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterValveConfigurationAndControlCommandOpenID:
+ result = @"Open";
+ break;
+
+ case MTRCommandIDTypeClusterValveConfigurationAndControlCommandCloseID:
+ result = @"Close";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeElectricalPowerMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeElectricalEnergyMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWaterHeaterManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWaterHeaterManagementCommandBoostID:
+ result = @"Boost";
+ break;
+
+ case MTRCommandIDTypeClusterWaterHeaterManagementCommandCancelBoostID:
+ result = @"CancelBoost";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDemandResponseLoadControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDemandResponseLoadControlCommandRegisterLoadControlProgramRequestID:
+ result = @"RegisterLoadControlProgramRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDemandResponseLoadControlCommandUnregisterLoadControlProgramRequestID:
+ result = @"UnregisterLoadControlProgramRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDemandResponseLoadControlCommandAddLoadControlEventRequestID:
+ result = @"AddLoadControlEventRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDemandResponseLoadControlCommandRemoveLoadControlEventRequestID:
+ result = @"RemoveLoadControlEventRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDemandResponseLoadControlCommandClearLoadControlEventsRequestID:
+ result = @"ClearLoadControlEventsRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMessagesID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterMessagesCommandPresentMessagesRequestID:
+ result = @"PresentMessagesRequest";
+ break;
+
+ case MTRCommandIDTypeClusterMessagesCommandCancelMessagesRequestID:
+ result = @"CancelMessagesRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDeviceEnergyManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandPowerAdjustRequestID:
+ result = @"PowerAdjustRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandCancelPowerAdjustRequestID:
+ result = @"CancelPowerAdjustRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandStartTimeAdjustRequestID:
+ result = @"StartTimeAdjustRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandPauseRequestID:
+ result = @"PauseRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandResumeRequestID:
+ result = @"ResumeRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandModifyForecastRequestID:
+ result = @"ModifyForecastRequest";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandRequestConstraintBasedForecastID:
+ result = @"RequestConstraintBasedForecast";
+ break;
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementCommandCancelRequestID:
+ result = @"CancelRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyEVSEID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandDisableID:
+ result = @"Disable";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandEnableChargingID:
+ result = @"EnableCharging";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandEnableDischargingID:
+ result = @"EnableDischarging";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandStartDiagnosticsID:
+ result = @"StartDiagnostics";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandSetTargetsID:
+ result = @"SetTargets";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandGetTargetsID:
+ result = @"GetTargets";
+ break;
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandClearTargetsID:
+ result = @"ClearTargets";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyPreferenceID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerTopologyID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyEVSEModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterEnergyEVSEModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWaterHeaterModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWaterHeaterModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDeviceEnergyManagementModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementModeCommandChangeToModeID:
+ result = @"ChangeToMode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDoorLockID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDoorLockCommandLockDoorID:
+ result = @"LockDoor";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandUnlockDoorID:
+ result = @"UnlockDoor";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandUnlockWithTimeoutID:
+ result = @"UnlockWithTimeout";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetWeekDayScheduleID:
+ result = @"SetWeekDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetWeekDayScheduleID:
+ result = @"GetWeekDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearWeekDayScheduleID:
+ result = @"ClearWeekDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetYearDayScheduleID:
+ result = @"SetYearDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetYearDayScheduleID:
+ result = @"GetYearDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearYearDayScheduleID:
+ result = @"ClearYearDaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetHolidayScheduleID:
+ result = @"SetHolidaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetHolidayScheduleID:
+ result = @"GetHolidaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearHolidayScheduleID:
+ result = @"ClearHolidaySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetUserID:
+ result = @"SetUser";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetUserID:
+ result = @"GetUser";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearUserID:
+ result = @"ClearUser";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetCredentialID:
+ result = @"SetCredential";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetCredentialStatusID:
+ result = @"GetCredentialStatus";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearCredentialID:
+ result = @"ClearCredential";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandUnboltDoorID:
+ result = @"UnboltDoor";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetAliroReaderConfigID:
+ result = @"SetAliroReaderConfig";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandClearAliroReaderConfigID:
+ result = @"ClearAliroReaderConfig";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWindowCoveringID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandUpOrOpenID:
+ result = @"UpOrOpen";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandDownOrCloseID:
+ result = @"DownOrClose";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandStopMotionID:
+ result = @"StopMotion";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandGoToLiftValueID:
+ result = @"GoToLiftValue";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandGoToLiftPercentageID:
+ result = @"GoToLiftPercentage";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandGoToTiltValueID:
+ result = @"GoToTiltValue";
+ break;
+
+ case MTRCommandIDTypeClusterWindowCoveringCommandGoToTiltPercentageID:
+ result = @"GoToTiltPercentage";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeServiceAreaID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterServiceAreaCommandSelectAreasID:
+ result = @"SelectAreas";
+ break;
+
+ case MTRCommandIDTypeClusterServiceAreaCommandSkipAreaID:
+ result = @"SkipArea";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePumpConfigurationAndControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThermostatID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThermostatCommandSetpointRaiseLowerID:
+ result = @"SetpointRaiseLower";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandSetWeeklyScheduleID:
+ result = @"SetWeeklySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandGetWeeklyScheduleID:
+ result = @"GetWeeklySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandClearWeeklyScheduleID:
+ result = @"ClearWeeklySchedule";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandSetActiveScheduleRequestID:
+ result = @"SetActiveScheduleRequest";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandSetActivePresetRequestID:
+ result = @"SetActivePresetRequest";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandAtomicRequestID:
+ result = @"AtomicRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFanControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterFanControlCommandStepID:
+ result = @"Step";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThermostatUserInterfaceConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeColorControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveToHueID:
+ result = @"MoveToHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveHueID:
+ result = @"MoveHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandStepHueID:
+ result = @"StepHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveToSaturationID:
+ result = @"MoveToSaturation";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveSaturationID:
+ result = @"MoveSaturation";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandStepSaturationID:
+ result = @"StepSaturation";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveToHueAndSaturationID:
+ result = @"MoveToHueAndSaturation";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveToColorID:
+ result = @"MoveToColor";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveColorID:
+ result = @"MoveColor";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandStepColorID:
+ result = @"StepColor";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveToColorTemperatureID:
+ result = @"MoveToColorTemperature";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandEnhancedMoveToHueID:
+ result = @"EnhancedMoveToHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandEnhancedMoveHueID:
+ result = @"EnhancedMoveHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandEnhancedStepHueID:
+ result = @"EnhancedStepHue";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandEnhancedMoveToHueAndSaturationID:
+ result = @"EnhancedMoveToHueAndSaturation";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandColorLoopSetID:
+ result = @"ColorLoopSet";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandStopMoveStepID:
+ result = @"StopMoveStep";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandMoveColorTemperatureID:
+ result = @"MoveColorTemperature";
+ break;
+
+ case MTRCommandIDTypeClusterColorControlCommandStepColorTemperatureID:
+ result = @"StepColorTemperature";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBallastConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeIlluminanceMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTemperatureMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePressureMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFlowMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRelativeHumidityMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOccupancySensingID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCarbonMonoxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCarbonDioxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeNitrogenDioxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOzoneConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM25ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFormaldehydeConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM1ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM10ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTotalVolatileOrganicCompoundsConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRadonConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWiFiNetworkManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWiFiNetworkManagementCommandNetworkPassphraseRequestID:
+ result = @"NetworkPassphraseRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadBorderRouterManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThreadBorderRouterManagementCommandGetActiveDatasetRequestID:
+ result = @"GetActiveDatasetRequest";
+ break;
+
+ case MTRCommandIDTypeClusterThreadBorderRouterManagementCommandGetPendingDatasetRequestID:
+ result = @"GetPendingDatasetRequest";
+ break;
+
+ case MTRCommandIDTypeClusterThreadBorderRouterManagementCommandSetActiveDatasetRequestID:
+ result = @"SetActiveDatasetRequest";
+ break;
+
+ case MTRCommandIDTypeClusterThreadBorderRouterManagementCommandSetPendingDatasetRequestID:
+ result = @"SetPendingDatasetRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadNetworkDirectoryID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThreadNetworkDirectoryCommandAddNetworkID:
+ result = @"AddNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterThreadNetworkDirectoryCommandRemoveNetworkID:
+ result = @"RemoveNetwork";
+ break;
+
+ case MTRCommandIDTypeClusterThreadNetworkDirectoryCommandGetOperationalDatasetID:
+ result = @"GetOperationalDataset";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWakeOnLANID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeChannelID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterChannelCommandChangeChannelID:
+ result = @"ChangeChannel";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandChangeChannelByNumberID:
+ result = @"ChangeChannelByNumber";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandSkipChannelID:
+ result = @"SkipChannel";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandGetProgramGuideID:
+ result = @"GetProgramGuide";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandRecordProgramID:
+ result = @"RecordProgram";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandCancelRecordProgramID:
+ result = @"CancelRecordProgram";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTargetNavigatorID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTargetNavigatorCommandNavigateTargetID:
+ result = @"NavigateTarget";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMediaPlaybackID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandPlayID:
+ result = @"Play";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandPauseID:
+ result = @"Pause";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandStopID:
+ result = @"Stop";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandStartOverID:
+ result = @"StartOver";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandPreviousID:
+ result = @"Previous";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandNextID:
+ result = @"Next";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandRewindID:
+ result = @"Rewind";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandFastForwardID:
+ result = @"FastForward";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandSkipForwardID:
+ result = @"SkipForward";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandSkipBackwardID:
+ result = @"SkipBackward";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandSeekID:
+ result = @"Seek";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandActivateAudioTrackID:
+ result = @"ActivateAudioTrack";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandActivateTextTrackID:
+ result = @"ActivateTextTrack";
+ break;
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandDeactivateTextTrackID:
+ result = @"DeactivateTextTrack";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMediaInputID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterMediaInputCommandSelectInputID:
+ result = @"SelectInput";
+ break;
+
+ case MTRCommandIDTypeClusterMediaInputCommandShowInputStatusID:
+ result = @"ShowInputStatus";
+ break;
+
+ case MTRCommandIDTypeClusterMediaInputCommandHideInputStatusID:
+ result = @"HideInputStatus";
+ break;
+
+ case MTRCommandIDTypeClusterMediaInputCommandRenameInputID:
+ result = @"RenameInput";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLowPowerID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterLowPowerCommandSleepID:
+ result = @"Sleep";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeKeypadInputID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterKeypadInputCommandSendKeyID:
+ result = @"SendKey";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentLauncherID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentLauncherCommandLaunchContentID:
+ result = @"LaunchContent";
+ break;
+
+ case MTRCommandIDTypeClusterContentLauncherCommandLaunchURLID:
+ result = @"LaunchURL";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAudioOutputID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAudioOutputCommandSelectOutputID:
+ result = @"SelectOutput";
+ break;
+
+ case MTRCommandIDTypeClusterAudioOutputCommandRenameOutputID:
+ result = @"RenameOutput";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeApplicationLauncherID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterApplicationLauncherCommandLaunchAppID:
+ result = @"LaunchApp";
+ break;
+
+ case MTRCommandIDTypeClusterApplicationLauncherCommandStopAppID:
+ result = @"StopApp";
+ break;
+
+ case MTRCommandIDTypeClusterApplicationLauncherCommandHideAppID:
+ result = @"HideApp";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeApplicationBasicID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAccountLoginID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAccountLoginCommandGetSetupPINID:
+ result = @"GetSetupPIN";
+ break;
+
+ case MTRCommandIDTypeClusterAccountLoginCommandLoginID:
+ result = @"Login";
+ break;
+
+ case MTRCommandIDTypeClusterAccountLoginCommandLogoutID:
+ result = @"Logout";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentControlCommandUpdatePINID:
+ result = @"UpdatePIN";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandResetPINID:
+ result = @"ResetPIN";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandEnableID:
+ result = @"Enable";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandDisableID:
+ result = @"Disable";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandAddBonusTimeID:
+ result = @"AddBonusTime";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandSetScreenDailyTimeID:
+ result = @"SetScreenDailyTime";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandBlockUnratedContentID:
+ result = @"BlockUnratedContent";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandUnblockUnratedContentID:
+ result = @"UnblockUnratedContent";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandSetOnDemandRatingThresholdID:
+ result = @"SetOnDemandRatingThreshold";
+ break;
+
+ case MTRCommandIDTypeClusterContentControlCommandSetScheduledContentRatingThresholdID:
+ result = @"SetScheduledContentRatingThreshold";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentAppObserverID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentAppObserverCommandContentAppMessageID:
+ result = @"ContentAppMessage";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeChimeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterChimeCommandPlayChimeSoundID:
+ result = @"PlayChimeSound";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEcosystemInformationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCommissionerControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterCommissionerControlCommandRequestCommissioningApprovalID:
+ result = @"RequestCommissioningApproval";
+ break;
+
+ case MTRCommandIDTypeClusterCommissionerControlCommandCommissionNodeID:
+ result = @"CommissionNode";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUnitTestingID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestID:
+ result = @"Test";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestNotHandledID:
+ result = @"TestNotHandled";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSpecificID:
+ result = @"TestSpecific";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestUnknownCommandID:
+ result = @"TestUnknownCommand";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestAddArgumentsID:
+ result = @"TestAddArguments";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSimpleArgumentRequestID:
+ result = @"TestSimpleArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestStructArrayArgumentRequestID:
+ result = @"TestStructArrayArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestStructArgumentRequestID:
+ result = @"TestStructArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestNestedStructArgumentRequestID:
+ result = @"TestNestedStructArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestListStructArgumentRequestID:
+ result = @"TestListStructArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestListInt8UArgumentRequestID:
+ result = @"TestListInt8UArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestNestedStructListArgumentRequestID:
+ result = @"TestNestedStructListArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestListNestedStructListArgumentRequestID:
+ result = @"TestListNestedStructListArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestListInt8UReverseRequestID:
+ result = @"TestListInt8UReverseRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEnumsRequestID:
+ result = @"TestEnumsRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestNullableOptionalRequestID:
+ result = @"TestNullableOptionalRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestComplexNullableOptionalRequestID:
+ result = @"TestComplexNullableOptionalRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandSimpleStructEchoRequestID:
+ result = @"SimpleStructEchoRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTimedInvokeRequestID:
+ result = @"TimedInvokeRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSimpleOptionalArgumentRequestID:
+ result = @"TestSimpleOptionalArgumentRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEmitTestEventRequestID:
+ result = @"TestEmitTestEventRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEmitTestFabricScopedEventRequestID:
+ result = @"TestEmitTestFabricScopedEventRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestBatchHelperRequestID:
+ result = @"TestBatchHelperRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSecondBatchHelperRequestID:
+ result = @"TestSecondBatchHelperRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandStringEchoRequestID:
+ result = @"StringEchoRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandGlobalEchoRequestID:
+ result = @"GlobalEchoRequest";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestDifferentVendorMeiRequestID:
+ result = @"TestDifferentVendorMeiRequest";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSampleMEIID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterSampleMEICommandPingID:
+ result = @"Ping";
+ break;
+
+ case MTRCommandIDTypeClusterSampleMEICommandAddArgumentsID:
+ result = @"AddArguments";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown clusterID %d>", clusterID];
+ break;
+ }
+
+ return result;
+}
+
+NSString * MTRResponseCommandNameForID(MTRClusterIDType clusterID, MTRCommandIDType commandID)
+{
+ NSString * result = nil;
+
+ switch (clusterID) {
+
+ case MTRClusterIDTypeIdentifyID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGroupsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGroupsCommandAddGroupResponseID:
+ result = @"AddGroupResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandViewGroupResponseID:
+ result = @"ViewGroupResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandGetGroupMembershipResponseID:
+ result = @"GetGroupMembershipResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGroupsCommandRemoveGroupResponseID:
+ result = @"RemoveGroupResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOnOffID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLevelControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePulseWidthModulationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDescriptorID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBindingID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAccessControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAccessControlCommandReviewFabricRestrictionsResponseID:
+ result = @"ReviewFabricRestrictionsResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeActionsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBasicInformationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOTASoftwareUpdateProviderID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateProviderCommandQueryImageResponseID:
+ result = @"QueryImageResponse";
+ break;
+
+ case MTRCommandIDTypeClusterOTASoftwareUpdateProviderCommandApplyUpdateResponseID:
+ result = @"ApplyUpdateResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOTASoftwareUpdateRequestorID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLocalizationConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimeFormatLocalizationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUnitLocalizationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerSourceConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerSourceID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGeneralCommissioningID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandArmFailSafeResponseID:
+ result = @"ArmFailSafeResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandSetRegulatoryConfigResponseID:
+ result = @"SetRegulatoryConfigResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandCommissioningCompleteResponseID:
+ result = @"CommissioningCompleteResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralCommissioningCommandSetTCAcknowledgementsResponseID:
+ result = @"SetTCAcknowledgementsResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeNetworkCommissioningID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandScanNetworksResponseID:
+ result = @"ScanNetworksResponse";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandNetworkConfigResponseID:
+ result = @"NetworkConfigResponse";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandConnectNetworkResponseID:
+ result = @"ConnectNetworkResponse";
+ break;
+
+ case MTRCommandIDTypeClusterNetworkCommissioningCommandQueryIdentityResponseID:
+ result = @"QueryIdentityResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDiagnosticLogsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDiagnosticLogsCommandRetrieveLogsResponseID:
+ result = @"RetrieveLogsResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGeneralDiagnosticsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGeneralDiagnosticsCommandTimeSnapshotResponseID:
+ result = @"TimeSnapshotResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGeneralDiagnosticsCommandPayloadTestResponseID:
+ result = @"PayloadTestResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSoftwareDiagnosticsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWiFiNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEthernetNetworkDiagnosticsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimeSynchronizationID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTimeSynchronizationCommandSetTimeZoneResponseID:
+ result = @"SetTimeZoneResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBridgedDeviceBasicInformationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSwitchID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAdministratorCommissioningID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOperationalCredentialsID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandAttestationResponseID:
+ result = @"AttestationResponse";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandCertificateChainResponseID:
+ result = @"CertificateChainResponse";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandCSRResponseID:
+ result = @"CSRResponse";
+ break;
+
+ case MTRCommandIDTypeClusterOperationalCredentialsCommandNOCResponseID:
+ result = @"NOCResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeGroupKeyManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetReadResponseID:
+ result = @"KeySetReadResponse";
+ break;
+
+ case MTRCommandIDTypeClusterGroupKeyManagementCommandKeySetReadAllIndicesResponseID:
+ result = @"KeySetReadAllIndicesResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFixedLabelID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUserLabelID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBooleanStateID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeICDManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterICDManagementCommandRegisterClientResponseID:
+ result = @"RegisterClientResponse";
+ break;
+
+ case MTRCommandIDTypeClusterICDManagementCommandStayActiveResponseID:
+ result = @"StayActiveResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTimerID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOvenCavityOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOvenCavityOperationalStateCommandOperationalCommandResponseID:
+ result = @"OperationalCommandResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOvenModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOvenModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryDryerControlsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeModeSelectID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryWasherModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterLaundryWasherModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRefrigeratorAndTemperatureControlledCabinetModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRefrigeratorAndTemperatureControlledCabinetModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLaundryWasherControlsID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCRunModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCRunModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCCleanModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCCleanModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTemperatureControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRefrigeratorAlarmID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDishwasherModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDishwasherModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAirQualityID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSmokeCOAlarmID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDishwasherAlarmID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMicrowaveOvenModeID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMicrowaveOvenControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterOperationalStateCommandOperationalCommandResponseID:
+ result = @"OperationalCommandResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRVCOperationalStateID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterRVCOperationalStateCommandOperationalCommandResponseID:
+ result = @"OperationalCommandResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeScenesManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterScenesManagementCommandAddSceneResponseID:
+ result = @"AddSceneResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandViewSceneResponseID:
+ result = @"ViewSceneResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandRemoveSceneResponseID:
+ result = @"RemoveSceneResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandRemoveAllScenesResponseID:
+ result = @"RemoveAllScenesResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandStoreSceneResponseID:
+ result = @"StoreSceneResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandGetSceneMembershipResponseID:
+ result = @"GetSceneMembershipResponse";
+ break;
+
+ case MTRCommandIDTypeClusterScenesManagementCommandCopySceneResponseID:
+ result = @"CopySceneResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeHEPAFilterMonitoringID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeActivatedCarbonFilterMonitoringID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBooleanStateConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeValveConfigurationAndControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeElectricalPowerMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeElectricalEnergyMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWaterHeaterManagementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDemandResponseLoadControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMessagesID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDeviceEnergyManagementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyEVSEID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterEnergyEVSECommandGetTargetsResponseID:
+ result = @"GetTargetsResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyPreferenceID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePowerTopologyID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEnergyEVSEModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterEnergyEVSEModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWaterHeaterModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWaterHeaterModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDeviceEnergyManagementModeID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDeviceEnergyManagementModeCommandChangeToModeResponseID:
+ result = @"ChangeToModeResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeDoorLockID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetWeekDayScheduleResponseID:
+ result = @"GetWeekDayScheduleResponse";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetYearDayScheduleResponseID:
+ result = @"GetYearDayScheduleResponse";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetHolidayScheduleResponseID:
+ result = @"GetHolidayScheduleResponse";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetUserResponseID:
+ result = @"GetUserResponse";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandSetCredentialResponseID:
+ result = @"SetCredentialResponse";
+ break;
+
+ case MTRCommandIDTypeClusterDoorLockCommandGetCredentialStatusResponseID:
+ result = @"GetCredentialStatusResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWindowCoveringID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeServiceAreaID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterServiceAreaCommandSelectAreasResponseID:
+ result = @"SelectAreasResponse";
+ break;
+
+ case MTRCommandIDTypeClusterServiceAreaCommandSkipAreaResponseID:
+ result = @"SkipAreaResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePumpConfigurationAndControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThermostatID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThermostatCommandGetWeeklyScheduleResponseID:
+ result = @"GetWeeklyScheduleResponse";
+ break;
+
+ case MTRCommandIDTypeClusterThermostatCommandAtomicResponseID:
+ result = @"AtomicResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFanControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThermostatUserInterfaceConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeColorControlID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeBallastConfigurationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeIlluminanceMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTemperatureMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePressureMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFlowMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRelativeHumidityMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOccupancySensingID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCarbonMonoxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCarbonDioxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeNitrogenDioxideConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeOzoneConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM25ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeFormaldehydeConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM1ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypePM10ConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTotalVolatileOrganicCompoundsConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeRadonConcentrationMeasurementID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWiFiNetworkManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterWiFiNetworkManagementCommandNetworkPassphraseResponseID:
+ result = @"NetworkPassphraseResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadBorderRouterManagementID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThreadBorderRouterManagementCommandDatasetResponseID:
+ result = @"DatasetResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeThreadNetworkDirectoryID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterThreadNetworkDirectoryCommandOperationalDatasetResponseID:
+ result = @"OperationalDatasetResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeWakeOnLANID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeChannelID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterChannelCommandChangeChannelResponseID:
+ result = @"ChangeChannelResponse";
+ break;
+
+ case MTRCommandIDTypeClusterChannelCommandProgramGuideResponseID:
+ result = @"ProgramGuideResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeTargetNavigatorID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterTargetNavigatorCommandNavigateTargetResponseID:
+ result = @"NavigateTargetResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMediaPlaybackID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterMediaPlaybackCommandPlaybackResponseID:
+ result = @"PlaybackResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeMediaInputID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeLowPowerID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeKeypadInputID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterKeypadInputCommandSendKeyResponseID:
+ result = @"SendKeyResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentLauncherID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentLauncherCommandLauncherResponseID:
+ result = @"LauncherResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAudioOutputID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeApplicationLauncherID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterApplicationLauncherCommandLauncherResponseID:
+ result = @"LauncherResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeApplicationBasicID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeAccountLoginID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterAccountLoginCommandGetSetupPINResponseID:
+ result = @"GetSetupPINResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentControlCommandResetPINResponseID:
+ result = @"ResetPINResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeContentAppObserverID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterContentAppObserverCommandContentAppMessageResponseID:
+ result = @"ContentAppMessageResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeChimeID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeEcosystemInformationID:
+
+ switch (commandID) {
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeCommissionerControlID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterCommissionerControlCommandReverseOpenCommissioningWindowID:
+ result = @"ReverseOpenCommissioningWindow";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeUnitTestingID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSpecificResponseID:
+ result = @"TestSpecificResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestAddArgumentsResponseID:
+ result = @"TestAddArgumentsResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestSimpleArgumentResponseID:
+ result = @"TestSimpleArgumentResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestStructArrayArgumentResponseID:
+ result = @"TestStructArrayArgumentResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestListInt8UReverseResponseID:
+ result = @"TestListInt8UReverseResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEnumsResponseID:
+ result = @"TestEnumsResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestNullableOptionalResponseID:
+ result = @"TestNullableOptionalResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestComplexNullableOptionalResponseID:
+ result = @"TestComplexNullableOptionalResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandBooleanResponseID:
+ result = @"BooleanResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandSimpleStructResponseID:
+ result = @"SimpleStructResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEmitTestEventResponseID:
+ result = @"TestEmitTestEventResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestEmitTestFabricScopedEventResponseID:
+ result = @"TestEmitTestFabricScopedEventResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestBatchHelperResponseID:
+ result = @"TestBatchHelperResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandStringEchoResponseID:
+ result = @"StringEchoResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandGlobalEchoResponseID:
+ result = @"GlobalEchoResponse";
+ break;
+
+ case MTRCommandIDTypeClusterUnitTestingCommandTestDifferentVendorMeiResponseID:
+ result = @"TestDifferentVendorMeiResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ case MTRClusterIDTypeSampleMEIID:
+
+ switch (commandID) {
+
+ case MTRCommandIDTypeClusterSampleMEICommandAddArgumentsResponseID:
+ result = @"AddArgumentsResponse";
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown commandID %d>", commandID];
+ break;
+ }
+ break;
+
+ default:
+ result = [NSString stringWithFormat:@"<Unknown clusterID %d>", clusterID];
+ break;
+ }
+
+ return result;
+}
+
#pragma mark - Event IDs
NSString * MTREventNameForID(MTRClusterIDType clusterID, MTREventIDType eventID)
diff --git a/src/darwin/Framework/CHIPTests/MTRClusterNamesTests.m b/src/darwin/Framework/CHIPTests/MTRClusterNamesTests.m
index a609e19..4ea8140 100644
--- a/src/darwin/Framework/CHIPTests/MTRClusterNamesTests.m
+++ b/src/darwin/Framework/CHIPTests/MTRClusterNamesTests.m
@@ -38,6 +38,19 @@
XCTAssertEqualObjects(MTRAttributeNameForID(MTRClusterIDTypeOnOffID, 12345678), @"<Unknown attributeID 12345678>");
}
+- (void)testCommandNames
+{
+ XCTAssertEqualObjects(MTRRequestCommandNameForID(MTRClusterIDTypeOnOffID, MTRCommandIDTypeClusterOnOffCommandOnID), @"On");
+ XCTAssertEqualObjects(MTRRequestCommandNameForID(MTRClusterIDTypeOnOffID, MTRCommandIDTypeClusterOnOffCommandToggleID), @"Toggle");
+ XCTAssertEqualObjects(MTRRequestCommandNameForID(MTRClusterIDTypeGroupsID, MTRCommandIDTypeClusterGroupsCommandAddGroupID), @"AddGroup");
+ XCTAssertEqualObjects(MTRRequestCommandNameForID(12345678, 0), @"<Unknown clusterID 12345678>");
+ XCTAssertEqualObjects(MTRRequestCommandNameForID(MTRClusterIDTypeAccessControlID, 12345678), @"<Unknown commandID 12345678>");
+
+ XCTAssertEqualObjects(MTRResponseCommandNameForID(MTRClusterIDTypeGroupsID, MTRCommandIDTypeClusterGroupsCommandAddGroupResponseID), @"AddGroupResponse");
+ XCTAssertEqualObjects(MTRResponseCommandNameForID(12345678, 0), @"<Unknown clusterID 12345678>");
+ XCTAssertEqualObjects(MTRResponseCommandNameForID(MTRClusterIDTypeAccessControlID, 12345678), @"<Unknown commandID 12345678>");
+}
+
- (void)testEventNames
{
XCTAssertEqualObjects(MTREventNameForID(MTRClusterIDTypeAccessControlID, MTREventIDTypeClusterAccessControlEventAccessControlEntryChangedID), @"AccessControlEntryChanged");